Запуск веб-сайта или приложения не обязательно должен быть затратным. Фактически, есть способы сэкономить деньги на ресурсах, предоставляя пользователям отличный опыт. Один из примеров – это использование AWS EC2 Autoscaling.
EC2 Auto Scaling – это сервис, который может помочь автоматически масштабировать вашу емкость Amazon EC2 вверх или вниз в соответствии с условиями, которые вы определите. И в этом руководстве вы узнаете, как настроить и применить базовую конфигурацию EC2 Auto Scaling на AWS к вашим приложениям.
Читайте дальше и обеспечивайте вашему приложению всегда необходимые ресурсы, не переплачивая!
Необходимые условия
Это руководство включает практические демонстрации. Для того чтобы следовать за ними, вам понадобится учетная запись AWS, и учетная запись бесплатного уровня будет достаточной.
Создание шаблона запуска
Прежде чем приступить к использованию AWS EC2 Auto Scaling, вам сначала нужен способ запуска экземпляра EC2, шаблон запуска (похожий на конфигурацию запуска). Шаблон запуска содержит всю необходимую информацию для запуска экземпляра EC2, такую как тип экземпляра, подсеть и группы безопасности.
AWS рекомендует использовать шаблон запуска, предоставляя больше гибкости и расширенные функции, чем конфигурация запуска. EC2 Auto Scaling использует шаблон запуска для запуска новых экземпляров при масштабировании вверх.
Чтобы создать шаблон запуска:
1. Откройте ваш любимый веб-браузер и войдите в Консоль управления AWS.
2. В поисковой строке найдите шаблоны запуска EC2 и выберите “Шаблоны запуска” из результатов в разделе “Характеристики”. Это откроет страницу шаблонов запуска EC2.

3. Затем выберите регион из выпадающего списка (в правом верхнем углу) и нажмите “Создать шаблон запуска”, чтобы начать создание шаблона запуска.
Вы можете использовать автомасштабирование в любом регионе, поддерживающем автомасштабирование EC2, но в этом руководстве используется US East (N. Virginia).

4. Теперь настройте имя и описание нового шаблона запуска следующим образом:
- Имя шаблона запуска – обязательно – Укажите имя вашего шаблона запуска (ec2-autoscaling-template-demo). Имя должно быть уникальным в пределах региона, не длиннее 128 символов и не содержать специальных символов, кроме дефисов (-), подчеркиваний (_) и точек (.).
- Описание версии шаблона – Введите описание вашего шаблона запуска (ec2 autoscaling template demo), не длиннее 255 символов.
- Руководство по автомасштабированию – Установите флажок Предоставить руководство для помощи в настройке шаблона, который я могу использовать с автомасштабированием EC2, чтобы включить руководство по автомасштабированию. Этот параметр упрощает создание шаблона запуска, совместимого с автомасштабированием EC2.

5. Прокрутите вниз до раздела Содержание шаблонов запуска и выберите приложение и образы ОС для вашего шаблона запуска следующим образом:
- Приложение и образы ОС (образ Amazon Machine Image) – Выберите загрузочный образ для вашего шаблона, но в этом руководстве используется Amazon Linux 2 AMI. Ваши экземпляры EC2 будут запущены на основе выбранного загрузочного образа.
Вы можете выбрать любой загрузочный образ, который вам нравится, но рекомендуется использовать Amazon Linux 2 AMI, так как он соответствует бесплатному уровню.
- Архитектура – Выберите архитектуру для вашего шаблона, но в этом руководстве используется x86-64 (64-разрядная).

6. Затем установите тип экземпляра и пару ключей (вход) для вашего шаблона запуска следующим образом:
- Тип экземпляра – Выберите тип экземпляра для вашего шаблона. Но в этом руководстве выбор пал на t2.micro, так как он соответствует бесплатному уровню.
Учитывайте другие факторы при выборе типа экземпляра, такие как требования к ЦП и памяти, поскольку некоторые типы экземпляров стоят дороже других.
- Пара ключей (вход) – Выберите Не включать в шаблон запуска, так как это не требуется для автомасштабирования.
Когда указана пара ключей, автомасштабирование EC2 запускает ваши экземпляры с этой парой ключей.

7. При настройках сети выберите опцию Выбрать существующую группу безопасности и укажите параметры группы безопасности для ваших экземпляров EC2. Это позволит EC2 Auto Scaling запускать ваши экземпляры с этой группой безопасности.
Обратите внимание, что вы можете выбрать опцию Создать группу безопасности, если хотите создать новую группу безопасности для ваших экземпляров EC2.

8. Оставьте другие настройки по умолчанию и нажмите “Создать шаблон запуска” (в правом нижнем углу) в разделе “Сводка” для создания вашего шаблона запуска.

9. Наконец, нажмите “Создать группу автомасштабирования” в разделе “Создать группу автомасштабирования из вашего шаблона”, чтобы продолжить.
Не закрывайте страницу с шаблоном запуска, так как вы будете создавать свою группу автомасштабирования в следующем разделе, поочередно.

Создание группы автомасштабирования AWS EC2
Теперь, когда у вас есть шаблон запуска EC2, вам нужно создать группу автомасштабирования AWS EC2, чтобы разместить свои экземпляры EC2. У группы автомасштабирования AWS EC2 есть функции, которые позволяют использовать замены проверки состояния и политики масштабирования.
Вы можете создать группу автомасштабирования с несколькими экземплярами, если хотите. Но в этом руководстве вы создадите группу автомасштабирования с одним экземпляром, чтобы продемонстрировать, как работает автомасштабирование.
1. Настройте группу автомасштабирования с использованием следующих параметров, оставаясь на странице Создать шаблон запуска:
- Имя группы автомасштабирования – Введите имя для вашей группы автомасштабирования (ec2-autoscaling-group-demo). Имя должно быть уникальным в вашем регионе AWS и не превышать 255 символов в длину.
- Шаблон запуска – Выберите свой шаблон запуска EC2 из выпадающего списка (ec2-autoscaling-template-demo).
- Нажмите Далее чтобы продолжить.

2. Затем оставьте все настройки по умолчанию, но выберите существующую VPC и подсеть для вашей группы автомасштабирования, и нажмите Далее, чтобы продолжить.
Указание этих настроек позволяет вашей группе автомасштабирования знать, где запускать ваши экземпляры EC2.

3. Оставьте настройки по умолчанию и нажмите Далее, чтобы продолжить.

4. Теперь настройте размер группы вашей автомасштабируемой группы с помощью следующего:
Capacity | Limit | Details |
Desired | 1 | Set the number of instances you want in your Auto Scaling group. The desired capacity must be greater than or equal to the minimum capacity and less than or equal to the maximum capacity. |
Minimum | 1 | Set the minimum number of instances in your Auto Scaling group. The value must be greater than or equal to 1 and less than or equal to the maximum capacity. |
Maximum | 1 | Set the maximum number of instances you want in your Auto Scaling group. |

5. Прокрутите вниз, оставьте настройки по умолчанию и нажмите Пропустить и перейти к обзору, чтобы продолжить.
- Политики масштабирования – Оставьте выбранной опцию Нет, поскольку вы будете использовать простую политику масштабирования. Эта политика увеличивает желаемую мощность вашей группы автомасштабирования на один экземпляр EC2, когда более старый экземпляр в группе был завершен.
- Защита от масштабирования в меньшую сторону – Оставьте эту опцию отключенной, поскольку вам это не нужно в этом руководстве. Включение этой опции позволяет вам контролировать, может ли ваша группа автомасштабирования завершить ваш экземпляр при масштабировании в меньшую сторону.

6. Наконец, просмотрите настройки вашей группы автомасштабирования и нажмите Создать группу автомасштабирования (в правом нижнем углу), чтобы создать вашу группу автомасштабирования.

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

Проверка группы автоматического масштабирования AWS EC2
Отлично! Вы создали группу автоматического масштабирования AWS EC2, чтобы содержать ваш экземпляр EC2. Но как вы узнаете, что ваша группа автоматического масштабирования работает?
Вы проверите, что ваша группа автоматического масштабирования AWS EC2 запустила один экземпляр EC2. Этот экземпляр – тот, который вы указали (Желаемая мощность) на четвертом шаге раздела “Создание группы автоматического масштабирования AWS EC2”.
1. Отметьте флажок рядом с вашей недавно созданной группой автоматического масштабирования и нажмите вкладку “Активность”, чтобы увидеть все действия в вашей группе автоматического масштабирования.
В разделе История действий внизу вы увидите Описание самого последнего события в вашей группе автоматического масштабирования. В данном случае в описании указано “Запуск нового экземпляра EC2”, со статусом “Успешно” и идентификатором экземпляра (i-09b699064f6e06070).
Скопируйте идентификатор экземпляра, так как вам понадобится его для проверки вашего экземпляра на следующем шаге.

2. Перейдите на панель управления EC2 и сравните идентификатор экземпляра, скопированный на первом шаге, с любыми запущенными экземплярами.
Если оба идентификатора экземпляров совпадают, это означает, что ваша группа автоматического масштабирования успешно запустила экземпляр EC2.

3. Вернитесь на страницу группы автоматического масштабирования, нажмите на вкладку Управление экземплярами, и вы увидите всю информацию о ваших экземплярах EC2 в одном месте. Наиболее важной информацией на этой вкладке является:
- Столбец Lifecycle – Вы можете видеть, что экземпляр EC2 в вашей группе автоматического масштабирования находится в состоянии InService, что означает, что экземпляр доступен для обработки запросов.
- Столбец Health status – Вы можете видеть, что статус проверки состояния вашего экземпляра EC2 – Healthy, что означает, что экземпляр проходит все проверки на состояние здоровья.
Завершение экземпляра EC2
Теперь, когда вы убедились, что ваша группа автоматического масштабирования работает, вы можете протестировать группу автоматического масштабирования дальше, завершив экземпляр EC2 в ней. Помните, что завершение экземпляра в группе приводит к автоматическому запуску нового экземпляра EC2 в качестве замены.
В реальной жизни вы бы использовали группу автоматического масштабирования для масштабирования в ответ на изменяющиеся условия автоматически. Когда? Например, один из ваших веб-серверов NGINX перегружен запросами и находится в опасности отказа.
Но сейчас вы протестируете свою группу автоматического масштабирования, завершив экземпляр EC2 вручную, чтобы симулировать, что произойдет, если экземпляр выйдет из строя.
1. Перейдите к вашим экземплярам и установите флажок рядом с экземпляром для его выбора.
После выбора нажмите на выпадающее меню Состояние экземпляра → Завершить экземпляр для завершения выбранного экземпляра.

2. Затем нажмите “Завершить”, когда будете подтверждены завершение экземпляра.

Ниже вы можете увидеть сообщение, которое указывает на успешное завершение экземпляра EC2.
Период ожидания по умолчанию для группы автоматического масштабирования составляет 300 секунд (5 минут), что означает, что группе автоматического масштабирования потребуется как минимум пять минут, чтобы запустить новый экземпляр после завершения старого.

3. Наконец, проверьте историю активности в группе автоматического масштабирования, ожидая запуска нового экземпляра.
Как показано ниже, вы увидите, что новый экземпляр EC2 был запущен автоматически. Этот вывод подтверждает, что ваша группа автоматического масштабирования работает как ожидается.

Заключение
Обработка нагрузки для вашего приложения является важной частью обеспечения его бесперебойной работы. К счастью, с помощью автоматического масштабирования EC2 AWS вы можете обеспечить вашему приложению всегда необходимые ресурсы для обработки изменяющихся трафиков.
И в этом учебнике вы узнали, как создавать группу автоматического масштабирования, запускать экземпляры в группу и масштабировать группу в ответ на изменяющиеся условия. На этом этапе вы можете с уверенностью создавать группы автоматического масштабирования EC2 AWS для ваших приложений.
С этим новым знанием, почему бы вам не создать группы автоматического масштабирования с помощью AWS CloudFormation для еще большего удобства? Вы поблагодарите себя позже, когда ваша нагрузка увеличится, и вам не придется беспокоиться о ручном выделении дополнительных ресурсов!