Как настроить маршрутизацию на основе хоста в балансировщике нагрузки приложений AWS
На этой странице
- Обзор этого руководства
- Настройка экземпляров EC2
- Настройка целевой группы
- Регистрация экземпляров EC2 в целевых группах
- Создание балансировщика нагрузки приложений
- Добавление правил переадресации на основе хоста
- Регистрация домена в Route 53
- Проверка настроек…
- Заключение
В AWS ELB или Elastic Load Balancing — это концепция, в которой серверы могут быть добавлены или освобождены в соответствии с требованиями нашего приложения. Входящий трафик от приложения распределяется между несколькими целями. Этими целями могут быть экземпляры EC2, контейнеры и IP-адреса в одной или нескольких зонах доступности. Поддерживаемые типы балансировщиков эластичной нагрузки AWS: балансировщики нагрузки приложений (ALB), балансировщики сетевой нагрузки (NLB), балансировщики нагрузки шлюза (недавно запущенные) и классические балансировщики нагрузки. Эти балансировщики нагрузки имеют разные конфигурации, например,
- Application Load Balancer: автоматически распределяет входящий трафик приложений между двумя или более экземплярами EC2. Мы можем определить правила маршрутизации в соответствии с содержанием запроса (маршрутизация на основе содержимого). Это балансировщик нагрузки уровня 7.
- Балансировщики сетевой нагрузки: NLB использует данные IP-протокола (TCP и UDP) для маршрутизации подключений к ресурсам AWS, таким как EC2, микросервисы и контейнеры. Это балансировщик нагрузки уровня 4.
- Балансировщик нагрузки шлюза: используется со сторонними виртуальными устройствами, такими как брандмауэры NextGen (NGFW), IPS, IDS и т. д., работающие на экземплярах EC2. Он работает путем размещения единого шлюза для трафика от нескольких виртуальных устройств, и эти несколько виртуальных устройств можно увеличивать или уменьшать в соответствии с требованиями. Это хорошо для стабильности сети. Это балансировщик нагрузки уровня 3 (шлюз) и уровня 4 (балансировка нагрузки).
- Классический балансировщик нагрузки: CLB — это устаревший балансировщик нагрузки AWS, который используется для балансировки нагрузки между несколькими экземплярами EC2. Рекомендуется для приложений, разработанных в сети EC2-Classic. Это балансировщик нагрузки уровня 4/7. AWS рекомендует избегать этого балансировщика нагрузки.
Обзор этого руководства
В этом руководстве мы настроим маршрутизацию на основе пути для Application Load Balancer на AWS. Мы собираемся использовать учетную запись пользователя IAM с ограниченными привилегиями, необходимыми для этой задачи. У нас есть следующие ресурсы для этого эксперимента:
- Две зоны доступности, каждая из которых содержит как минимум один экземпляр EC2.
- VPC имеет как минимум одну общедоступную подсеть в каждой из двух указанных выше зон доступности. Эта общедоступная подсеть будет использоваться для настройки балансировщика нагрузки.
- Установите веб-сервер на каждом экземпляре и разрешите доступ к порту 80 на этих экземплярах с помощью группы безопасности.
Конфигурация экземпляров EC2
Для этого руководства мы настроили два экземпляра Amazon Linux EC2 с установленным на них apache Httpd. На одном сервере у нас есть каталог «signin» и файл index.html внутри него с содержимым: \Добро пожаловать, пользователь? Войдите, чтобы продолжить...
На другом сервере у нас есть каталог signup и файл index.html внутри него с содержимым: \Новый пользователь? Сначала зарегистрируйтесь...
Оба каталога «signin» и «signup» находятся внутри корневого каталога (/var/www/html).
Настройка целевой группы
Шаг 1. Для маршрутизации запроса мы сначала создадим две целевые группы, по одной для каждого сервера. Откройте консоль EC2 и на левой боковой панели найдите и выберите «Целевые группы» (она находится в разделе «Балансировка нагрузки»):
Шаг 2. На новой странице нажмите кнопку «Создать целевую группу»:
- Выберите тип цели. Выберите здесь «Экземпляры».
- Имя целевой группы: дайте подходящее имя целевой группе (в нашем случае «Войти в систему»).
- Протокол: HTTP
- Порт: 80
- VPC: выберите здесь имя VPC.
- Версия протокола: оставить версию по умолчанию (HTTP1).
В настройках «Проверки работоспособности»:
Протокол проверки работоспособности: HTTP
Путь проверки работоспособности: «Путь, который вы хотите использовать» («/ signin» в нашем случае)
Оставьте «Дополнительные параметры проверки работоспособности» по умолчанию. Добавьте теги, если они вам нужны (необязательно). Нажмите «Далее», чтобы продолжить.
Регистрация инстансов EC2 в целевых группах
Шаг 3. Теперь добавьте один из экземпляров EC2 в указанные выше целевые группы. Выберите экземпляр, а затем нажмите кнопку «Включить как ожидающие ниже».
Создание балансировщика нагрузки приложений
Шаг 1. В консоли EC2 перейдите в раздел «Балансировщики нагрузки» и нажмите кнопку «Создать балансировщик нагрузки», а затем выберите «Балансировщик нагрузки приложений», показанный на новой странице:
Шаг 6. Дополнительные шаги можно пропустить. Теперь просмотрите сводку и нажмите кнопку «Создать балансировщик нагрузки»:
Добавление правил переадресации на основе хоста
Шаг 1. Теперь снова перейдите на страницу «Балансировщики нагрузки» и найдите здесь нужный балансировщик нагрузки:
Шаг 2. Как только статус ALB изменится на Active, мы приступим к правилам переадресации. Нажмите на имя Load Balancer и перейдите на вкладку Listeners.
Шаг 3. Нажмите «Просмотр/редактирование правил» в столбце «Правила», а затем нажмите символ «+», а затем «Вставить правило»:
Шаг 4. В столбце «ЕСЛИ (все совпадения)» щелкните стрелку раскрывающегося списка «+ Добавить условие», выберите «Хост» в качестве типа правила и введите свое имя хоста или доменное имя ('www.signin.tecofers.com ' в нашем случае) в текстовом поле, соответствующем метке 'is'.
Шаг 5. В столбце «Затем» щелкните стрелку раскрывающегося списка «+ Добавить действие» и выберите «Переслать» в качестве действия. Здесь выберите целевую группу «Войти».
Повторите описанные выше шаги 2 и 3 для целевой группы «Регистрация» с именем хоста или доменным именем (в нашем случае «www.signup.tecofers.com»). После сохранения правил у нас будет два правила:
Последнее правило предназначено для действий по умолчанию, если два вышеуказанных условия не выполняются.
Регистрация домена в Route 53
Чтобы зарегистрировать хост/домены для маршрутизации на основе хоста через Интернет, нам нужно добавить DNS-имя соответствующих экземпляров EC2 с их именем хоста/доменным именем внутри Route 53.
Шаг 1. Откройте панель управления Route 53 из консоли управления и нажмите «Создать размещенную зону»:
Домен: субдомен, соответствующий вашей зоне хостинга.
Тип записи: выберите тип здесь.
Ценность/направление трафика на:
- Выберите псевдоним приложения и классического балансировщика нагрузки
- Выберите регион, в котором находится балансировщик нагрузки.
- Выберите целевой балансировщик нагрузки.
Приведенная выше запись теперь будет выглядеть так, как показано здесь:
Проверка настройки…
Чтобы проверить, все ли работает должным образом, откройте веб-браузер, вставьте DNS балансировщика нагрузки и добавьте к нему:
1) Имя хоста для цели «Регистрация»
2) Имя хоста для цели «Войти в систему»
Заключение
Поздравляем, мы наконец-то настроили рабочий сценарий для маршрутизации на основе хоста в балансировщике нагрузки приложений AWS.