Вы устали от мониторинга нагрузки на ваших экземплярах AWS и объема трафика, который они получают? Почему бы не автоматизировать все, развернув Группы автомасштабирования с помощью Terraform? Автомасштабирование позволяет части серверов спать во время низкой нагрузки и добавлять больше серверов во время высокой нагрузки, экономя на электроэнергии для компаний.
В этом руководстве вы узнаете, как создавать и запускать конфигурацию Terraform для создания групп автомасштабирования и развертывать их с помощью Terraform.
Читайте дальше и достигайте нулевого времени простоя на ваших экземплярах!
Предварительные требования
Этот пост будет пошаговым руководством. Если вы хотите идти в ногу, убедитесь, что у вас есть следующее:
- Учетная запись Amazon Web Service (AWS).
- A code editor – Even though you can use any text editor to work with Terraform configuration files, consider using Visual Studio (VS) Code as it understands the HCL Terraform language well.
- Terraform – В этом руководстве используется Terraform v1.1.5, работающий на Ubuntu 20.04 LTS, но любая операционная система с Terraform должна работать.
Создание конфигурации Terraform для группы автомасштабирования AWS
Перед выполнением команд Terraform для создания и развертывания инфраструктуры необходимо создать файлы конфигурации Terraform. Вы создадите конфигурацию Terraform для создания группы масштабирования AWS в своей учетной записи AWS.
1. Войдите на свою машину с использованием любого клиента SSH.
2. Затем создайте папку с именем ~/terraform-autoscaling-demo, затем измените (cd
) рабочий каталог на эту папку. В этой папке будут содержаться все файлы конфигурации, с которыми вы будете работать в этом руководстве.
3. Откройте ваш любимый редактор кода, скопируйте/вставьте следующую конфигурацию и сохраните файл как main.tf в ~/terraform-autoscaling-demo каталоге. Этот файл main.tf является конфигурацией Terraform для группы масштабирования.
Приведенный ниже код создает конфигурацию запуска масштабирования (web_config
) и предоставляет группу масштабирования (autoscalegroup
). Группа масштабирования также поставляется со своими компонентами (aws_autoscaling_schedule
и aws_autoscaling_policy
).
4. Создайте еще один файл в ~/terraform-autoscaling-demo с именем provider.tf, и заполните его следующим содержимым. Файл provider.tf определяет провайдеры, такие как AWS, Oracle, Azure и так далее. Этот файл конфигурации позволяет связать Terraform с правильными облачными службами.
В данном руководстве будут созданы ресурсы в регионе us-east-1. Но вы можете найти список регионов, которые поддерживает AWS.
5. Наконец, выполните команду tree
ниже, чтобы проверить наличие всех необходимых файлов в вашей папке проекта (~/terraform-autoscaling-demo
).

Создание группы автомасштабирования AWS с использованием конфигурации Terraform
Теперь, когда у вас правильно настроены файл конфигурации Terraform и файлы переменных, пришло время инициировать Terraform и создать группу автомасштабирования AWS.
Для предоставления группы автомасштабирования AWS, как и для всех других конфигураций Terraform, Terraform использует три команды последовательно (terraform init
, terraform plan
и terraform apply
).
1. Запустите команду terraform init
в каталоге ~/terraform-autoscaling-demo. Команда инициализирует плагины и провайдеры, необходимые для работы с ресурсами.
Если всё прошло успешно, вы увидите сообщение, которое говорит о том, что Terraform был успешно инициализирован в выводе, как показано ниже.

2. Затем выполните команду terraform plan
, чтобы убедиться, что синтаксис файлов конфигурации правильный и дает вам чертёж ресурсов, которые будут предоставлены в вашей инфраструктуре.
Если успешно, вы увидите сообщение, которое показывает план, подобный приведенному ниже.

3. Наконец, выполните команду terraform apply
, чтобы снять обучающие колёса и вызвать Terraform для создания группы AWS AutoScaling.
Команда указывает Terraform’у прочитать каждую конфигурацию (*.tf) в текущем каталоге для компиляции состояния, отправленного в AWS. Затем Terraform создает группу AWS Autoscaling и другие компоненты.
Дополнительной платы за AWS Auto Scaling не взимается. Вы платите только за ресурсы AWS, необходимые для запуска ваших приложений.

Проверка группы AWS Autoscaling в облаке AWS
На данный момент вы должны были создать группу AWS Autoscaling и связанные компоненты с помощью Terraform. Но как вы узнаете, что они существуют в вашем облаке AWS? Проверьте группу Autoscaling путем ручной проверки в консоли управления AWS.
1. Откройте ваш любимый веб-браузер и войдите в Консоль управления AWS.
2. На главной странице консоли нажмите на поле поиска, найдите и нажмите «EC2», чтобы получить доступ к панели управления EC2.
Нажмите на пункт меню «Группа автомасштабирования AWS» в панели управления EC2 для управления вашими группами автомасштабирования.
Требуемое количество экземпляров AWS EC2 будет запущено в облачной среде AWS в панели управления EC2 с использованием автомасштабирования.

3. Наконец, нажмите на «Конфигурация запуска автомасштабирования AWS» в панели управления EC2. Вы увидите вашу конфигурацию запуска автомасштабирования (web_config), как показано ниже.

Автомасштабирование экземпляра EC2 с тестированием нагрузки.
Теперь, когда вы проверили, что группа автомасштабирования/политика и связанные компоненты настроены правильно, пришло время проверить работу функций автомасштабирования. Как? Добавив нагрузку на недавно запущенный экземпляр с группой автомасштабирования.
1. Откройте экземпляр AWS EC2, запущенный с группой автомасштабирования, с помощью клиента SSH.
2. Затем запустите терминал и выполните следующую команду для установки
инструмента нагрузочного тестирования (stress-ng
). Инструмент нагрузочного тестирования позволяет определить и создать нагрузку на машине Ubuntu.
Вы также можете найти другие инструменты нагрузочного тестирования, доступные на рынке.

3. Запустите команду stress-ng
ниже, чтобы создать нагрузку на экземпляре.
Ниже приведена команда с использованием следующих флагов:
--cpu
– Обозначает количество ядер, на которых будет создана нагрузка.
-v
– Включает подробный режим.
--timeout
– Указывает время, в течение которого следует создавать нагрузку.

4. Теперь выполните команду top
сразу после создания нагрузки, чтобы отобразить процессы Linux.
Ниже вы можете видеть, что процессор перегружается после создания нагрузки на экземпляр.

5. Перейдите в службу AWS CloudWatch на платформе AWS Cloud. Вы заметите, что генерируется тревога, так как процент использования CPU превысил (10%). Тревога уведомила группу автомасштабирования о масштабировании количества экземпляров с одного до двух, как указано в группе автомасштабирования.

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

Также вы можете проверить действия автомасштабирования в разделе “Активности” группы автомасштабирования AWS, как показано ниже.

Заключение
В этом учебнике вы узнали, как использовать Terraform для развертывания группы автомасштабирования AWS и ее компонентов. Построение приложения с автомасштабированием AWS позволяет масштабироваться при необходимости и является быстрым заданием.
Теперь, обладая этими новыми знаниями, вперед, реализуйте автомасштабирование с другими службами AWS, не беспокоясь о нагрузке на сервера!
Source:
https://adamtheautomator.com/terraform-autoscaling-group/