Обзор типов балансировщиков нагрузки
AWS предоставляет два основных решения для балансировки нагрузки с отличающейся архитектурой. Classic Load Balancer (CLB) работает по более простой модели, а Application Load Balancer (ALB) предлагает более продвинутые возможности для современных приложений.
Архитектура портов и слушателей
Classic Load Balancer:
- Использует отношение
один к одному между портами и слушателями
- Каждый слушатель обрабатывает трафик на одном порту
- Лучше подходит для простых, монолитных приложений
- Ограниченная гибкость маршрутизации
Application Load Balancer:
- Поддерживает несколько слушателей на одном балансировщике нагрузки
- Включает динамическое проксирование портов для оркестрации контейнеров
- Позволяет нескольким портам работать одновременно на одном инстансе
- Особенно эффективен с сервисами типа Amazon ECS
Ключевые преимущества Application Load Balancer
- Маршрутизация на основе контента: маршрутизируй запросы по имени хоста, пути или HTTP-заголовкам
- Улучшенная масштабируемость: лучшая поддержка микросервисной архитектуры
- Поддержка контейнеров: встроенная поддержка динамического назначения портов в контейнеризованных окружениях
- Современные протоколы: улучшенная поддержка HTTP/2 и WebSocket
Когда что использовать
Выбирай Classic Load Balancer для:
- Старых приложений, которым нужна базовая балансировка нагрузки
- Простого распределения TCP/SSL трафика
Выбирай Application Load Balancer для:
- Микросервисов и деплоя контейнеров
- Приложений, требующих продвинутой логики маршрутизации
- Современных веб-приложений со сложными паттернами трафика
Заключение
Ключевое различие — в гибкости. Classic Load Balancer даёт простую схему один-порт-один-слушатель, тогда как Application Load Balancer поддерживает несколько слушателей и динамическое проксирование портов, что делает его предпочтительным выбором для контейнеризованных и микросервисных архитектур.