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

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)
Уровень OSIL4 и L7L7 (прикладной)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.

Источники

  1. Документация Amazon Web Services: «Elastic Load Balancing — Classic Load Balancer».
  2. AWS Whitepaper: «Best Practices for Elastic Load Balancing».
  3. Amazon Web Services Blog: «New — Classic Load Balancer for Amazon EC2».
  4. Книга: «AWS Certified Solutions Architect Study Guide» (Ben Piper, David Clinton).
  5. Статья: «Comparison of AWS Load Balancers» на портале AWS re:Post.

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

На главную BFOmetr →