AWS Elastic Load Balancing
AWS Elastic Load Balancing (ELB) — это сервис облачной платформы Amazon Web Services (AWS; компания Amazon, владеющая AWS, не запрещена в РФ), предназначенный для автоматического распределения входящего трафика между несколькими целевыми ресурсами, такими как виртуальные серверы (EC2-инстансы), контейнеры, IP-адреса и функции AWS Lambda. Сервис обеспечивает отказоустойчивость, масштабируемость и высокую доступность приложений, направляя трафик только на исправные ресурсы и автоматически реагируя на изменения их количества.
История и развитие
Сервис Elastic Load Balancing был запущен вместе с платформой AWS в 2006 году как один из первых её компонентов. Первоначально ELB представлял собой единый балансировщик, работавший на транспортном (четвёртом) уровне модели OSI. В 2016 году AWS представила два новых типа балансировщиков — Application Load Balancer (ALB) и Network Load Balancer (NLB), а также прекратила поддержку старого «классического» балансировщика, объявив его устаревшим (deprecated). В 2021 году был добавлен третий тип — Gateway Load Balancer (GWLB), предназначенный для работы с сетевыми виртуальными устройствами (например, межсетевыми экранами). На текущий момент (2025 год) ELB является одним из ключевых сервисов AWS для построения отказоустойчивых архитектур.
Типы балансировщиков
AWS предоставляет три основных типа Elastic Load Balancer, каждый из которых предназначен для определённых сценариев использования.
Application Load Balancer (ALB)
Application Load Balancer работает на седьмом (прикладном) уровне модели OSI. Он способен анализировать содержимое HTTP/HTTPS-запросов, включая заголовки, cookies и пути URL. ALB поддерживает:
- Маршрутизацию на основе правил (по домену, пути, параметрам запроса).
- Размещение целевых групп (target groups) для разных микросервисов.
- Поддержку WebSocket и HTTP/2.
- Аутентификацию пользователей через провайдеров OIDC и SAML.
- Встроенное шифрование TLS (SSL-терминация).
Network Load Balancer (NLB)
Network Load Balancer работает на четвёртом (транспортном) уровне модели OSI. Он обрабатывает TCP, UDP и TLS-трафик, обеспечивая сверхнизкую задержку (до нескольких миллисекунд). NLB способен обрабатывать миллионы запросов в секунду. Особенности:
- Сохранение исходного IP-адреса клиента.
- Статические IP-адреса (в том числе Elastic IP) для каждой зоны доступности.
- Поддержка протоколов TCP, UDP, TLS и TCP_UDP.
- Использование для приложений, критичных к задержкам (например, игровые серверы, финансовые системы).
Gateway Load Balancer (GWLB)
Gateway Load Balancer работает на третьем (сетевом) уровне модели OSI и предназначен для развёртывания, масштабирования и управления виртуальными сетевыми устройствами (firewalls, системы обнаружения вторжений, системы глубокого анализа пакетов). GWLB выступает в роли шлюза для трафика, направляя его через цепочку виртуальных устройств, и одновременно распределяет нагрузку между ними. Он использует протокол GENEVE для инкапсуляции трафика.
Архитектура и компоненты
Целевые группы (Target Groups)
Целевая группа — это логическая группа целевых ресурсов (EC2-инстансы, IP-адреса, функции Lambda), на которые балансировщик направляет трафик. Каждая целевая группа может быть связана с одним или несколькими балансировщиками. Балансировщик проверяет работоспособность ресурсов в целевой группе с помощью health checks (проверок здоровья).
Зоны доступности (Availability Zones)
Для обеспечения отказоустойчивости балансировщик создаёт свои узлы (nodes) во всех указанных зонах доступности региона AWS. Трафик распределяется между узлами, и если одна зона выходит из строя, остальные продолжают обрабатывать запросы.
Слушатели (Listeners)
Слушатель — это процесс, который проверяет входящие соединения на указанном порту и протоколе. Для каждого балансировщика можно настроить несколько слушателей (например, один для HTTP на порту 80, другой для HTTPS на порту 443). Для ALB и NLB слушатели могут иметь правила маршрутизации, определяющие, в какую целевую группу направить запрос.
Правила маршрутизации (Rules)
Правила маршрутизации задают условия (например, путь URL, домен, заголовок) и соответствующее действие (направление в целевую группу). Правила обрабатываются в порядке приоритета: первое совпавшее правило определяет дальнейший путь трафика.
Характеристики и возможности
Автомасштабирование и эластичность
ELB автоматически масштабируется в зависимости от объёма трафика, не требуя предварительного выделения ресурсов. Сервис способен обрабатывать резкие всплески нагрузки, характерные для интернет-приложений.
Проверки здоровья (Health Checks)
Балансировщик регулярно отправляет запросы к целевым ресурсам (например, HTTP GET на указанный путь). Если ресурс не отвечает в течение заданного тайм-аута или возвращает код ошибки, он считается неработоспособным и исключается из пула распределения трафика до восстановления.
Безопасность
- Шифрование TLS: ALB и NLB поддерживают SSL-терминацию, позволяя расшифровывать трафик на балансировщике и передавать его в зашифрованном или открытом виде к целевым ресурсам.
- Интеграция с AWS WAF: ALB может быть связан с AWS Web Application Firewall для фильтрации вредоносных запросов.
- Security Groups: Балансировщики могут быть защищены правилами групп безопасности, ограничивающими входящий трафик.
- VPC: Балансировщик разворачивается внутри виртуального частного облака (VPC) и может быть настроен на приём трафика только из определённых подсетей.
Мониторинг и логирование
ELB интегрирован с сервисами AWS CloudWatch (метрики: количество запросов, задержка, количество ошибок) и AWS Access Logs (детальные логи всех запросов, сохраняемые в Amazon S3). Также доступны трассировки с помощью AWS X-Ray.
Применение
Elastic Load Balancing используется в самых разных архитектурах:
- Веб-приложения: ALB распределяет HTTP/HTTPS-трафик между несколькими серверами, обеспечивая высокую доступность.
- Микросервисы: ALB маршрутизирует запросы к разным микросервисам на основе путей URL (например,
/api/users→ один сервис,/api/orders→ другой). - Контейнерные приложения: ELB часто используется с Amazon ECS (Elastic Container Service) и Amazon EKS (Elastic Kubernetes Service) для распределения трафика между контейнерами.
- Сетевые приложения: NLB применяется для балансировки TCP/UDP-трафика, например, для игровых серверов, баз данных, VoIP-систем.
- Безопасность сети: GWLB используется для централизованного управления сетевыми устройствами, такими как межсетевые экраны (firewalls).
Сравнение типов ELB
| Характеристика | Application Load Balancer (ALB) | Network Load Balancer (NLB) | Gateway Load Balancer (GWLB) |
|---|---|---|---|
| Уровень OSI | 7 (прикладной) | 4 (транспортный) | 3 (сетевой) |
| Протоколы | HTTP, HTTPS, HTTP/2, WebSocket | TCP, UDP, TLS, TCP_UDP | IP (через GENEVE) |
| Задержка | Низкая (миллисекунды) | Сверхнизкая (микросекунды) | Низкая |
| Маршрутизация | По содержимому запроса (путь, заголовок, домен) | По IP-адресу и порту | По IP-адресу (шлюз) |
| Сохранение IP клиента | Нет (по умолчанию) | Да | Да |
| Статические IP | Нет | Да (Elastic IP) | Нет |
| Основное применение | Веб-приложения, микросервисы, API | Высоконагруженные сетевые приложения, игры | Виртуальные сетевые устройства (firewalls, IDS/IPS) |
Ограничения и особенности
- Стоимость: ELB тарифицируется отдельно за каждый час работы балансировщика и за объём обработанного трафика (в гигабайтах). ALB также взимает плату за количество правил маршрутизации.
- Региональность: Балансировщик привязан к одному региону AWS и не может распределять трафик между ресурсами в разных регионах (для этого используется AWS Global Accelerator).
- Задержка при холодном старте: При резком увеличении трафика балансировщик может масштабироваться с небольшой задержкой (обычно несколько секунд).
- Квоты: Существуют ограничения на количество балансировщиков, целевых групп и слушателей на аккаунт (квоты можно увеличить через запрос в службу поддержки AWS).
Источники
- Amazon Web Services. «Elastic Load Balancing Documentation» — AWS Documentation.
- Amazon Web Services. «What is Elastic Load Balancing?» — AWS Developer Guide.
- Amazon Web Services. «Comparison of AWS Elastic Load Balancing products» — AWS Whitepapers.
- Amazon Web Services. «AWS Elastic Load Balancing: Deep Dive» — AWS re:Invent presentations.
- Документация AWS по типам балансировщиков (ALB, NLB, GWLB) — AWS Console Help.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →