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

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
Автор
Редакция

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

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство