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

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

"/users" -> app on 8080 ; "/get/info" -> 8001 etc

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
10 184
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это именно то, для чего предназначен Балансировщик нагрузки приложений.

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

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

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

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

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

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

Видеть:

У меня есть только одна целевая группа, в которой есть экземпляр EC2, на котором запущены все приложения, поэтому ALB будет направлять свой трафик в единственную целевую группу. Я хочу разделить запросы на основе пути, чтобы направить трафик на разные порты в одной целевой группе.

Nilamber Singh 04.07.2019 20:09

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

John Rotenstein 04.07.2019 23:29

У меня точно такая же проблема. Я делаю то же самое, что предлагает @JohnRotenstein. У меня есть 2 правила слушателя и 2 целевые группы, указывающие на один и тот же экземпляр EC2. Проверки работоспособности пройдены, но, к сожалению, ALB направляет трафик только в 1 целевую группу. Что здесь может быть первопричиной? Любой?

Babar Baig 27.11.2019 15:19

@Кунал, да. моя проблема была решена с использованием маршрутизации на основе пути и Nginx.

Babar Baig 22.02.2020 06:37

Другие вопросы по теме