Share
Embed
Transcript
71 slides
-
Далее по шагам будет показано, как 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)», т.е. базовый бесплатный, ну или любой другой по своему усмотрению. -
Регистрация прошла успешно, идём в Панель Управления, т.е. в «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. -
Выбираем понравившийся образ 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. -
Запускаем puttygen.exe, выбираем меню «Conversions > Import key» и на
диске находим pem-файл. -
Ключ из 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.84 user ubuntu IdentityFile /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, адресах доступа к ресурсам и всех остальных местах.