Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

Anton
January 30, 2014

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

Anton

January 30, 2014
Tweet

More Decks by Anton

Other Decks in Education

Transcript

  1. Далее по шагам будет показано, как 1. Завести аккаунт на

    aws.amazon.com, 2. Запустить виртуальную машину с линуксом (Ubuntu), 3. Установить на неё программное обеспечение для веб-сайта (ssh, sftp, Apache 2), 4. (бонус) Подключить к сайту доменное имя.
  2. В итоге получим виртуальную машину для сервисов и экспериментов: •

    Год бесплатного использования; • Постоянно подключена к широкому каналу Интернет; • Полный контроль над операционной системой; • Возможность устанавливать и запускать произвольное программное обеспечение (веб-серверы, веб-приложения, базы данных, Java, Си, С++ и всё, что угодно остальное);
  3. 1. Регистрация и подтверждение учётной записи AWS (Amazon Web Services)

    Для регистрации потребуются: • адрес электронной почты, • мобильный телефон и • кредитная карта (после регистрации могут списать $1).
  4. Вводим адрес почты (он будет логином), выбираем вариант «I am

    new user» и нажимаем кнопку «Sign in using secure server».
  5. Вводим контактную информацию: ещё раз имя, адрес и телефон (полную

    анонимность в отношениях с Амазоном сохранять проблематично, так как дальше всё равно придётся вводить информацию по кредитной карте и подтверждать мобильный телефон).
  6. Информация по кредитной карте: деньги сейчас списываться не будут, но

    карта должна быть настоящей и уметь работать с Интернетом.
  7. Телефон должен быть под рукой — через несколько секунд на

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

    — в случае ошибки, система даёт на исправление только 3 попытки, а потом блокирует процедуру на 12 часов; • Если вызов не проходит, стоит попробовать другой номер: по какой-то причине звонок не проходил на 2 номера Мегафона, которые я пробовал; с МТС всё сразу получилось. Замечания
  9. Выбираем тарифный план для технической поддержки: мы привыкли решать свои

    проблемы сами, поэтому «Basic (Free)», т.е. базовый бесплатный, ну или любой другой по своему усмотрению.
  10. • Тарифный план Amazon EC2 предполагает бесплатное использование одного экземпляра

    micro AMI в течение года; • Через год с указанной кредитной карты за его использование начнут списывать деньги (об этом честно предупредят по почте заранее); • Однако при превышении установленных лимитов (например по трафику или при подключении дополнительных сервисов), ненулевые счета могут начать приходить и раньше; • Для не сильно загруженного публичным трафиком экспериментального сервера это скорее всего не произойдет, а после окончания пробного периода счет может быть в районе $10-20 в месяц; • Виртуальную машину можно в любой момент остановить через панель управления, тогда в счет будет включено только использованное время в часах; • За подробностями следует обратиться к описанию тарифных планов Amazon EC2. Замечания
  11. 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.
  12. Выбираем понравившийся образ AMI с понравившейся операционной системой: Ubuntu Server

    13.10 64 бит (плашка «Free tier eligible» подтверждает то, что образ может работать в бесплатном демо- режиме).
  13. Создаём пару ключей для удалённого доступа к машине по ssh:

    выбираем действие «Create a new key pair», вводим произвольное имя и нажимаем «Download Key Pair».
  14. Сохраняем pem-файл с закрытым ключём на жёсткий диск, не теряем

    и не выкладываем на публику — он будет использоваться для удалённого управления виртуальной машиной, его копий больше нигде не хранится.
  15. После очередного нажатия на «Launch Instances» на предыдущем экране машина

    наконец-то запущена. Переходим к списку запущенных виртуальных машин «View Instances».
  16. Видим новую машину в списке. Дожидаемся, пока поле «Instance State»

    примет значение «running»; смотрим значение «Public IP» в свойствах машины на нижней панели — это публичный ip-адрес нашего сервера, по которому он с этого момента уже доступен в Интернете.
  17. 3. Удалённое управление виртуальной машиной • Доступ к серверу по

    SSH (Secure shell); • Установка и запуск программного обеспечения: веб- сервер Apache 2; • Настройки безопасности: сделать веб-сервер публичным в Интернете (открыть порт 80 в брандмауэре); • Добавление файлов на сервер: доступ по SFTP (Secure file transfer protocol).
  18. Вспоминаем, куда сохранили закрытый ключ — pem-файл (в моём случае

    /home/user/Downloads/lasto4ka.pem) и меняем права доступа так, чтобы его мог читать и записывать только текущий пользователь, а группа и все остальные не имели доступа вообще.
  19. • Всё необходимое для подключения уже есть в любом дистрибутиве

    Линукс: эмулятор терминала и консольный клиент 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 или что-то ещё).
  20. Мы на сервере — теперь все команды, которые будут набраны

    в этом приглашении ssh, на самом деле будут выполняться в недрах Амазона.
  21. Для Windows придется скачать дополнительный клиент ssh — PuTTY. На

    странице загрузок проекта www.chiark.greenend.org.uk/~sgtatham/putty/download.html нужно скачать две утилиты: putty.exe и puttygen.exe
  22. PuTTY не умеет работать с файлами закрытых ключей pem напрямую,

    поэтому наш pem-файл сначала нужно конвертировать в формат ppk при помощи утилиты puttygen.exe.
  23. Ключ из pem-файла импортирован; «Type of key to generate» оставляем

    «SSH-2 RSA», при желании вводим пароль для защиты ключа и нажимаем кнопку «Save private key».
  24. Запускаем putty.exe. На первом экране «Session» вводим в «Host Name

    (or IP address)» значение «[email protected]» («имя пользователя ubuntu@ip-адрес сервера»).
  25. На экране «Connection > SSH > Auth» в поле «Private

    key file for authentication» указываем путь до ppk-файла и нажимаем кнопку «Open».
  26. Замечания • Авторизация доступа к машинам на Амазоне EC2 осуществляется

    при помощи пары закрытого и открытого ключей; • Закрытый ключ (pem или ppk) хранится у пользователя на локальном компьютере и является секретным; • Открытый ключ хранится на сервере в домашнем каталоге учётной записи в файле [/home/ubuntu]/.ssh/authorized_keys; • При помощи утилиты ssh-keygen на сервере можно генерировать новые пары закрытых и открытых ключей и подключать их к учётным записям других пользователей; • SSH (и SFTP тоже) шифрует весь трафик внутри открытой сессии, поэтому оболочка ssh называется безопасной (Secure); • В выбранном образе Ubuntu вход по умолчанию производится от имени пользователя ubuntu; в других образах из каталога AMI имя системного пользователя может отличаться, часто используется сразу администратор root; • Пользователь ubuntu не обладает правами администратора, системные команды, требующие особых прав доступа, выполняются при помощи sudo.
  27. В приглашении ssh набрать «sudo apt-get install apache2», Enter и

    согласиться с предложением установить несколько килобайт пакетов.
  28. • Веб-сервер установлен и запущен; • Теперь, чтобы он смог

    раздавать веб-странички незнакомым людям через Интернет, в настройках безопасности виртуальной машины нужно открыть порт 80 для входящих подключений.
  29. • Перед установкой программного обеспечения может быть полезно выполнить «sudo

    apt-get update», чтобы освежить локальный кэш репозиториев; • Для запуска, останова и перезапуска апача могут быть полезны команды «sudo /etc/init.d/apache2 start/stop/restart»; • sudo — выполнение команды на сервере от имени администратора (по умолчанию мы заходим на сервер от имени пользователя ubuntu, который не имеет прав администратора). Замечания
  30. Возвращаемся в панель управления Management Console, переходим в раздел «Security

    Groups», выбираем группу для нашей машины («launch- wizard1» запомнили из свойств), на вкладке «Inbound» в поле «Port range» вводим 80 и нажимаем кнопки «Add Rule» и «Apply Rule Changes».
  31. В веб-браузере в поле адреса вводим ip-адрес нашей машины и

    нажимаем Enter — должна загрузиться стартовая страница Апача с сообщением «It works!», что значит «оно работает».
  32. • Всё необходимое для подключения уже есть в любом дистрибутиве

    Линукс: консольный клиент sftp или большинство стандартных файловых менеджеров с графическим интерфесом (Dolphin, Krusader, Konqueror, Nautilus и другие); • Через консоль аналогично ssh (что делать дальше, читайте в справке): > sftp -i lasto4ka.pem [email protected] • Для графических файловых менеджеров сначала добавим 3 строки в файл /home/user/.ssh/config (обычный текст, при необходимости создать): host 54.200.48.84 user ubuntu IdentityFile /home/user/Downloads/lasto4ka.pem (так ssh и файловый менеджер будут знать, с каким именем заходить на указанный сервер и где искать для него закрытый ключ, чтобы не спрашивать их интерактивно)
  33. Вводим «sftp://54.200.48.84» в адресную строку файлового менеджера KDE Dolphin и

    видим файлы на удаленном виртуальном сервере как в обычном локальном каталоге.
  34. Указываем «Host name» = «54.200.48.84», «User name» = «ubuntu», в

    «Private key file» указываем путь до ppk-файла с закрытым ключём и нажимаем кнопку «Login».
  35. Как видим, «It works!» на месте — это тот самый

    файл, который содержит html-код главной страницы нашего веб- сервера по адресу http://54.200.48.84.
  36. Один нюанс • Файловый менеджер (sftp-клиент) заходит на сервер от

    имени пользователя ubuntu; • Пользователь ubuntu по умолчанию на сервере не имеет прав менять содержимое каталога /var/www/, значит мы так не сможем вносить изменения в сайт; • Чтобы разрешить пользователю ubuntu править сайт (добавлять новые файлы и изменять существующие), выполним в консоли ssh на сервере 1 команду: > sudo chmod 777 /var/www (это разрешит вообще всем пользователям системы читать и изменять каталог /var/www: не факт, что это решение правильно с точки зрения безопасности, но зато быстро и сработает, а администрирование веб- сервера всё равно отдельная история)
  37. и исправим 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>
  38. 4. Дополнительно подключим доменное имя • Покупаем доменное имя у

    любимого регистратора; • Правим настройки DNS через интерфейс на его сайте.
  39. Замечания • После назначения доменного имени на ip-адрес виртуально машины,

    его можно и рекомендуется использовать везде, где ранее в инструкции использовался ip-адрес: в командах и конфигурациях ssh и sftp, адресах доступа к ресурсам и всех остальных местах.