如何将 Application Load Balancer 用于具有多个端口映射的 ECS 服务?

How to use Application Load Balancer for an ECS Service with multiple port mappings?

我希望能够使用 ALB (ELBv2) 将流量路由到由给定服务的任务公开的多个端口映射。

例子--

服务 A 由 1 个任务组成 运行 任务定义 B。

任务定义 B 有一个 'Container',它在内部在两个不同的端口号(端口 8000 和端口 9000,均为 TCP)上运行两个守护进程。因此,任务定义 B 有两个端口需要映射到 ALB。

我不太担心 ALB 公开的端口(它们不一定是 8000 和 9000,但如果是的话会有帮助)。

关于如何创建多个听众和目标群体来实现这一点有什么想法吗?控制台 UI 中的任何内容都不允许我这样做,而且 API 也不是很有帮助。

在与 AWS 支持人员交谈后,ECS 服务似乎适用于预计仅公开一个端口的微服务。 不支持让 ECS 服务使用 Application Load Balancer 映射两个或更多端口。

当然,可以通过配置适当的目标组等方式手动添加额外的负载均衡器,但ECS不会在服务更新或扩容时以及底层容器实例发生变化时自动更新配置。