Далее по шагам будет показано, как
1. Завести аккаунт на aws.amazon.com,
2. Запустить виртуальную машину с линуксом (Ubuntu),
3. Установить на неё программное обеспечение для веб-сайта (ssh, sftp, Apache 2),
4. (бонус) Подключить к сайту доменное имя.
В итоге получим виртуальную машину для сервисов и экспериментов:
● Год бесплатного использования;
● Постоянно подключена к широкому каналу Интернет;
● Полный контроль над операционной системой;
● Возможность устанавливать и запускать произвольное программное обеспечение (веб-серверы, веб-приложения, базы данных, Java, Си, С++ и всё, что угодно остальное);
1. Регистрация и подтверждение учётной записи AWS (Amazon Web Services)
Для регистрации потребуются:● адрес электронной почты,● мобильный телефон и ● кредитная карта (после регистрации могут
списать $1).
Вводим адрес почты (он будет логином), выбираем вариант «I am new user» и нажимаем
кнопку «Sign in using secure server».
Вводим контактную информацию: ещё раз имя, адрес и телефон(полную анонимность в отношениях с Амазоном сохранять проблематично, так как дальше всё
равно придётся вводить информацию по кредитной карте и подтверждать мобильный телефон).
Информация по кредитной карте: деньги сейчас списываться не будут, но карта должна быть настоящей
и уметь работать с Интернетом.
Подтверждение номера телефона: указать код страны, оставшуюся часть номера и нажать кнопку
«Call Me Now».
Телефон должен быть под рукой — через несколько секунд на него поступит вызов с номера, начинающегося на «+1»: нужно принять вызов, при желании послушать, что говорит робот, или сразу на цифровой клавиатуре в тоновом режиме ввести 4хзначный пин-код, который высветился на веб-странице.
● На этапе подтверждения телефона стоит всё делать очень аккуратно — в случае ошибки, система даёт на исправление только 3 попытки, а потом блокирует процедуру на 12 часов;
● Если вызов не проходит, стоит попробовать другой номер: по какой-то причине звонок не проходил на 2 номера Мегафона, которые я пробовал; с МТС всё сразу получилось.
Замечания
Выбираем тарифный план для технической поддержки: мы привыкли решать свои проблемы сами, поэтому «Basic (Free)», т.е. базовый
бесплатный, ну или любой другой по своему усмотрению.
● Тарифный план Amazon EC2 предполагает бесплатное использование одного экземпляра micro AMI в течение года;
● Через год с указанной кредитной карты за его использование начнут списывать деньги (об этом честно предупредят по почте заранее);
● Однако при превышении установленных лимитов (например по трафику или при подключении дополнительных сервисов), ненулевые счета могут начать приходить и раньше;
● Для не сильно загруженного публичным трафиком экспериментального сервера это скорее всего не произойдет, а после окончания пробного периода счет может быть в районе $10-20 в месяц;
● Виртуальную машину можно в любой момент остановить через панель управления, тогда в счет будет включено только использованное время в часах;
● За подробностями следует обратиться к описанию тарифных планов Amazon EC2.
Замечания
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.
Выбираем понравившийся образ AMI с понравившейся операционной системой: Ubuntu Server 13.10 64 бит
(плашка «Free tier eligible» подтверждает то, что образ может работать в бесплатном демо-режиме).
Проверяем технические детали (как минимум убеждаемся, что размер = t1.micro) и нажимаем кнопку «Review and Launch».
Создаём пару ключей для удалённого доступа к машине по ssh: выбираем действие «Create a new key pair», вводим произвольное
имя и нажимаем «Download Key Pair».
Сохраняем pem-файл с закрытым ключём на жёсткий диск, не теряем и не выкладываем на публику — он будет использоваться для удалённого
управления виртуальной машиной, его копий больше нигде не хранится.
После очередного нажатия на «Launch Instances» на предыдущем экране машина наконец-то запущена. Переходим к списку запущенных виртуальных машин «View Instances».
Видим новую машину в списке. Дожидаемся, пока поле «Instance State» примет значение «running»; смотрим значение «Public IP» в свойствах машины на нижней панели — это публичный ip-адрес нашего сервера,
по которому он с этого момента уже доступен в Интернете.
3. Удалённое управление виртуальной машиной
● Доступ к серверу по SSH (Secure shell);
● Установка и запуск программного обеспечения: веб-сервер Apache 2;
● Настройки безопасности: сделать веб-сервер публичным в Интернете (открыть порт 80 в брандмауэре);
● Добавление файлов на сервер: доступ по SFTP (Secure file transfer protocol).
Вспоминаем, куда сохранили закрытый ключ — pem-файл (в моём случае /home/user/Downloads/lasto4ka.pem) и меняем права
доступа так, чтобы его мог читать и записывать только текущий пользователь, а группа и все остальные не имели доступа вообще.
● Всё необходимое для подключения уже есть в любом дистрибутиве Линукс: эмулятор терминала и консольный клиент ssh;
● запускаем любимый эмулятор терминала (xterm, konsole, gnome-terminal, yakuake и т. п.);
● идем в каталог с pem-файлом:
● > cd /home/user/Downloads
> ssh -i lasto4ka.pem [email protected]
● подключаемся к удаленной машине командой:
Здесь:lasto4ka.pem — имя файла закрытого ключа;54.200.48.84 — ip-адрес сервера, который только что запустили;ubuntu — имя пользователя на удаленном сервере (для образа Ubuntu, который мы выбрали, на других машинах может быть root или что-то ещё).
Мы на сервере — теперь все команды, которые будут набраны в этом приглашении ssh, на самом деле будут
выполняться в недрах Амазона.
Для Windows придется скачать дополнительный клиент ssh — PuTTY.На странице загрузок проекта
www.chiark.greenend.org.uk/~sgtatham/putty/download.html нужно скачать две утилиты: putty.exe и puttygen.exe
PuTTY не умеет работать с файлами закрытых ключей pem напрямую, поэтому наш pem-файл сначала
нужно конвертировать в формат ppk при помощи утилиты puttygen.exe.
Ключ из pem-файла импортирован; «Type of key to generate» оставляем «SSH-2 RSA», при желании вводим пароль для
защиты ключа и нажимаем кнопку «Save private key».
Запускаем putty.exe. На первом экране «Session» вводим в «Host Name (or IP address)» значение
«[email protected]» («имя пользователя ubuntu@ip-адрес сервера»).
На экране «Connection > SSH > Auth» в поле «Private key file for authentication» указываем
путь до ppk-файла и нажимаем кнопку «Open».
Замечания● Авторизация доступа к машинам на Амазоне EC2 осуществляется при
помощи пары закрытого и открытого ключей;
● Закрытый ключ (pem или ppk) хранится у пользователя на локальном компьютере и является секретным;
● Открытый ключ хранится на сервере в домашнем каталоге учётной записи в файле [/home/ubuntu]/.ssh/authorized_keys;
● При помощи утилиты ssh-keygen на сервере можно генерировать новые пары закрытых и открытых ключей и подключать их к учётным записям других пользователей;
● SSH (и SFTP тоже) шифрует весь трафик внутри открытой сессии, поэтому оболочка ssh называется безопасной (Secure);
● В выбранном образе Ubuntu вход по умолчанию производится от имени пользователя ubuntu; в других образах из каталога AMI имя системного пользователя может отличаться, часто используется сразу администратор root;
● Пользователь ubuntu не обладает правами администратора, системные команды, требующие особых прав доступа, выполняются при помощи sudo.
В приглашении ssh набрать «sudo apt-get install apache2», Enter и согласиться с предложением
установить несколько килобайт пакетов.
● Веб-сервер установлен и запущен;● Теперь, чтобы он смог раздавать веб-странички
незнакомым людям через Интернет, в настройках безопасности виртуальной машины нужно открыть порт 80 для входящих подключений.
● Перед установкой программного обеспечения может быть полезно выполнить «sudo apt-get update», чтобы освежить локальный кэш репозиториев;
● Для запуска, останова и перезапуска апача могут быть полезны команды «sudo /etc/init.d/apache2 start/stop/restart»;
● sudo — выполнение команды на сервере от имени администратора (по умолчанию мы заходим на сервер от имени пользователя ubuntu, который не имеет прав администратора).
Замечания
Возвращаемся в панель управления Management Console, переходим в раздел «Security Groups», выбираем группу для нашей машины («launch-
wizard1» запомнили из свойств), на вкладке «Inbound» в поле «Port range» вводим 80 и нажимаем кнопки «Add Rule» и «Apply Rule Changes».
В веб-браузере в поле адреса вводим ip-адрес нашей машины и нажимаем Enter — должна загрузиться стартовая страница Апача с сообщением «It works!», что значит «оно работает».
● Всё необходимое для подключения уже есть в любом дистрибутиве Линукс: консольный клиент sftp или большинство стандартных файловых менеджеров с графическим интерфесом (Dolphin, Krusader, Konqueror, Nautilus и другие);
● Через консоль аналогично ssh (что делать дальше, читайте в справке):
> sftp -i lasto4ka.pem [email protected]
● Для графических файловых менеджеров сначала добавим 3 строки в файл /home/user/.ssh/config (обычный текст, при необходимости создать):
host 54.200.48.84user ubuntuIdentityFile /home/user/Downloads/lasto4ka.pem
(так ssh и файловый менеджер будут знать, с каким именем заходить на указанный сервер и где искать для него закрытый ключ, чтобы не спрашивать их интерактивно)
Вводим «sftp://54.200.48.84» в адресную строку файлового менеджера KDE Dolphin и видим файлы на удаленном виртуальном сервере как в
обычном локальном каталоге.
Для Windows можно найти много разных sftp-клиентов, скачаем и
запустим WinSCP winscp.net/eng/docs/lang:ru
Указываем «Host name» = «54.200.48.84», «User name» = «ubuntu», в «Private key file» указываем путь до ppk-файла с закрытым
ключём и нажимаем кнопку «Login».
Содержимое сайта на сервере хранится в каталоге /var/www/, адрес в файловом менеджере:
sftp://54.200.48.84/var/www/.
Как видим, «It works!» на месте — это тот самый файл, который содержит html-код главной страницы нашего веб-
сервера по адресу http://54.200.48.84.
Один нюанс
● Файловый менеджер (sftp-клиент) заходит на сервер от имени пользователя ubuntu;
● Пользователь ubuntu по умолчанию на сервере не имеет прав менять содержимое каталога /var/www/, значит мы так не сможем вносить изменения в сайт;
● Чтобы разрешить пользователю ubuntu править сайт (добавлять новые файлы и изменять существующие), выполним в консоли ssh на сервере 1 команду:
> sudo chmod 777 /var/www
(это разрешит вообще всем пользователям системы читать и изменять каталог /var/www: не факт, что это решение правильно с точки зрения безопасности, но зато быстро и сработает, а администрирование веб-сервера всё равно отдельная история)
и исправим html-код файла index.html по своему усмотрению
<!DOCTYPE HTML><html><head><title>КБ Ласто4ка</title><meta http-equiv="Content-Type" content="text/html;charset=utf-8" /></head><body><h1>КБ Ласто4ка</h1><img src="lasto4ka.png" alt="lasto4ka"/><p><a href="http://nntu.ru/">НГТУ им Р.Е.Алексеева</a></p><p><a href="http://1i7.livejournal.com">больше лаб</a></p></body></html>
4. Дополнительно подключим доменное имя
● Покупаем доменное имя у любимого регистратора;
● Правим настройки DNS через интерфейс на его сайте.
Замечания● После назначения доменного имени на ip-адрес
виртуально машины, его можно и рекомендуется использовать везде, где ранее в инструкции использовался ip-адрес: в командах и конфигурациях ssh и sftp, адресах доступа к ресурсам и всех остальных местах.