Ответ
Application Load Balancer (ALB) — это балансировщик нагрузки 7-го уровня (L7) модели OSI, который работает с HTTP/HTTPS-трафиком. В отличие от балансировщиков уровня сети (L4), ALB понимает содержимое запросов, что позволяет принимать решения на основе пути URL, заголовков, метода HTTP или содержимого тела запроса.
Ключевые возможности и сценарии использования в DevOps:
- Маршрутизация на основе пути (Path-based routing): Направление запросов
/api/*к одному набору серверов (бэкенд), а/static/*— к другому (например, S3). - Маршрутизация на основе хоста (Host-based routing): Перенаправление
app1.example.comиapp2.example.comна разные целевые группы. - Termination SSL/TLS: Снятие шифрования на балансировщике, разгрузка бэкенд-серверов.
- Интеграция с AWS сервисами: Прямая маршрутизация на AWS Lambda, Amazon ECS (Fargate), EC2.
- Health Checks: Активные проверки здоровья инстансов в целевых группах и автоматическое исключение нерабочих.
- WebSocket и HTTP/2: Нативная поддержка современных протоколов.
Пример архитектуры (AWS ALB):
- Пользователь делает запрос к
https://api.example.com/orders. - ALB анализирует заголовок
Hostи путь/orders. - На основе предварительно настроенных правил (Rules) ALB перенаправляет запрос в целевую группу (Target Group), состоящую из инстансов EC2 или контейнеров ECS, отвечающих за микросервис заказов.
- ALB обеспечивает sticky sessions (при необходимости) и собирает метрики доступа в CloudWatch.