Ответ
Network Load Balancer (NLB) и Application Load Balancer (ALB) — это сервисы балансировки нагрузки AWS, работающие на разных уровнях сетевой модели OSI и предназначенные для разных сценариев.
Network Load Balancer (Уровень 4 — транспортный):
- Принцип работы: Балансирует трафик на основе IP-адресов и портов (TCP/UDP). Не анализирует содержимое пакетов.
- Ключевые особенности:
- Сверхнизкая задержка и высокая производительность. Обрабатывает миллионы запросов в секунду.
- Поддерживает статические IP-адреса и Elastic IP.
- Идеален для протоколов, не основанных на HTTP/HTTPS (например, игровые серверы, VoIP, FTP, трафик баз данных).
- Сохраняет исходный IP-адрес клиента (Source IP preservation).
Application Load Balancer (Уровень 7 — прикладной):
- Принцип работы: Анализирует содержимое HTTP/HTTPS-запросов (заголовки, путь URL, тело).
- Ключевые особенности:
- Интеллектуальная маршрутизация. Может направлять трафик на разные группы целей (target groups) на основе:
- Пути URL (
/api/*,/static/*) - Значений заголовков (
Host: api.example.com) - Метода запроса (GET, POST)
- Пути URL (
- Поддерживает SSL/TLS-терминацию, перенаправления (redirects), аутентификацию.
- Идеален для современных веб-приложений и микросервисных архитектур.
- Интегрируется с AWS WAF и AWS Shield для безопасности.
- Интеллектуальная маршрутизация. Может направлять трафик на разные группы целей (target groups) на основе:
Практический выбор:
- Используйте NLB, если вам критичны производительность, низкая задержка и работа с не-HTTP трафиком.
- Используйте ALB, если ваше приложение — это веб-сервис (HTTP/HTTPS) и вам нужна гибкая маршрутизация, терминирование SSL или работа с контейнерами в ECS/EKS.