关于 docker:如何将 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,但如果是的话会有所帮助)。

  • my-lb-dns.com:8000 -> myservice:8000
  • my-lb-dns.com:9000 -> myservice:9000

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

非常感谢!


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

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