Launch Template — шаблон создания инстансов EC2. Заменяет Launch Configurations. Задает параметры:
Load Balancer — балансировщик нагрузки. Определяет настройки распределения нагрузки по инстансам в группе автомасштабирования.
Типы балансировщика нагрузки:
Application Load Balancer — выполняет балансировку нагрузки на уровне прикладного приложения (HTTP/HTTPS).
Network Load Balancer — выполняет балансировку нагрузки на транспортном уровне (TCP/UDP).
Gateway Load Balancer — распределяет трафик на виртуальные аппаратно-программные комплексы сторонних разработчиков (например сетевые экраны, детекторы вторжения и т.п.) которые поддерживают протокол GENEVE.
Classic Load Balancer — выполяет балансировку нагрузки либо на транспортном (TCP/SSL), либо на прикладном уровне (HTTP/HTTPS). Устаревшее решение.
Auto Scaling Group — группа автомасштабирования которая определяет:
Войти в AWS Console, выбрать регион Tokyo (ap-northeast-1), открыть сервис EC2 (Elastic Compute Cloud)
Найти образ инстанса (AMI) в разделе EC2 \ Images \ AMIs
Создать конфигурацию для автозапуска новых инстансов (Launch Template)
Создать группу масштабирования (Auto scaling group)
Найти в созданном Load Balancer его имя DNS и открыть его в браузере
Проверить масштабирование под нагрузкой с помощью stress_test.py
Проверить что количество инстансов уменьшается после снятия нагрузки
Скрипт для проверки нагрузки stress_test.py:
from threading import Thread
from urllib import request
from time import sleep
load_balancer = 'тут впишите DNS вашего load balancer'
def loader():
url = f'http://{load_balancer}/result/?n=10_000_000'
while True:
try:
res = request.urlopen(url)
except:
pass
sleep(1)
if __name__ == '__main__':
threads = [Thread(target=loader) for _ in range(10)]
for t in threads:
t.start()