Выбор подходящего балансировщика зависит от конкретных требований проекта. Универсально «лучшего» решения не существует — важно опираться на особенности задачи и инфраструктуры.
Первый важный фактор — уровень балансировки. Для интеллектуальной маршрутизации HTTP‑трафика подходит Yandex Application Load Balancer. Если требуется просто распределение TCP/UDP‑трафика по ресурсам, достаточно Yandex Network Load Balancer.
Поддержка необходимых протоколов тоже играет значительную роль при выборе. Балансировщик должен работать со всеми протоколами, используемыми в приложении: HTTP/HTTPS, HTTP/2, gRPC, WebSocket, TCP или UDP.
Важны и требования к задержкам и пропускной способности. Для задач, критичных к задержкам — например, онлайн‑игр или биржевых торгов, — предпочтительнее сетевой. Он обрабатывает трафик быстрее, чем прикладной, потому что тот дополнительно анализирует содержимое запросов.
При выборе нужно учитывать и функциональные требования:
- потребность в SSL/TLS‑терминации для централизованной обработки HTTPS
- необходимость привязки сессий (session affinity) — механизма, направляющего все запросы одного пользователя на один и тот же ресурс,
- потребность в сложной маршрутизации на основе содержимого запросов.
Нельзя забывать и о требованиях безопасности. Защита веб‑приложений от атак реализуется с помощью L7‑балансировщика с Web Application Firewall. Важно оценить и необходимый уровень защиты от DDoS‑атак.
Выбор балансировщика зависит и от общей архитектуры проекта. Для микросервиснов и веб‑приложений больше подходит Application Load Balancer. Для низкоуровневых протоколов и приложений, чувствительных к задержкам, оптимальнее Network Load Balancer.
Мы предлагаем два основных типа управляемых балансировщиков нагрузки, которые закрывают большинство сценариев использования:
- Yandex Application Load Balancer работает на уровне приложений (L7) и предназначен для трафика HTTP, HTTPS и gRPC. Он распределяет запросы на основе их содержимого — URL и заголовков. Application Load Balancer поддерживает SSL/TLS‑терминацию с сертификатами из Yandex Certificate Manager и настраиваемую привязку сессий для стабильной работы приложений, хранящих состояние пользовательских сессий.
- Yandex Network Load Balancer функционирует на сетевом уровне (L4) и обрабатывает трафик TCP и UDP. Он обеспечивает максимальную производительность с минимальными задержками, что критично для многих приложений. Network Load Balancer использует настраиваемые проверки работоспособности для надёжного мониторинга ресурсов.
Оба балансировщика интегрированы с другими сервисами нашей платформы: