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

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

Anton
January 30, 2014

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

Anton

January 30, 2014

Transcript

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

More Decks by Anton

Other Decks in Education