Виртуальный хостинг на Амазоне: телефон, кредитка,...

71
Виртуальный хостинг на Амазоне: телефон, кредитка, немного времени

Transcript of Виртуальный хостинг на Амазоне: телефон, кредитка,...

Виртуальный хостинг на Амазоне: телефон, кредитка, немного

времени

Далее по шагам будет показано, как

1. Завести аккаунт на aws.amazon.com,

2. Запустить виртуальную машину с линуксом (Ubuntu),

3. Установить на неё программное обеспечение для веб-сайта (ssh, sftp, Apache 2),

4. (бонус) Подключить к сайту доменное имя.

В итоге получим виртуальную машину для сервисов и экспериментов:

● Год бесплатного использования;

● Постоянно подключена к широкому каналу Интернет;

● Полный контроль над операционной системой;

● Возможность устанавливать и запускать произвольное программное обеспечение (веб-серверы, веб-приложения, базы данных, Java, Си, С++ и всё, что угодно остальное);

На финише: lasto4ka.su

1. Регистрация и подтверждение учётной записи AWS (Amazon Web Services)

Для регистрации потребуются:● адрес электронной почты,● мобильный телефон и ● кредитная карта (после регистрации могут

списать $1).

Заходим на сайт aws.amazon.com и нажимаем кнопку-ссылку «Sign Up».

Вводим адрес почты (он будет логином), выбираем вариант «I am new user» и нажимаем

кнопку «Sign in using secure server».

Вводим имя, электронную почту и пароль.

Вводим контактную информацию: ещё раз имя, адрес и телефон(полную анонимность в отношениях с Амазоном сохранять проблематично, так как дальше всё

равно придётся вводить информацию по кредитной карте и подтверждать мобильный телефон).

Информация по кредитной карте: деньги сейчас списываться не будут, но карта должна быть настоящей

и уметь работать с Интернетом.

Подтверждение номера телефона: указать код страны, оставшуюся часть номера и нажать кнопку

«Call Me Now».

Телефон должен быть под рукой — через несколько секунд на него поступит вызов с номера, начинающегося на «+1»: нужно принять вызов, при желании послушать, что говорит робот, или сразу на цифровой клавиатуре в тоновом режиме ввести 4хзначный пин-код, который высветился на веб-странице.

Если всё прошло успешно, веб-страница сама сразу сообщит об этом.

● На этапе подтверждения телефона стоит всё делать очень аккуратно — в случае ошибки, система даёт на исправление только 3 попытки, а потом блокирует процедуру на 12 часов;

● Если вызов не проходит, стоит попробовать другой номер: по какой-то причине звонок не проходил на 2 номера Мегафона, которые я пробовал; с МТС всё сразу получилось.

Замечания

Выбираем тарифный план для технической поддержки: мы привыкли решать свои проблемы сами, поэтому «Basic (Free)», т.е. базовый

бесплатный, ну или любой другой по своему усмотрению.

Регистрация прошла успешно, идём в Панель Управления, т.е. в «AWS Management Console».

● Тарифный план 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.

В панели управления (Management Console) выбираем сервис EC2.

Переходим в раздел Instances — управление виртуальными машинами.

Запускаем новую виртуальную машину — нажимаем кнопку «Launch Instance».

Выбираем понравившийся образ AMI с понравившейся операционной системой: Ubuntu Server 13.10 64 бит

(плашка «Free tier eligible» подтверждает то, что образ может работать в бесплатном демо-режиме).

Проверяем технические детали (как минимум убеждаемся, что размер = t1.micro) и нажимаем кнопку «Review and Launch».

Ещё раз всё проверяем и нажимаем «Запуск» «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).

Доступ по SSH из Linux

Вспоминаем, куда сохранили закрытый ключ — 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, на самом деле будут

выполняться в недрах Амазона.

Доступ по SSH из Windows

Для Windows придется скачать дополнительный клиент ssh — PuTTY.На странице загрузок проекта

www.chiark.greenend.org.uk/~sgtatham/putty/download.html нужно скачать две утилиты: putty.exe и puttygen.exe

PuTTY не умеет работать с файлами закрытых ключей pem напрямую, поэтому наш pem-файл сначала

нужно конвертировать в формат ppk при помощи утилиты puttygen.exe.

Запускаем puttygen.exe, выбираем меню «Conversions > Import key» и на диске находим pem-файл.

Ключ из pem-файла импортирован; «Type of key to generate» оставляем «SSH-2 RSA», при желании вводим пароль для

защиты ключа и нажимаем кнопку «Save private key».

Сохраняем закрытый ключ в новом формате lasto4ka.ppk.

Запускаем putty.exe. На первом экране «Session» вводим в «Host Name (or IP address)» значение

«[email protected]» («имя пользователя ubuntu@ip-адрес сервера»).

На экране «Connection > SSH > Auth» в поле «Private key file for authentication» указываем

путь до ppk-файла и нажимаем кнопку «Open».

ЧОрная консоль ssh — мы в Ubuntu на Амазоне.

Замечания● Авторизация доступа к машинам на Амазоне 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, который не имеет прав администратора).

Замечания

Настройка безопасности (открываем порт 80 в брандмауэре)

Возвращаемся в панель управления Management Console, переходим в раздел «Security Groups», выбираем группу для нашей машины («launch-

wizard1» запомнили из свойств), на вкладке «Inbound» в поле «Port range» вводим 80 и нажимаем кнопки «Add Rule» и «Apply Rule Changes».

Порт открыт — пора проверять сайт.

В веб-браузере в поле адреса вводим ip-адрес нашей машины и нажимаем Enter — должна загрузиться стартовая страница Апача с сообщением «It works!», что значит «оно работает».

Управление файлами по SFTP из Linux

● Всё необходимое для подключения уже есть в любом дистрибутиве Линукс: консольный клиент 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 и файловый менеджер будут знать, с каким именем заходить на указанный сервер и где искать для него закрытый ключ, чтобы не спрашивать их интерактивно)

Правим файл /home/user/.ssh/config.

Вводим «sftp://54.200.48.84» в адресную строку файлового менеджера KDE Dolphin и видим файлы на удаленном виртуальном сервере как в

обычном локальном каталоге.

Управление файлами по SFTP из Windows

Для 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/.

Посмотрим содержимое файла index.html — откроем его в обычном текстовом редакторе.

Как видим, «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, адресах доступа к ресурсам и всех остальных местах.

1i7.livejournal.comАнтон Моисеев