Classic Load Balancer
Classic Load Balancer — это тип балансировщика нагрузки, предоставляемый в составе облачного сервиса Amazon Web Services (AWS) для распределения входящего трафика между несколькими виртуальными серверами (экземплярами Amazon EC2). Classic Load Balancer (CLB) является одним из первых и наиболее простых решений для балансировки в облачной инфраструктуре AWS, работающим на транспортном (четвёртом) и прикладном (седьмом) уровнях модели OSI.
История
Classic Load Balancer был представлен компанией Amazon в 2009 году как часть сервиса Elastic Load Balancing (ELB). На момент запуска он был единственным типом балансировщика в AWS и предназначался для базового распределения трафика между экземплярами EC2 в рамках одного региона. С развитием облачных технологий и ростом требований к производительности и гибкости, в 2016 году AWS выпустила более современные типы балансировщиков — Application Load Balancer (ALB) и Network Load Balancer (NLB). Несмотря на это, Classic Load Balancer остаётся доступным для использования, особенно в устаревших архитектурах, где его функциональности достаточно.
Принцип работы
Classic Load Balancer функционирует как точка входа для входящего трафика, направляя запросы к зарегистрированным целевым экземплярам EC2. Он использует алгоритм циклического обхода (round-robin) для распределения запросов на уровне TCP и HTTP. Балансировщик регулярно проверяет состояние целевых экземпляров с помощью механизма health checks (проверок здоровья), чтобы исключить из обработки неработоспособные узлы. CLB поддерживает как внутренние (внутри виртуальной частной сети VPC), так и внешние (публичные) IP-адреса, обеспечивая доступ к приложениям из интернета или изолированных сред.
Характеристики и возможности
Уровни работы
Classic Load Balancer работает на двух уровнях модели OSI:
- Транспортный уровень (L4): балансировка TCP-трафика на основе IP-адресов и портов.
- Прикладной уровень (L7): балансировка HTTP/HTTPS-трафика с возможностью завершения SSL-соединений и обработки запросов на основе содержимого (например, заголовков).
Поддержка протоколов
CLB поддерживает протоколы TCP, HTTP, HTTPS и SSL. Для HTTPS-трафика он может выполнять терминирование SSL-сертификатов, что снижает нагрузку на целевые экземпляры.
Масштабирование
Балансировщик автоматически масштабируется в зависимости от объёма входящего трафика, не требуя ручного вмешательства. Он может обрабатывать миллионы запросов в секунду, хотя для более высоких нагрузок AWS рекомендует использовать Network Load Balancer.
Интеграция с сервисами AWS
CLB тесно интегрирован с другими сервисами AWS:
- Amazon EC2: регистрация и удаление экземпляров из целевой группы.
- Amazon Route 53: настройка DNS-записей для направления трафика на балансировщик.
- AWS CloudWatch: мониторинг метрик, таких как количество запросов, задержки и ошибки.
- AWS Auto Scaling: автоматическое добавление или удаление экземпляров в зависимости от нагрузки.
Безопасность
Classic Load Balancer поддерживает шифрование трафика с помощью SSL/TLS-сертификатов, управляемых через AWS Certificate Manager (ACM) или загружаемых вручную. Он также может быть настроен для работы в частных подсетях VPC, ограничивая доступ только из доверенных источников.
Отличия от других типов балансировщиков AWS
С появлением Application Load Balancer и Network Load Balancer Classic Load Balancer утратил часть своей популярности. Основные различия:
| Характеристика | Classic Load Balancer (CLB) | Application Load Balancer (ALB) | Network Load Balancer (NLB) |
|---|---|---|---|
| Уровень OSI | L4 и L7 | L7 (прикладной) | L4 (транспортный) |
| Алгоритм балансировки | Циклический обход (round-robin) | На основе правил маршрутизации (пути, заголовки) | Потоковый (hash-based) |
| Поддержка контейнеров | Ограниченная | Полная (интеграция с ECS и EKS) | Полная |
| Статические IP-адреса | Нет | Нет | Да |
| Маршрутизация по содержимому | Нет | Да (URL, параметры запроса) | Нет |
| WebSocket | Ограниченная поддержка | Полная поддержка | Полная поддержка |
| Производительность | Средняя | Высокая | Очень высокая (миллионы запросов в секунду) |
Применение
Classic Load Balancer используется в сценариях, где требуется простая балансировка без сложной маршрутизации на уровне приложений. Типичные случаи применения включают:
- Веб-приложения: распределение HTTP/HTTPS-трафика между несколькими серверами для обеспечения отказоустойчивости.
- Базы данных: балансировка TCP-соединений к базам данных, таким как MySQL или PostgreSQL.
- Устаревшие системы: поддержка старых архитектур, где миграция на ALB или NLB нецелесообразна.
Ограничения
Classic Load Balancer имеет ряд недостатков по сравнению с более современными аналогами:
- Отсутствие маршрутизации по содержимому: CLB не может направлять запросы на разные целевые группы на основе URL или заголовков.
- Ограниченная поддержка контейнеров: для работы с Docker или Kubernetes требуется дополнительная настройка.
- Отсутствие статических IP-адресов: IP-адреса CLB могут меняться, что усложняет настройку брандмауэров.
- Меньшая производительность: для очень высоких нагрузок CLB уступает NLB.
Критика и устаревание
С момента появления ALB и NLB AWS рекомендует использовать Classic Load Balancer только в случаях, когда миграция на новые типы невозможна из-за обратной совместимости. Основная критика CLB связана с его ограниченной функциональностью и снижением производительности при росте трафика. В 2023 году AWS объявила о прекращении поддержки некоторых старых функций CLB, что подталкивает пользователей к переходу на ALB или NLB.
Интересные факты
- Classic Load Balancer был первым балансировщиком нагрузки в AWS, запущенным ещё до появления VPC (виртуальной частной сети).
- Несмотря на устаревание, CLB всё ещё используется в тысячах облачных архитектур, особенно в организациях, где миграция требует значительных затрат.
- В 2020 году AWS представила возможность автоматической миграции с CLB на ALB с помощью инструмента AWS Migration Hub.
Источники
- Документация Amazon Web Services: «Elastic Load Balancing — Classic Load Balancer».
- AWS Whitepaper: «Best Practices for Elastic Load Balancing».
- Amazon Web Services Blog: «New — Classic Load Balancer for Amazon EC2».
- Книга: «AWS Certified Solutions Architect Study Guide» (Ben Piper, David Clinton).
- Статья: «Comparison of AWS Load Balancers» на портале AWS re:Post.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →