2. Далее по шагам будет показано, как
1. Завести аккаунт на aws.amazon.com,
2. Запустить виртуальную машину с линуксом
(Ubuntu),
3. Установить на неё программное обеспечение
для веб-сайта (ssh, sftp, Apache 2),
4. (бонус) Подключить к сайту доменное имя.
3. В итоге получим виртуальную машину для
сервисов и экспериментов:
● Год бесплатного использования;
● Постоянно подключена к широкому каналу Интернет;
● Полный контроль над операционной системой;
● Возможность устанавливать и запускать произвольное
программное обеспечение (веб-серверы, веб-приложения,
базы данных, Java, Си, С++ и всё, что угодно остальное);
5. 1. Регистрация и подтверждение учётной
записи AWS (Amazon Web Services)
Для регистрации потребуются:
● адрес электронной почты,
● мобильный телефон и
● кредитная карта (после регистрации могут
списать $1).
6. Заходим на сайт aws.amazon.com и
нажимаем кнопку-ссылку «Sign Up».
7. Вводим адрес почты (он будет логином),
выбираем вариант «I am new user» и нажимаем
кнопку «Sign in using secure server».
9. Вводим контактную информацию: ещё раз имя, адрес и телефон
(полную анонимность в отношениях с Амазоном сохранять проблематично, так как дальше всё
равно придётся вводить информацию по кредитной карте и подтверждать мобильный
телефон).
10. Информация по кредитной карте: деньги сейчас
списываться не будут, но карта должна быть настоящей
и уметь работать с Интернетом.
12. Телефон должен быть под рукой — через несколько секунд на него поступит
вызов с номера, начинающегося на «+1»: нужно принять вызов, при желании
послушать, что говорит робот, или сразу на цифровой клавиатуре в тоновом
режиме ввести 4хзначный пин-код, который высветился на веб-странице.
13. Если всё прошло успешно, веб-страница сама
сразу сообщит об этом.
14. Замечания
● На этапе подтверждения телефона стоит всё
делать очень аккуратно — в случае ошибки, система
даёт на исправление только 3 попытки, а потом
блокирует процедуру на 12 часов;
● Если вызов не проходит, стоит попробовать другой
номер: по какой-то причине звонок не проходил на 2
номера Мегафона, которые я пробовал; с МТС всё
сразу получилось.
15. Выбираем тарифный план для технической поддержки: мы привыкли
решать свои проблемы сами, поэтому «Basic (Free)», т.е. базовый
бесплатный, ну или любой другой по своему усмотрению.
17. Замечания
● Тарифный план Amazon EC2 предполагает бесплатное использование одного
экземпляра micro AMI в течение года;
● Через год с указанной кредитной карты за его использование начнут списывать
деньги (об этом честно предупредят по почте заранее);
● Однако при превышении установленных лимитов (например по трафику или при
подключении дополнительных сервисов), ненулевые счета могут начать
приходить и раньше;
● Для не сильно загруженного публичным трафиком экспериментального сервера
это скорее всего не произойдет, а после окончания пробного периода счет может
быть в районе $10-20 в месяц;
● Виртуальную машину можно в любой момент остановить через панель
управления, тогда в счет будет включено только использованное время в часах;
● За подробностями следует обратиться к описанию тарифных планов Amazon
EC2.
18. 2. Запуск виртуальной машины
● Виртуальные машины представлены в сервисе Amazon EC2 (Elastic
Compute Cloud);
● Виртуальная машина называется AMI (Amazon Machine Instance);
● AMI классифицируются по размеру (количество доступных ресурсов
— процессор, память, диск и т. п.): micro, small, medium и т. п.;
● Дополнительное дисковое пространство можно подключить налету
по мере необходимости;
● Для нового аккаунта 1 Micro Instance будет работать 1 год бесплатно;
● AMI создается с предустановленной операционной системой, которая
выбирается из очень большого каталога образов (в основном разные
версии Линуксов, но есть и Windows);
● Мы запустим 1 Micro Instance с операционной системой Ubuntu Linux.
22. Выбираем понравившийся образ AMI с понравившейся операционной
системой: Ubuntu Server 13.10 64 бит
(плашка «Free tier eligible» подтверждает то, что образ может работать в бесплатном демо-
режиме).
23. Проверяем технические детали (как минимум убеждаемся, что
размер = t1.micro) и нажимаем кнопку «Review and Launch».
24. Ещё раз всё проверяем и нажимаем «Запуск»
«Launch».
25. Создаём пару ключей для удалённого доступа к машине по ssh:
выбираем действие «Create a new key pair», вводим произвольное
имя и нажимаем «Download Key Pair».
26. Сохраняем pem-файл с закрытым ключём на жёсткий диск, не теряем и не
выкладываем на публику — он будет использоваться для удалённого
управления виртуальной машиной, его копий больше нигде не хранится.
27. После очередного нажатия на «Launch Instances» на предыдущем экране машина наконец-то
запущена. Переходим к списку запущенных виртуальных машин «View Instances».
28. Видим новую машину в списке. Дожидаемся, пока поле «Instance State»
примет значение «running»; смотрим значение «Public IP» в свойствах
машины на нижней панели — это публичный ip-адрес нашего сервера,
по которому он с этого момента уже доступен в Интернете.
29. 3. Удалённое управление
виртуальной машиной
● Доступ к серверу по SSH (Secure shell);
● Установка и запуск программного обеспечения: веб-
сервер Apache 2;
● Настройки безопасности: сделать веб-сервер
публичным в Интернете (открыть порт 80 в
брандмауэре);
● Добавление файлов на сервер: доступ по SFTP
(Secure file transfer protocol).
31. Вспоминаем, куда сохранили закрытый ключ — pem-файл (в моём
случае /home/user/Downloads/lasto4ka.pem) и меняем права
доступа так, чтобы его мог читать и записывать только текущий
пользователь, а группа и все остальные не имели доступа вообще.
32. ● Всё необходимое для подключения уже есть в любом
дистрибутиве Линукс: эмулятор терминала и консольный
клиент ssh;
● запускаем любимый эмулятор терминала (xterm, konsole,
gnome-terminal, yakuake и т. п.);
● идем в каталог с pem-файлом:
● > cd /home/user/Downloads
● подключаемся к удаленной машине командой:
> ssh -i lasto4ka.pem ubuntu@54.200.48.84
Здесь:
lasto4ka.pem — имя файла закрытого ключа;
54.200.48.84 — ip-адрес сервера, который только что запустили;
ubuntu — имя пользователя на удаленном сервере (для образа
Ubuntu, который мы выбрали, на других машинах может быть root
или что-то ещё).
33. Мы на сервере — теперь все команды, которые будут
набраны в этом приглашении ssh, на самом деле будут
выполняться в недрах Амазона.
35. Для Windows придется скачать дополнительный клиент ssh — PuTTY.
На странице загрузок проекта
www.chiark.greenend.org.uk/~sgtatham/putty/download.html нужно
скачать две утилиты: putty.exe и puttygen.exe
36. PuTTY не умеет работать с файлами
закрытых ключей pem напрямую,
поэтому наш pem-файл сначала
нужно конвертировать в формат ppk
при помощи утилиты puttygen.exe.
38. Ключ из pem-файла импортирован; «Type of key to generate»
оставляем «SSH-2 RSA», при желании вводим пароль для
защиты ключа и нажимаем кнопку «Save private key».
40. Запускаем putty.exe. На первом экране «Session» вводим
в «Host Name (or IP address)» значение
«ubuntu@54.200.48.84»
(«имя пользователя ubuntu@ip-адрес сервера»).
41. На экране «Connection > SSH > Auth» в поле
«Private key file for authentication» указываем
путь до ppk-файла и нажимаем кнопку «Open».
43. Замечания
● Авторизация доступа к машинам на Амазоне EC2 осуществляется при
помощи пары закрытого и открытого ключей;
● Закрытый ключ (pem или ppk) хранится у пользователя на локальном
компьютере и является секретным;
● Открытый ключ хранится на сервере в домашнем каталоге учётной записи
в файле [/home/ubuntu]/.ssh/authorized_keys;
● При помощи утилиты ssh-keygen на сервере можно генерировать новые
пары закрытых и открытых ключей и подключать их к учётным записям
других пользователей;
● SSH (и SFTP тоже) шифрует весь трафик внутри открытой сессии,
поэтому оболочка ssh называется безопасной (Secure);
● В выбранном образе Ubuntu вход по умолчанию производится от имени
пользователя ubuntu; в других образах из каталога AMI имя системного
пользователя может отличаться, часто используется сразу
администратор root;
● Пользователь ubuntu не обладает правами администратора, системные
команды, требующие особых прав доступа, выполняются при помощи sudo.
45. В приглашении ssh набрать «sudo apt-get install
apache2», Enter и согласиться с предложением
установить несколько килобайт пакетов.
46. ● Веб-сервер установлен и запущен;
● Теперь, чтобы он смог раздавать веб-странички
незнакомым людям через Интернет, в настройках
безопасности виртуальной машины нужно
открыть порт 80 для входящих подключений.
47. Замечания
● Перед установкой программного обеспечения может
быть полезно выполнить «sudo apt-get update», чтобы
освежить локальный кэш репозиториев;
● Для запуска, останова и перезапуска апача могут быть
полезны команды «sudo /etc/init.d/apache2
start/stop/restart»;
● sudo — выполнение команды на сервере от имени
администратора (по умолчанию мы заходим на сервер
от имени пользователя ubuntu, который не имеет прав
администратора).
49. Возвращаемся в панель управления Management Console, переходим в
раздел «Security Groups», выбираем группу для нашей машины («launch-wizard1
» запомнили из свойств), на вкладке «Inbound» в поле «Port range»
вводим 80 и нажимаем кнопки «Add Rule» и «Apply Rule Changes».
51. В веб-браузере в поле адреса вводим ip-адрес нашей машины
и нажимаем Enter — должна загрузиться стартовая страница
Апача с сообщением «It works!», что значит «оно работает».
53. ● Всё необходимое для подключения уже есть в любом
дистрибутиве Линукс: консольный клиент sftp или
большинство стандартных файловых менеджеров с
графическим интерфесом (Dolphin, Krusader, Konqueror,
Nautilus и другие);
● Через консоль аналогично ssh (что делать дальше, читайте
в справке):
> sftp -i lasto4ka.pem ubuntu@54.200.48.84
● Для графических файловых менеджеров сначала добавим
3 строки в файл /home/user/.ssh/config (обычный текст, при
необходимости создать):
host 54.200.48.84
user ubuntu
IdentityFile /home/user/Downloads/lasto4ka.pem
(так ssh и файловый менеджер будут знать, с каким именем заходить на указанный
сервер и где искать для него закрытый ключ, чтобы не спрашивать их интерактивно)
55. Вводим «sftp://54.200.48.84» в адресную строку файлового менеджера
KDE Dolphin и видим файлы на удаленном виртуальном сервере как в
обычном локальном каталоге.
57. Для Windows можно найти много
разных sftp-клиентов, скачаем и
запустим WinSCP
winscp.net/eng/docs/lang:ru
58. Указываем «Host name» = «54.200.48.84»,
«User name» = «ubuntu», в «Private key file»
указываем путь до ppk-файла с закрытым
ключём и нажимаем кнопку «Login».
63. Как видим, «It works!» на месте — это тот самый файл,
который содержит html-код главной страницы нашего веб-
сервера по адресу http://54.200.48.84.
64. Один нюанс
● Файловый менеджер (sftp-клиент) заходит на сервер от
имени пользователя ubuntu;
● Пользователь ubuntu по умолчанию на сервере не
имеет прав менять содержимое каталога /var/www/,
значит мы так не сможем вносить изменения в сайт;
● Чтобы разрешить пользователю ubuntu править сайт
(добавлять новые файлы и изменять существующие),
выполним в консоли ssh на сервере 1 команду:
> sudo chmod 777 /var/www
(это разрешит вообще всем пользователям системы читать и изменять
каталог /var/www: не факт, что это решение правильно с точки зрения
безопасности, но зато быстро и сработает, а администрирование веб-
сервера всё равно отдельная история)
68. 4. Дополнительно подключим
доменное имя
● Покупаем доменное имя у любимого регистратора;
● Правим настройки DNS через интерфейс на его сайте.
69. Ждём некоторое время (возможно несколько часов) и
обращаемся к сайту по новому имени.
70. Замечания
● После назначения доменного имени на ip-адрес
виртуально машины, его можно и рекомендуется
использовать везде, где ранее в инструкции
использовался ip-адрес: в командах и конфигурациях ssh и
sftp, адресах доступа к ресурсам и всех остальных
местах.