假设我在多个 EC2 实例上运行多个进程,每个进程运行在不同的端口上。我可以将单个 AWS ELB 映射到任何实例上的这些进程中的任何一个吗?
例如,我理想的设置如下:
HTTPS 443 -> Instance 1 Process 1 Port 8081
or -> Instance 1 Process 2 Port 8082
or -> Instance 2 Process 1 Port 8081
or -> Instance 2 Process 2 Port 8082
有什么方法可以像这样配置 ELB?我试图避免在每个实例上运行负载平衡器来平衡该实例的进程。
答案1
重要更新
服务产品已经发展,因此以下信息(原始答案)仅适用于 ELB / 1.0,现在称为 ELB Classic Load Balancer:
不,ELB 无法实现这一点。
您可以在 ELB 的前端映射多个侦听器来命中后端实例上的单个端口,但不能在 ELB 的前端映射单个侦听器来命中后端实例上的多个端口。
ELB/2.0,称为应用程序负载均衡器于 2016 年底发布,做使用“目标组”支持多个实例端口。
它还允许通过路径模式匹配进行选择性请求路由,支持 HTTP 模式下的 Web 套接字和前端的 HTTP/2。
启动平衡器时,您仍然可以启动 Classic(它仍然可用,并且每个侦听器的单实例端口限制仍然适用)或者您可以启动 ALB 来获取新功能。