0Pricing
AWS Solutions Architect · Урок

ALB, NLB и GLB: когда что использовать

Разберитесь в различиях между балансировщиками нагрузки приложений, сетевыми и шлюзовыми балансировщиками и сопоставьте каждый с подходящим сценарием использования.

«ALB, NLB и GLB: когда что использовать» — бесплатный урок AWS Solutions Architect на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AWS Solutions Architect, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AWS Solutions Architect содержит 4 уроков всего.

Обзор Elastic Load Balancing

Elastic Load Balancing (ELB) автоматически распределяет входящий трафик приложения между несколькими целями — экземплярами EC2, контейнерами, функциями Lambda или IP-адресами. ELB — это управляемый сервис: AWS отвечает за подготовку, масштабирование и доступность самого балансировщика нагрузки в нескольких AZ.

AWS предлагает три типа балансировщиков нагрузки в составе ELB: Application Load Balancer (ALB), Network Load Balancer (NLB) и Gateway Load Balancer (GWLB). Каждый работает на своём уровне модели OSI и оптимизирован для разных сценариев использования.

Application Load Balancer (ALB)

ALB работает на уровне 7 (HTTP/HTTPS) модели OSI. Он может анализировать заголовки HTTP, пути, строки запросов, имена хостов и файлы cookie, чтобы принимать интеллектуальные решения о маршрутизации. ALB — основной выбор для веб-приложений, микросервисов и конечных точек API, которым нужна маршрутизация на основе содержимого.

Ключевые возможности ALB: маршрутизация по пути (/api/* в одну целевую группу, /static/* — в другую), маршрутизация по хосту (разные виртуальные хосты к разным серверным компонентам), маршрутизация по заголовкам HTTP и строкам запросов, поддержка WebSocket и HTTP/2. ALB может направлять трафик к экземплярам EC2, контейнерам (ECS/EKS), функциям Lambda и IP-адресам.

# Create an ALB
aws elbv2 create-load-balancer \
  --name my-alb \
  --subnets subnet-aaaa1111 subnet-bbbb2222 \
  --security-groups sg-12345678 \
  --type application

Network Load Balancer (NLB)

NLB работает на уровне 4 (TCP/UDP/TLS). Он маршрутизирует пакеты на основе данных протокола IP, не анализируя содержимое приложения. NLB предназначен для экстремальной производительности: он обрабатывает миллионы запросов в секунду с сверхнизкой задержкой (обычно менее 100 микросекунд).

Ключевые возможности NLB: статические IP-адреса для каждого AZ (один Elastic IP на подсеть), сквозная передача TLS (пересылка зашифрованного трафика без расшифровки), сохранение IP-адреса клиента и поддержка протоколов UDP (например, DNS, RADIUS, игровые серверы). NLB не может выполнять маршрутизацию на основе содержимого или анализировать заголовки HTTP.

# Create an NLB
aws elbv2 create-load-balancer \
  --name my-nlb \
  --subnets subnet-aaaa1111 subnet-bbbb2222 \
  --type network

Gateway Load Balancer (GWLB)

GWLB работает на уровне 3 (сетевом уровне) и предназначен исключительно для развёртывания, масштабирования и управления виртуальными сетевыми устройствами сторонних производителей — межсетевыми экранами, системами обнаружения и предотвращения вторжений (IDS/IPS) и системами глубокой проверки пакетов.

GWLB использует протокол GENEVE (порт 6081), чтобы инкапсулировать трафик и отправлять его в парк Ваших устройств. Устройство проверяет пакет и возвращает его через ту же конечную точку GWLB. Трафик проходит прозрачно, без необходимости изменять маршрутизацию в исходной VPC. Это стандартный способ добавить централизованную проверку безопасности в потоки трафика AWS VPC.

Сценарии использования ALB

Выбирайте ALB, если:

  • Вам нужна маршрутизация HTTP/HTTPS на основе содержимого (пути, хоста, заголовка, строки запроса)
  • Ваша серверная часть включает функции Lambda или контейнеры ECS
  • Вам нужны соединения WebSocket или HTTP/2
  • Вы хотите интегрировать AWS WAF для защиты веб-приложения на уровне балансировщика нагрузки
  • Вы создаёте архитектуру микросервисов с множеством сервисов на разных путях URL
  • Вам нужно завершение SSL/TLS на балансировщике нагрузки

ALB — правильный ответ для большинства вопросов экзамена SAA-C03 о балансировке нагрузки веб-приложений и REST API.

Сценарии использования NLB

Выбирайте NLB, если:

  • Вам нужна экстремальная производительность (миллионы запросов в секунду, задержка менее миллисекунды)
  • Вам требуются статические IP-адреса, которые партнёры или межсетевые экраны могут добавить в список разрешённых
  • Вам нужно обрабатывать трафик UDP (игры, DNS, RADIUS, IoT)
  • Вы хотите использовать сквозную передачу TLS без расшифровки на балансировщике нагрузки (сквозное шифрование до цели)
  • Вам нужно изначально сохранять исходный IP-адрес клиента на уровне TCP
  • Вы используете AWS PrivateLink для предоставления сервисов другим VPC или аккаунтам (для PrivateLink требуется NLB)

Сценарии использования и архитектура GWLB

Выбирайте GWLB, если Вам нужно:

  • Добавить межсетевые экраны сторонних производителей (Palo Alto, Fortinet, Check Point) в поток сетевого трафика
  • Выполнять глубокую проверку пакетов на уровне VPC для всего входящего и исходящего трафика
  • Горизонтально масштабировать парк устройств IDS/IPS с автоматической балансировкой нагрузки

Архитектура: трафик проходит из исходной VPC → конечная точка GWLB → VPC устройств (где GWLB распределяет трафик между экземплярами устройств) → устройство возвращает трафик в GWLB → GWLB пересылает его исходному получателю. Источник и получатель не знают о промежуточной проверке.

Межзональная балансировка нагрузки

Межзональная балансировка нагрузки равномерно распределяет трафик между всеми зарегистрированными целями во всех включённых AZ, независимо от того, в каком AZ узел балансировщика получил запрос. Без межзональной балансировки узел каждого AZ распределяет трафик только между целями в своём AZ.

В ALB межзональная балансировка нагрузки включена по умолчанию без дополнительной платы. В NLB межзональная балансировка нагрузки отключена по умолчанию — её включение влечёт плату за передачу данных между AZ. В GWLB межзональная балансировка нагрузки отключена по умолчанию. Включайте межзональную балансировку, если количество целей в AZ различается, чтобы избежать перегруженных участков.

Сравнение протоколов и возможностей

Краткая сравнительная таблица для экзамена:

  • Уровень OSI: ALB = 7 (HTTP), NLB = 4 (TCP/UDP), GWLB = 3 (IP)
  • Протоколы: ALB = HTTP, HTTPS, WebSocket; NLB = TCP, UDP, TLS; GWLB = все протоколы IP через GENEVE
  • Статический IP: ALB = нет (используйте схему NLB + ALB); NLB = да (1 на AZ); GWLB = неприменимо
  • Интеграция с WAF: ALB = да; NLB = нет; GWLB = нет
  • Цель Lambda: ALB = да; NLB = нет; GWLB = нет
  • Дренирование соединений: все три поддерживают задержку отмены регистрации

ALB с AWS WAF

ALB изначально интегрируется с AWS WAF для региональной защиты (в отличие от WAF в CloudFront, который обеспечивает глобальную защиту на периферии). Подключив Web ACL WAF к ALB, Вы можете фильтровать HTTP-запросы до того, как они достигнут приложения, блокируя внедрение SQL, XSS, известные вредоносные IP-адреса и клиентов, злоупотребляющих частотой запросов.

Используйте ALB + WAF, если Вам нужна проверка безопасности на уровне балансировщика нагрузки (например, для защиты API, которые не обслуживаются через CloudFront). Web ACL WAF, подключённые к ALB, должны находиться в том же регионе, что и ALB, и иметь область действия REGIONAL (в отличие от WAF CloudFront, которому требуется область действия CLOUDFRONT в us-east-1).

NLB с PrivateLink

AWS PrivateLink использует NLB, чтобы предоставлять сервисы из одной VPC потребителям в других VPC или аккаунтах AWS без пиринга VPC, интернет-шлюза или NAT. Поставщик сервиса создаёт NLB перед своим сервисом и создаёт сервис конечной точки VPC. Потребители создают интерфейсную конечную точку VPC в своей VPC, указывающую на сервис.

Трафик проходит по частной сети AWS и никогда не выходит в интернет. PrivateLink — стандартный способ для поставщиков SaaS в AWS и предоставления общих сервисов (например, централизованного сервиса безопасности) нескольким внутренним аккаунтам AWS.

Быстрая проверка

Проверьте понимание концепций AWS Solutions Architect (SAA-C03) из этого урока.

Итоги урока

В этом уроке Вы узнали, что ALB выполняет маршрутизацию на уровне 7 (HTTP) с правилами на основе содержимого, интеграцией с WAF и целями Lambda, NLB выполняет маршрутизацию на уровне 4 (TCP/UDP) со статическими IP-адресами и экстремальной пропускной способностью, а GWLB развёртывает виртуальные сетевые устройства на уровне 3 с использованием GENEVE. Подбирайте балансировщик нагрузки в соответствии с требованиями к протоколу и возможностям. Далее мы рассмотрим целевые группы и проверки работоспособности.

Часто задаваемые вопросы

Урок «ALB, NLB и GLB: когда что использовать» бесплатный?

Да — полный текст урока «ALB, NLB и GLB: когда что использовать» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AWS Solutions Architect, подпишись на CoddyKit PRO. Курс AWS Solutions Architect содержит 4 уроков всего.

Чему я научусь в уроке «ALB, NLB и GLB: когда что использовать»?

Разберитесь в различиях между балансировщиками нагрузки приложений, сетевыми и шлюзовыми балансировщиками и сопоставьте каждый с подходящим сценарием использования. Ты практикуешь AWS Solutions Architect с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать AWS Solutions Architect?

Предыдущий опыт не требуется. AWS Solutions Architect на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «ALB, NLB и GLB: когда что использовать»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке AWS Solutions Architect?

Да. Каждый урок AWS Solutions Architect включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. ALB, NLB и GLB: когда что использовать
  2. Целевые группы и проверки работоспособности
  3. Правила слушателей и маршрутизация на основе путей
  4. Завершение SSL и закреплённые сеансы
← Назад к AWS Solutions Architect