Amazon-Web-Services

將面向公眾的應用程序負載均衡器連接到私有負載均衡器

  • July 1, 2017

我正在使用 AWS 並試圖將一個巨大的應用程序重新映射到小部分 - 總之:我正在將一個單一的應用程序轉換為一個基於微服務的應用程序。

所以我想使用一個面向公眾的負載均衡器,在那裡我可以將一些路徑路由到其他環境。

例如:

domain.com/service1到 Elastic Beanstalk 中的另一個負載平衡應用程序和

domain.com/service2也可以連接到 Elastic Beanstalk 中的不同負載平衡應用程序。

我能夠將 Application Load Balancer 連接到另一個 EC2 實例。但是我嘗試將其連接到另一個由 Elastic Beanstalk 創建的負載均衡器,但沒有成功。

有沒有人對如何做到這一點有一些想法?

您不會通過 ELB 和 Elastic Beanstalk 的功能集找到對此的本機支持。

我建議使用 HAProxy 進行基於路徑的轉發,將流量發送到您的 Elastic Beanstalk 應用程序。為了高可用性,您需要在一對位於簡單經典 ELB 後面的 EC2 實例上執行此程序,該實例對 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 docker 映像並在EC2 Container Service上執行容器。

引用自:https://serverfault.com/questions/858838