如何通过主机名查找同一 ECS 集群上的另一个容器?

Phi*_*ing 5 networking hostname amazon-web-services

这个问题感觉太明显了,以至于没有答案,但我所有的谷歌搜索都没有得到任何结果。

在 docker (docker-compose) 中,您可以轻松地通过主机名获取另一个容器的 IP。如果您已经明确创建并分配了一个网络,那么这就是开箱即用的。因此,一个容器只需查找主机名“bar”就foo可以连接到另一个容器。bar

我正在尝试在 AWS ECS 中实现类似的目标,以允许一项服务中的容器与另一项服务中的容器进行通信。ECS集群有多个主机,所以我认为我不能只指定bridge类型网络。

请注意,我需要的协议不是 HTTP,因此应用程序负载均衡器已经不可能了。

是否有推荐的方法让一个容器通过主机名发现同一集群上的另一个容器?

Hen*_*gel 1

Amazon ECS 服务发现集成在 ECS 中:

这使得 ECS 服务可以在 Amazon Route 53 中使用可预测且友好的 DNS 名称自动注册自身。当您的服务根据负载或容器运行状况扩大或缩小时,Route 53 托管区域会保持最新状态,允许其他服务根据每个服务的状态查找需要建立连接的位置。

链接的博客文章包含深入的解释和示例代码。