AWS Load Balancer для маршрутизации трафика в одну целевую группу с несколькими микросервисами - PullRequest
0 голосов
/ 03 июля 2019

У меня есть ALB, который прослушивает HTTP-трафик на порту 80, я добавил целевую группу в прослушиватели ALB, которая состоит из одной машины EC2. Мой экземпляр EC2 запускает несколько микросервисов на разных портах, например. App1 работает на 8080, App2 на 8001, App3 на 8004 и так далее ... EC2 снова прослушивает порт 80 для любых входящих запросов через ALB. Я хочу сделать маршрутизацию на основе пути для входящего трафика в EC2 на разные порты приложения на основе пути, например,

"/ users" -> app на 8080; "/ get / info" -> 8001 и т. д.

. Есть ли способ добиться этого? Или лучший способ сделать то, что я пытаюсь? Прямо сейчас я сделал маршрутизацию, основанную на ip-таблицах, для маршрутизации трафика от порта 80 EC2 к одному порту, т.е. 8080, но это обслуживает только 1 из многих моих микросервисов. Как я могу настроить его для обслуживания всех из них?

1 Ответ

2 голосов
/ 04 июля 2019

Это именно то, для чего предназначен Application Load Balancer .

Вы можете создать несколько целевых групп . Каждая целевая группа имеет:

  • Имя
  • Цель (например, HTTP на порт 8080)
  • Проверка работоспособности конфигурации для определения работоспособности цели (ей)

Таким образом, вы создадите одну Целевую группу для каждого приложения , которое вы используете.

Затем вы можете связать экземпляры Amazon EC2 с каждой целевой группой. В вашем случае, если все работает на одном экземпляре Amazon EC2, вы можете связать один и тот же экземпляр со всеми целевыми группами .

Затем создайте Application Load Balancer (или сопоставьте целевые группы с существующим Application Load Balancer).

В конфигурации Application Load Balancer перейдите на вкладку Listeners и добавьте правила, которые отправляют определенный путь (например, /users) в конкретную целевую группу.

См:

...