Поиск по сайту:

Как настроить маршрутизацию на основе хоста в балансировщике нагрузки приложений AWS


На этой странице

  1. Обзор этого руководства
  2. Настройка экземпляров EC2
  3. Настройка целевой группы
  4. Регистрация экземпляров EC2 в целевых группах
  5. Создание балансировщика нагрузки приложений
  6. Добавление правил переадресации на основе хоста
  7. Регистрация домена в Route 53
  8. Проверка настроек…
  9. Заключение

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

  1. Application Load Balancer: автоматически распределяет входящий трафик приложений между двумя или более экземплярами EC2. Мы можем определить правила маршрутизации в соответствии с содержанием запроса (маршрутизация на основе содержимого). Это балансировщик нагрузки уровня 7.
  2. Балансировщики сетевой нагрузки: NLB использует данные IP-протокола (TCP и UDP) для маршрутизации подключений к ресурсам AWS, таким как EC2, микросервисы и контейнеры. Это балансировщик нагрузки уровня 4.
  3. Балансировщик нагрузки шлюза: используется со сторонними виртуальными устройствами, такими как брандмауэры NextGen (NGFW), IPS, IDS и т. д., работающие на экземплярах EC2. Он работает путем размещения единого шлюза для трафика от нескольких виртуальных устройств, и эти несколько виртуальных устройств можно увеличивать или уменьшать в соответствии с требованиями. Это хорошо для стабильности сети. Это балансировщик нагрузки уровня 3 (шлюз) и уровня 4 (балансировка нагрузки).
  4. Классический балансировщик нагрузки: CLB — это устаревший балансировщик нагрузки AWS, который используется для балансировки нагрузки между несколькими экземплярами EC2. Рекомендуется для приложений, разработанных в сети EC2-Classic. Это балансировщик нагрузки уровня 4/7. AWS рекомендует избегать этого балансировщика нагрузки.

Обзор этого руководства


В этом руководстве мы настроим маршрутизацию на основе пути для Application Load Balancer на AWS. Мы собираемся использовать учетную запись пользователя IAM с ограниченными привилегиями, необходимыми для этой задачи. У нас есть следующие ресурсы для этого эксперимента:

  1. Две зоны доступности, каждая из которых содержит как минимум один экземпляр EC2.
  2. VPC имеет как минимум одну общедоступную подсеть в каждой из двух указанных выше зон доступности. Эта общедоступная подсеть будет использоваться для настройки балансировщика нагрузки.
  3. Установите веб-сервер на каждом экземпляре и разрешите доступ к порту 80 на этих экземплярах с помощью группы безопасности.

Конфигурация экземпляров EC2

Для этого руководства мы настроили два экземпляра Amazon Linux EC2 с установленным на них apache Httpd. На одном сервере у нас есть каталог «signin» и файл index.html внутри него с содержимым: \Добро пожаловать, пользователь? Войдите, чтобы продолжить...

На другом сервере у нас есть каталог signup и файл index.html внутри него с содержимым: \Новый пользователь? Сначала зарегистрируйтесь...

Оба каталога «signin» и «signup» находятся внутри корневого каталога (/var/www/html).

Настройка целевой группы

Шаг 1. Для маршрутизации запроса мы сначала создадим две целевые группы, по одной для каждого сервера. Откройте консоль EC2 и на левой боковой панели найдите и выберите «Целевые группы» (она находится в разделе «Балансировка нагрузки»):

Шаг 2. На новой странице нажмите кнопку «Создать целевую группу»:

  1. Выберите тип цели. Выберите здесь «Экземпляры».
  2. Имя целевой группы: дайте подходящее имя целевой группе (в нашем случае «Войти в систему»).
  3. Протокол: HTTP
  4. Порт: 80
  5. VPC: выберите здесь имя VPC.
  6. Версия протокола: оставить версию по умолчанию (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 из консоли управления и нажмите «Создать размещенную зону»:

Домен: субдомен, соответствующий вашей зоне хостинга.

Тип записи: выберите тип здесь.

Ценность/направление трафика на:

  1. Выберите псевдоним приложения и классического балансировщика нагрузки
  2. Выберите регион, в котором находится балансировщик нагрузки.
  3. Выберите целевой балансировщик нагрузки.

Приведенная выше запись теперь будет выглядеть так, как показано здесь:

Проверка настройки…

Чтобы проверить, все ли работает должным образом, откройте веб-браузер, вставьте DNS балансировщика нагрузки и добавьте к нему:

1) Имя хоста для цели «Регистрация»

2) Имя хоста для цели «Войти в систему»

Заключение

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