У меня есть 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, но это обслуживает только один из моих многочисленных микросервисов. Как я могу настроить его для обслуживания всех из них?





Это именно то, для чего предназначен Балансировщик нагрузки приложений.
Вы можете создать несколько Целевые группы. Каждая целевая группа имеет:
Таким образом, вы бы создать одну целевую группу для каждого приложения вы работаете.
Затем вы можете связать инстансы Amazon EC2 с каждой целевой группой. В вашем случае, если все работает на одном экземпляре Amazon EC2, вы можете использовать связать один и тот же экземпляр со всеми целевыми группами.
Затем создайте Балансировщик нагрузки приложений (или свяжите целевые группы с существующим Application Load Balancer).
В конфигурации Application Load Balancer перейдите на вкладку Listeners и добавить правила, которые отправляют определенный путь (например, /users) определенной целевой группе.
Видеть:
Вам нужно будет создать одна целевая группа на приложение. Вы можете зарегистрировать экземпляр с несколькими целевыми группами. Затем вы используете правила для настройки того, какой путь будет использовать какую целевую группу, что означает, что данный путь будет направлен на определенный порт.
У меня точно такая же проблема. Я делаю то же самое, что предлагает @JohnRotenstein. У меня есть 2 правила слушателя и 2 целевые группы, указывающие на один и тот же экземпляр EC2. Проверки работоспособности пройдены, но, к сожалению, ALB направляет трафик только в 1 целевую группу. Что здесь может быть первопричиной? Любой?
@Кунал, да. моя проблема была решена с использованием маршрутизации на основе пути и Nginx.
У меня есть только одна целевая группа, в которой есть экземпляр EC2, на котором запущены все приложения, поэтому ALB будет направлять свой трафик в единственную целевую группу. Я хочу разделить запросы на основе пути, чтобы направить трафик на разные порты в одной целевой группе.