一台 EC2 主机中的两个 ECS 任务连接

Two ECS tasks connectivity in one EC2 Host

我有 2 个 ECS 服务 运行 EC2 启动类型和桥接网络模式。每个服务都有 1 个任务,并且两个任务都在同一 EC2 容器主机上 运行。

在同一个 ECS 主机上,第一个任务中的 API 容器正在尝试通过主机名和端口号(例如:http://abc-def:5000)与第二个任务中的数据库容器进行通信。实现这一目标的方法是什么?

您的选择是:

  1. 将所有内容放在一个任务定义中。然后你可以使用 link 属性使容器 A 能够像这样 B:port 与容器 B 通信。请注意,link 不支持循环关系,这意味着如果 A 可以与 B 交谈,B 也不能那样做。

  2. 切换到网络模式host。这样你就可以和localhost.

    交流了
  3. 使用 Consul 或 AWS ECS 服务发现等工具进行适当的服务发现。我对后者没有经验。参见 here

  4. 将您的任务放在 ALB 之后,并使用此负载均衡器在任务之间进行通信。