Я использую AWS и пытаюсь переназначить огромное приложение на небольшие части - в итоге: я преобразовываю монолитное приложение в приложение на основе микросервисов.
Итак, я хочу использовать общедоступный балансировщик нагрузки, где я могу направить некоторые пути в другие среды.
Например:
domain.com/service1 в другое приложение с балансировкой нагрузки в Elastic Beanstalk и
domain.com/service2 в другое приложение с балансировкой нагрузки в Elastic Beanstalk.
Мне удалось подключить Application Load Balancer к другому экземпляру EC2. Но я безуспешно пытался подключить его к другому Load Balancer, созданному Elastic Beanstalk.
Есть ли у кого-нибудь идеи, как это сделать?
Вы не найдете поддержки этого изначально с набором функций ELB и Elastic Beanstalk.
Я бы предложил пересылку на основе пути с использованием HAProxy для отправки трафика в ваши приложения Elastic Beanstalk. Вы захотите запустить это на паре экземпляров EC2, находящихся за простым классическим ELB, выполняющим проверку работоспособности самого HAProxy, ради обеспечения высокой доступности.
Вот общий пример с HAProxy:
# match incoming request based on path in url
acl service1 path_beg /service1
acl service2 path_beg /service2
# send matched request to a specific backend
use_backend service1 if service1
use_backend service2 if service2
# define the target backends (Elastic Beanstalk LB DNS, likely)
backend service1 :80
option httpchk /haproxy_health_check
server service-1 service1.aws.mybeanstalklb.com:80
backend service2 :80
option httpchk /haproxy_health_check
server service-2 service2.aws.mybeanstalklb.com:80
Если вам не интересно запускать это самостоятельно на EC2, вы можете изучить внедрение этой конфигурации в образ докера HAProxy и запуск контейнера на EC2 Контейнерный сервис.