【问题标题】:How to use Application Load Balancer for an ECS Service with multiple port mappings?如何将 Application Load Balancer 用于具有多个端口映射的 ECS 服务?
【发布时间】:2017-02-20 18:59:47
【问题描述】:

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

例子--

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

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

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

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

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

非常感谢!

【问题讨论】:

  • 嗨@ultimoo,我正在为同样的情况而苦苦挣扎,你设法解决了吗?
  • @shmish111 不,从今天开始,您不能让 ecs 服务通过负载均衡器公开多个端口。
  • 嗨@ultimoo,我也有类似的场景——尽管不涉及应用程序负载平衡——使用Apache Zookeeper。每个 Zookeeper 实例需要三个端口用于三个不同的目的(端口 2181、2888、3888)。正是通过这些端口,这些 Zookeeper 实例的集群(通常有 3 到 5 个)相互通信。但是,如果正如您所说(并且正如我在 AWS GUI 上看到的),ECS 容器无法将更多该端口映射到主机,我怀疑这也行不通。我在这里的结论是否正确?
  • 是的,你是对的。

标签: amazon-web-services docker amazon-elb amazon-ecs


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2020-01-17
    • 2018-03-11
    • 1970-01-01
    • 1970-01-01
    • 2020-08-03
    • 1970-01-01
    • 2020-12-31
    • 2017-01-11
    • 2020-08-08
    相关资源
    最近更新 更多