Открыть сервис

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 поддерживает:

Network Load Balancer (NLB)

Network Load Balancer работает на четвёртом (транспортном) уровне модели OSI. Он обрабатывает TCP, UDP и TLS-трафик, обеспечивая сверхнизкую задержку (до нескольких миллисекунд). NLB способен обрабатывать миллионы запросов в секунду. Особенности:

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 на указанный путь). Если ресурс не отвечает в течение заданного тайм-аута или возвращает код ошибки, он считается неработоспособным и исключается из пула распределения трафика до восстановления.

Безопасность

Мониторинг и логирование

ELB интегрирован с сервисами AWS CloudWatch (метрики: количество запросов, задержка, количество ошибок) и AWS Access Logs (детальные логи всех запросов, сохраняемые в Amazon S3). Также доступны трассировки с помощью AWS X-Ray.

Применение

Elastic Load Balancing используется в самых разных архитектурах:

Сравнение типов ELB

ХарактеристикаApplication Load Balancer (ALB)Network Load Balancer (NLB)Gateway Load Balancer (GWLB)
Уровень OSI7 (прикладной)4 (транспортный)3 (сетевой)
ПротоколыHTTP, HTTPS, HTTP/2, WebSocketTCP, UDP, TLS, TCP_UDPIP (через GENEVE)
ЗадержкаНизкая (миллисекунды)Сверхнизкая (микросекунды)Низкая
МаршрутизацияПо содержимому запроса (путь, заголовок, домен)По IP-адресу и портуПо IP-адресу (шлюз)
Сохранение IP клиентаНет (по умолчанию)ДаДа
Статические IPНетДа (Elastic IP)Нет
Основное применениеВеб-приложения, микросервисы, APIВысоконагруженные сетевые приложения, игрыВиртуальные сетевые устройства (firewalls, IDS/IPS)

Ограничения и особенности

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →