Thank you for reading this post, don't forget to subscribe!
Рассмотрим создание 2х инстансов
Перейдя по ссылке EC2, мы оказываемся в EC2 Dashboard - панели управления этого сервиса. Перейдём к управлению инстансами, нажав на кнопку Insances на панели слева или в списке ресурсов
список пуст: мы пока не запустили ни одного сервера. Нажмите на кнопку Launch Instances справа вверху.
На первом экране нам необходимо выбрать подходящий образ AMI - Amazon Machine Instance, или образ виртуальной машины, на основании которого и будет создан инстанс.
- Если нет каких-то специальных требований, старайтесь выбирать стандартные образы из списка Quick Start - по крайней мере в начале. Они наиболее распространённые и по ним проще всего найти документацию и поддержку.
- Обратите внимание на метку Free Tier Eligible - только образы с этой меткой подходят для использования в рамках программы Free Tier.
- Опасайтесь раздела Community AMI - список в десятки тысяч образов наводит на мысль, что не все из них проходят проверки.
- По типу root device type вам пока что больше подойдут EBS, а по типу виртуализации HVM. Пока что не погружайтесь в эти термины, мы позаботимся об этом в следующих модулях.
Пока что остановимся на Amazon Linux 2 AMI (HVM, SSD, x86) - это официально рекомендованный образ системы который поддерживается и распространяется самим AWS.
На следующем шаге нам необходимо выбрать тип инстанса - и это может стать непростой задачей, ведь EC2 предлагает сотни разных вариантов из десятков семейств! Они делятся на группы: многоцелевые, оптимизированные под вычисления, оптимизированные по памяти и другие. Главными отличиями станут разный объём памяти, количество ядер, тип и объём дисков и сетевая производительность.
остановимся на t2.micro - этот простой вариант предоставит небольшую машину с одним ядром CPU и одним гигабайтом оперативной памяти. Не слишком много, зато “free tier eligible”.
Для начала нам этого хватит! Выбирайте t2.micro и переходите к Review and launch
В последним шаге надо проверить введённые данные и можно запускать! Убедитесь, что вы использовали Amazon Linux 2 и T2.Micro!
Перед тем, как запустить новую машину, AWS должен уточнить наши планы относительно keypair - SSH ключа для этого инстанса. Мы можем создать новый ключ, использовать существующий или вовсе отказаться от этого. Сейчас ключи нам не важны, так что можно смело отказываться (“Proceed without a key pair”) и нажимать на кнопку запуска!
перейдём к вкладке Instances и нажмём на Instance ID.
Из интересного здесь будет публичный IP адрес этого сервера и его имени. Они нам скоро понадобятся, но пока открывать их бесполезно - сначала с сервером придётся кое-что сделать.
кликнем по идентификатору сервера, чтобы открыть страничку с подробностями.
Изучите “Instance Summary”, а затем нажмите на кнопку “Connect”, расположенную в правом верхнем углу. Открывшееся окно “Connect to Instance” предложит нам три варианта:
- EC2 Instance Connect - Подключение через браузер
- Session Manager - Подключение при помощи компонента AWS Systems Manager
- SSH Client - Стандартное подключение по SSH при помощи консольных команд
Самый простой и единственно доступный нам сейчас способ подключения - это EC2 Instance Connect: дело в том, что Session Manger требует дополнительного программного обеспечения, которое сейчас не установлено, а SSH client потребует установленный KeyPair, от создания которого мы отказались
Если вы, выбрали Amazon Linux 2, то EC2 должен был правильно определить имя пользователя, необходимое для подключения: “ec2-user”. Заметьте, что для других AMI имя может быть другим.
Когда мы нажмём на оранжевую кнопку “Connect” в правом нижнем углу, браузер откроет новую вкладку с открытым терминалом командной строки:
Готово, теперь мы можем использовать эту систему!
Не спешите, попробуйте обновить установленные пакеты, установить что-нибудь или изучить этот дистрибутив. Обратите внимание, что любое приложение, слушающее внешний трафик (веб-сервер, например), окажется недоступным - мы ещё не задали для этого сервера Security Groups, а значит - подключится снаружи к нему не получится, AWS EC2 заблокирует такие подключения в целях безопасности.
=========================================
Второй
Ранее мы запустили небольшой инстанс EC2, но толку от него пока было немного - отсутствующий ключ не давал подключиться по SSH, а стандартная группа безопасности не позволила использовать даже простой веб-сервер.
В этот раз мы пройдём этот путь целиком, изучая все важные особенности настройки. Для начала, перейдите в EC2 и нажмите на Launch Instances.
Первым шагом, как обычно, надо выбрать AMI - образ инстанса. В первую очередь нас сейчас интересуют образы, представленные в разделе Quick Start, подходящие под условия программы Free Tier. Вы можете выбрать любой образ, основанный на Linux: в дальнейших шагах этого урока мы будем использовать Amazon Linux 2, но если вы уже опытный пользователь другого дистрибутива, то легко сможете адаптировать предложенные шаги к системе вашего выбора.
Следующим шагом нам необходимо определиться с типом инстанса. Если вы не планируете запускать мощные вычисления на этом сервере, то давайте остановимся на “free tier eligible” t2.micro. Однако, в этот раз мы не переходим сразу к Review and launch, а продолжаем настройку с “Configure Instance Details”
Продолжим настраивать новый сервер:
- Number of Instances здесь можно задать количество создаваемых серверов.
- Purchasing option: request spot instances Spot Instance - это возможность арендовать инстанс на простаивающем сервере, сэкономив заметные деньги на аренде - на Spot Instance скидка может доходить до 80 и даже 90 процентов от обычной цены On-Demand инстанса. Проблем с ними две - во-первых, простаивающих серверов может и не оказаться, и тогда придётся ждать следующей возможности. Во вторых, если найдётся покупатель по обычной цене - ваш Spot Instance попросят “освободить” - то есть завершить его использование в течение нескольких минут. Такой подход, конечно, подойдёт не для всех типов задач, но в случае Batch Processing или High Performance Parallel Computations может сэкономить огромные средства.
- Network - пока что хватит и стандартных настроек,
- Placement Group и Capacity Reservation позволят настроить правила развёртывания групп серверов по нескольким зонам доступности (Availability Zones).
- IAM role позволит нам присоединить роль к этому инстансу, дав ему возможность пользоваться другими сервисами AWS (например, загрузить файл в AWS S3). Пока что ни к чему, но обязательно понадобится в дальнейшем.
- CPU Options могут пригодиться для тонкой настройки некоторых серверов, но нашему t2.micro настраивать нечего.
- Shutdown behavior выставлено в положение “стоп”, то есть по умолчанию при отключении этот сервер должен просто остановится.
- Enable Termination Protection позволит защитить сервер от случайного удаления: обязательно включайте эту галку для важных серверов, ну а в данном случае она ни к чему.
- Monitoring AWS предлагает к использованию свою собственную систему мониторинга CloudWatch. Эта мощная система очень неплоха и отлично интегрирована в платформу, однако стоит дополнительных денег и сейчас будет нам ни к чему.
- Tenancy По умолчанию наш инстанс будет запущен на Shared Hardware, что в некоторых случаях может привести к проблеме “шумных соседей”, зато позволяет сэкономить много средств. В нашем случае Shared Hardware определённо будет лучшим выбором.
- Про Credit Specification мы ещё поговорим, а вот дополнительные эластичные файловые системы от сервиса AWS EFS нам пока не понадобятся.
- Enclave (Nitro Enclave) - это специальный режим EC2, известный как trusted execution environment (TEE), позволяющий обрабатывать данные в максимально защищённом режиме.
- Метаданные мы сегодня пропустим
- А вот User data очень пригодится. Команды введённые в этом разделе, будут выполнены на запускаемом инстансе (или сразу нескольких, если вы установили Number of Instances > 1). Таким образом можно указать, например, такую инструкцию:
1 2 3 4 5 |
#!/bin/bash yum update -y amazon-linux-extras install -y nginx1 systemctl start nginx |
И получить после запуска сервер с установленным и запущенным веб-сервером nginx (Обратите внимание: User Data может показаться крайне полезным инструментом, но мы решительно НЕ РЕКОМЕНДУЕМ использовать её для серьёзной настройки серверов: существуют гораздо лучшие инструменты для этой задачи, и мы на них обратим самое серьёзное внимание в следующих модулях)
Пожалуйста, введите приведённый код в User data и давайте продолжим.
На следующей вкладке мы можем задать диски, подключенные к инстансу. Увеличьте доступный объём загрузочного root диска до 10 гигабайт и добавьте ещё один, 5 гигабайт, без снэпшота, тип gp2, Delete on Termination отключено.
Теперь мы можем задать тэги. Тэги не обязательны, но очень удобны и нужны для организации вашей инфраструктуры: пока вы работаете один и запускаете пару серверов, это не так важно, но в командной работе над группами Spot, Reserved и Autoscaled инстансов это уже будет очень хорошей привычкой.
Пока что задайте минимум два тэга, Name (любое имя сервера) и Owner (Укажите собственное имя или e-mail). Тэг Name будет использован EC2 для представления инстансов в списке как имя сервера.
Последнее, что нам нужно сделать в рамках этого задания - это сконфигурировать группы безопасности. По умолчанию, EC2 Launch Wizard будет создавать новую группу безопасности c правилом: разрешать любые подключения по SSH. Давайте это изменим?
- Поставьте Source первого правила в значение My IP (обратите внимание, что в некоторых случаях ваш IP адрес может регулярно меняться, тогда будет лучше поставить Anywhere)
- Добавьте второе правило при помощи кнопки Add Rule. Разрешите доступ типа HTTP (TCP, порт 80, Anywhere) выбрав его из выпадающего списка справа.
Проверьте введённые данные в окне review и запускайте сервер кнопкой launch
Теперь без key pair нам будет уже не обойтись, поэтому придётся её создать с помощью AWS EC2 (пункт меню create a new keypair) и скачать.
Если вы предпочтёте использовать уже имеющийся ключ, то его необходимо будет сначала загрузить, открыв EC2 в отдельной вкладке и перейдя в пункт меню EC2 - Security - Key Pairs - Action - Import Key Pair.
Подтверждайте запуск: EC2 создаст новый сервер и выполнит команды user data, обновив пакеты и установив nginx. Проверьте, вскоре после запуска на публичном адресе вы должны увидеть новую страничку!
Открывайте приложение в режиме "инкогнито", т.к. в обычном режиме браузер блокирует доступ по http. В Google Chrome к примеру, можно запустить режим с помощью комбинации "Ctrl+Shift+N".
Готово! Теперь можно подключится к серверу по SSH, в следующем уроке мы этим займёмся.
Важное Напоминание Удалив сам инстанс, Не забудьте удалить подключенный второй диск вручную! Он был создан без Delete on Termination, а значит, останется доступным вам и после уничтожения сервера. В отличие от инстансов EC2, которые тарифицируются только в статусе Running, диски (Volumes) считаются активными, даже если не подключены ни к одному серверу. Вы найдёте его в EC2 - Elastic Block Store - Volumes.