Создание Application Load Balancer в AWS и доступ к Apache через DNS
TL;DR
Application Load Balancer (ALB) — балансировщик нагрузки уровня приложения (OSI L7) в AWS. В этой инструкции показано, как создать ALB, зарегистрировать целевые EC2-инстансы с Apache и проверить доступ к приложению по DNS балансировщика. Включены шаги, чек-листы, рекомендации по безопасности и типичные ошибки для быстрого разворачивания в тестовой и подготовке к продакшену.
Важно: в тестовой среде допустимо использовать HTTP, но в продакшене рекомендуется настроить HTTPS и корректные правила безопасности.

Load Balancer относится к сервисам EC2 в AWS. Application Load Balancer работает на седьмом уровне модели OSI (уровень приложения). ALB поддерживает маршрутизацию по пути (path-based routing), по хосту (host-based routing), маршрутизацию на основании полей запроса, а также регистрацию целей по IP-адресу (например, вне VPC). Благодаря этому можно гибко добавлять и удалять цели без прерывания потока запросов.
Для оплаты ALB вы платите только за используемые ресурсы (время работы и обработанные запросы). В статье показаны практические шаги по созданию ALB, регистрации инстансов и проверке доступа через DNS.
Кому пригодится эта инструкция
- Инженерам DevOps и системным администраторам, настраивающим балансировку нагрузки в AWS.
- Разработчикам, которым нужно обеспечить высокую доступность приложений на Apache.
- Тем, кто изучает основы AWS и хочет отработать создание ALB в тестовой среде.
Предварительные требования
- Учётная запись AWS (создайте, если её нет).
- Один или несколько EC2-инстансов, на которых запущен Apache (порт 80).
- Минимальные знания консоли AWS (EC2, VPC, Security Groups).
Краткий план действий
- Войти в консоль AWS.
- Перейти в EC2 → Load Balancers.
- Создать Application Load Balancer (интернет-ориентированный).
- Настроить слушатель (Listener) для HTTP/80 или HTTPS/443.
- Создать target group и зарегистрировать EC2-инстансы.
- Дождаться состояния active, скопировать DNS и проверить доступ.
Подготовка к созданию ALB — чек-лист
- Убедиться, что EC2-инстансы находятся в той же VPC и имеют запущенный Apache.
- Инстансы находятся в приватных или публичных подсетях (для доступа через интернет ALB должен быть в публичных подсетях).
- Security Group инстансов разрешает входящий трафик с порта 80/443 от ALB (обычно по CIDR или Security Group ALB).
- Есть минимум 2 Availability Zone для высокой доступности.
Шаги: вход в AWS и навигация
Перейдите на страницу входа в AWS и авторизуйтесь.
Перейдите по ссылке для входа и введите свои учётные данные.

После успешного входа откроется консоль с перечнем сервисов.
Создание Application Load Balancer
- В консоли AWS выберите «Services» → в поиске введите «EC2» → откройте EC2 Dashboard.

- На боковой панели EC2 выберите Load Balancers.

- Нажмите Create Load Balancer.

- Выберите Application Load Balancer и нажмите Create.

Конфигурация основного блока
- Введите имя балансировщика (имя должно быть уникальным в регионе).
- Scheme: выберите Internet-facing, чтобы балансировщик принимал трафик из интернета.
- Network mapping: выберите VPC и минимум две подсети в разных Availability Zone.

Примечание: при выборе HTTP вместо HTTPS консоль покажет предупреждение. Для тестовой среды это допустимо, в продакшене используйте HTTPS и настроенные сертификаты.

Настройка безопасности (Security Group)
- Можно создать новую Security Group для ALB, которая разрешит входящие соединения на выбранный порт (обычно 80 и/или 443).
- Либо выбрать существующую группу.

Важно: Security Group инстансов должна разрешать входящий трафик от Security Group ALB (рекомендуется правило типа «Allow from security-group-id»), а не открывать порт 80/443 всем.

Конфигурация маршрутизации и target group
- Создайте target group: укажите имя, protocol (HTTP) и порт (80), выберите тип Target type: instance (или ip, если регистрируете IP вне VPC).
- Health checks: по умолчанию HTTP на путь /, можно изменить на /index.html или на конкретный путь приложения.

Регистрация целей (targets)
- Выберите один или несколько EC2-инстансов с запущенным Apache и нажмите Add to registered.
- Нажмите Next: Review и затем Create.

Просмотр и проверка
- По завершении нажмите Close и вернитесь к списку Load Balancers.
- Дождитесь, пока состояние Load Balancer станет active и статусы целей — healthy.


- Скопируйте DNS-имя из вкладки Description и откройте его в браузере. Через несколько минут health checks должны подтвердить работоспособность, и вы увидите страницу Apache.


Критерии приёмки
- Load Balancer в состоянии active.
- Минимум 2 registered targets со статусом healthy.
- Доступ к приложению по DNS балансировщика возвращает ожидаемую страницу или ответ 200.
- Логи доступа и health checks проверены на отсутствие ошибок.
Рекомендации по безопасности и продакшену
- Настройте HTTPS: используйте AWS Certificate Manager (ACM) для управления сертификатами и добавьте слушатель HTTPS (443).
- Отключите прямой доступ к портам приложения из интернета: инстансы должны принимать трафик только от ALB.
- Включите логирование доступа ALB (Access Logs) в S3 для аудита.
- Настройте WAF (Web Application Firewall) при необходимости для защиты от OWASP-угроз.
Типичные ошибки и способы устранения
- Неправильные security group: убедитесь, что Security Group инстансов принимает трафик от Security Group ALB.
- Health checks возвращают unhealthy: проверьте путь health check и ответ сервера (HTTP 200). Проверьте firewall/iptables на инстансах.
- DNS не отвечает: убедитесь, что ALB в состоянии active и нет проблем с целевыми подсетями или маршрутами.
Роли и чек-листы
Администратор AWS (DevOps):
- Проверить VPC и подсети.
- Создать/проверить Security Groups.
- Настроить ALB и target groups.
- Включить логирование и мониторинг.
Разработчик приложения:
- Убедиться, что приложение слушает правильный порт и возвращает корректные ответы для health check.
- Проверить, что статические ресурсы доступны и нет ограничений CORS/Host.
Короткая методология развертывания (mini-methodology)
- Подготовка инфраструктуры: VPC, подсети, security groups.
- Развёртывание приложения на двух и более инстансах.
- Создание ALB и target group.
- Регистрация инстансов и тестирование health checks.
- Переконфигурация на HTTPS и закрытие избыточных правил доступа.
Глоссарий — 1 строка
- ALB: Application Load Balancer — балансировщик нагрузки уровня приложения (L7).
- Target group: группа целей (EC2 или IP), на которые ALB пересылает трафик.
- Listener: слушатель на порту (HTTP/HTTPS), принимающий входящие запросы.
Часто задаваемые вопросы
Как ALB отличается от Classic Load Balancer?
ALB работает на уровне приложения (L7) и поддерживает маршрутизацию по URL/Host и более гибкие правила; Classic — устаревший, для простых L4/L7 сценариев.
Можно ли регистрировать цели по IP-адресу вне VPC?
Да, если выбрать тип target group «ip», можно добавить IP-адреса вне VPC при корректной сетевой доступности.
Заключение
Мы прошли полный путь: вход в AWS, создание Application Load Balancer, настройка security group и target group, регистрация EC2-инстансов с Apache и проверка доступа по DNS. Для тестовой среды достаточно HTTP, но в продакшене обязательно настройте HTTPS, логи и WAF для безопасности. Следуйте чек-листам и критериям приёмки для корректного развёртывания.
Дополнительные шаги при подготовке к продакшену: автоматизация создания ALB через Terraform/CloudFormation, мониторинг метрик (TargetResponseTime, RequestCount, HTTPCode_Target_5XX) и настройка alerting в CloudWatch.
Похожие материалы
Herodotus: механизм и защита Android‑трояна
Включить новое меню «Пуск» в Windows 11
Панель полей сводной таблицы в Excel — руководство
Включить новое меню «Пуск» в Windows 11
Дубликаты Диспетчера задач в Windows 11 — как исправить