Гид по технологиям

Network Load Balancer в AWS — как создать и настроить

6 min read Cloud Обновлено 22 Nov 2025
AWS Network Load Balancer — создание и настройка
AWS Network Load Balancer — создание и настройка

Обложка: AWS Network Load Balancer — диаграмма сетевого балансировщика нагрузки

Кратко о Network Load Balancer

Network Load Balancer — это компонент сервиса EC2 в AWS, работающий на транспортном уровне (четвёртый уровень модели OSI). Он открывает TCP-подключение к целевому ресурсу на порту, указанном в конфигурации слушателя (listener). NLB поддерживает статические IP-адреса, позволяет регистрировать цели по IP (то есть добавлять ресурсы за пределами VPC), масштабируется для очень высоких нагрузок и иногда называется TCP Load Balancer.

Важно: если целевые инстансы помечены как unhealthy (нездоровые), NLB прекращает маршрутизацию к ним и отправляет трафик только на здоровые цели, как в той же, так и в других зонах доступности.

Зачем использовать NLB — преимущества и ограничения

Преимущества:

  • Низкая задержка и высокая пропускная способность для TCP-трафика.
  • Поддержка статических IP и регистрации по IP-адресу.
  • Простая маршрутизация на уровне четвертого слоя (без вмешательства в HTTP/HTTPS).
  • Подходит для нестандартных TCP-протоколов и протоколов с длительными соединениями.

Ограничения и когда NLB не подходит:

  • NLB не работает с правилами уровня HTTP (Host-based routing, path-based routing) — если вам нужны маршруты по URL или продвинутая обработка HTTP, выбирайте Application Load Balancer (ALB).
  • Для простых веб-приложений с необходимостью SSL-termination и WAF чаще удобнее ALB или интеграция с CloudFront.
  • Если требуется балансировка UDP/QUIC — проверяйте поддержку протоколов и режимов в текущем регионе.

Альтернативные подходы и когда их использовать

  • Application Load Balancer (ALB): нужен для HTTP/HTTPS, host/path routing, WebSocket, интеграции с WAF.
  • Classic Load Balancer (CLB): устаревший вариант, подходит только для старых сценариев совместимости.
  • Network Load Balancer + TLS termination на целевых инстансах: если требуется L4 с шифрованием end-to-end.

Предварительные требования

  1. Аккаунт AWS. Если его нет — создайте на aws.amazon.com.
  2. Один или несколько EC2-инстансов с работающим Apache (или другим TCP-сервисом).
  3. Правильные Security Group и правила сетевого маршрутизации, позволяющие трафику от NLB доходить до инстансов (обычно входящий трафик на порт 80/443 или на ваш порт приложения).

Что мы сделаем

  1. Войдём в AWS Management Console.
  2. Создадим Network Load Balancer.
  3. Зарегистрируем EC2-инстансы (или IP-адреса) как цели.
  4. Дождёмся статуса healthy и проверим работу приложения через DNS балансировщика.

Шаг 1 — Вход в AWS

Нажмите в консоли входа AWS и введите свои учётные данные. После успешного входа вы увидите консоль с перечнем сервисов.

Страница входа в AWS

Шаг 2 — Откройте консоль EC2 и раздел Load Balancers

В верхнем меню Services найдите «ec2» и перейдите в сервис EC2.

Переход в EC2

На дашборде EC2 найдите в боковой панели раздел “Load Balancers” и откройте его.

Ресурсы EC2 и переход к Load Balancers

Нажмите кнопку «Create Load Balancer», чтобы начать создание нового балансировщика.

Создание Load Balancer

Выберите тип “Network Load Balancer” и нажмите «Create».

Выбор Network Load Balancer

Шаг 3 — Конфигурация Network Load Balancer

  1. Дайте уникальное имя балансировщику.
  2. Выберите схему: “internet-facing” для внешнего доступа из интернета или “internal” для доступа только внутри VPC. Если нужно принять трафик из интернета — выберите internet-facing.

Конфигурация Load Balancer

Выберите не менее двух зон доступности (Availability Zones) для отказоустойчивости. В демонстрации выбранны три зоны.

Выбор зон доступности

Если вы не используете TLS для тестовой среды, консоль может показать предупреждение. Для production всегда настраивайте TLS.

Предупреждение о TLS в тестовой среде

Шаг 4 — Маршрутизация и группа целей (Target Group)

  1. Создайте новую Target Group. Укажите уникальное имя группы в регионе.
  2. Выберите тип цели: Instance (регистрация по инстансу) или IP (регистрация по IP-адресу). При выборе IP можно подключать ресурсы за пределами VPC.
  3. Оставьте порт и протокол (TCP) или укажите свой порт приложения.

Конфигурация маршрутизации

Шаг 5 — Регистрация целей

Выберите EC2-инстансы, на которых работает Apache, и нажмите «Add to registered».

Выбор целей для балансировщика

Затем нажмите “Review” и “Create” для завершения настройки.

Обзор конфигурации и создание

Если создание прошло успешно, закройте окно и вернитесь в список балансировщиков.

Успешно созданный балансировщик

Шаг 6 — Проверка статуса и доступ по DNS

Дождитесь, пока состояние балансировщика станет “active”. Откройте Target Group и проверьте, что цели имеют статус Healthy — на это может потребоваться несколько секунд или минут.

Скопируйте DNS-имя балансировщика из вкладки “Description” и вставьте в браузер для теста.

Конфигурация Load Balancer и DNS

Если всё настроено верно, ваше Apache-приложение отобразится через Network Load Balancer.

Тестовая страница Apache через NLB

Контрольный список перед развертыванием в продакшн

  • Настроены Security Group: входящий трафик с NLB до инстансов разрешён на нужный порт.
  • Health checks настроены корректно (путь, порт, интервал, таймаут).
  • Выбрана схема (internet-facing vs internal) согласно требованиям безопасности.
  • Установлены логи и мониторинг (CloudWatch Metrics, Access Logs при необходимости).
  • TLS/шифрование организовано (либо на NLB с TLS passthrough, либо на целевых инстансах).
  • Резервирование по зонам доступности выполнено.

Критерии приёмки

  • DNS балансировщика возвращает страницу приложения в браузере.
  • Все зарегистрированные цели находятся в состоянии Healthy согласно настройкам Health Check.
  • Метрики CloudWatch показывают ожидаемую нагрузку и отсутствие ошибок соединения.
  • Для production: TLS подключение установлено и сертификаты валидны.

План действий при проблемах (Runbook)

  1. Проверить статус Target Group: есть ли Healthy цели.
  2. Если все цели Unhealthy — проверить настройки Health Check (порт, путь, интервал, таймаут).
  3. Проверить Security Group и Network ACL, разрешены ли входящие соединения от NLB.
  4. Пингуйте/подключайтесь напрямую к инстансам на целевой порт (например, curl на порт 80) из внутри VPC.
  5. Просмотрите логи Apache на инстансах и системные логи для ошибок привязки порта.
  6. Проверить, не превышен ли лимит подключений или нет проблем с ресурсами инстансов.
  7. При необходимости заменить цель на другой инстанс и проверить, восстанавливается ли traffic.

Советы по безопасности и соответствию

  • В production всегда используйте TLS. При необходимости Termination SSL можно оставить на инстансах или организовать TLS passthrough.
  • Контролируйте доступ к консоли AWS и включайте многфакторную аутентификацию (MFA) для администраторов.
  • В случае обработки персональных данных убедитесь, что логирование и хранение данных соответствуют требованиям конфиденциальности и локальным законам.

Тестовые сценарии и критерии приёмки

  • Простая проверка: запрос по DNS возвращает HTTP 200 с ожидаемым содержимым.
  • Failover: выключить один инстанс — трафик должен направиться на оставшиеся здоровые инстансы без заметного прерывания.
  • Масштабируемость: отправить нагрузочный трафик и проверить, что NLB не теряет подключений (проверяется на тестовой среде).

Роли и обязанности

Администратор сети:

  • Проверяет Security Group, Subnet и NACL.
  • Контролирует статические IP (если используются).

DevOps-инженер:

  • Создаёт Target Group, настраивает Health Checks.
  • Регистрирует инстансы/IP.

Разработчик/QA:

  • Тестирует приложение через DNS балансировщика.
  • Проводит тесты отказоустойчивости и производительности.

Короткое резюме

Network Load Balancer — инструмент для высокопроизводительной TCP-балансировки на уровне L4. Он прост в настройке, поддерживает регистрацию по IP и статические IP, а также подходит для сценариев с длительными соединениями или нестандартными TCP-протоколами. Для веб-специфичных задач с обработкой HTTP/HTTPS лучше рассмотреть Application Load Balancer. Следуйте контрольному списку и runbook для корректного развёртывания в production.

Ключевые ссылки и примечания

  • Для детальной документации AWS по Network Load Balancer используйте официальную документацию в консоли AWS или на aws.amazon.com.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как писать эффективные деловые письма
Коммуникация

Как писать эффективные деловые письма

Как проверить, разблокирован ли ваш телефон
Мобильные устройства

Как проверить, разблокирован ли ваш телефон

Windows 10 зависает — как исправить (8 шагов)
Техника

Windows 10 зависает — как исправить (8 шагов)

3D эффект вырывающегося изображения в Photoshop
Фотография

3D эффект вырывающегося изображения в Photoshop

Как оценить приложение в App Store на iPhone
Мобильные приложения

Как оценить приложение в App Store на iPhone

Учимся C: Hello World и основы
Программирование

Учимся C: Hello World и основы