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

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

这个问题似乎太明显了,似乎还没有答案,但我所有的谷歌搜索都没有结果。

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

我正在尝试在 AWS ECS 中实现类似功能,以允许一个服务的容器与另一个服务的容器通信。ECS 集群有多个主机,因此我无法思考我只能指定bridge网络类型。

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

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

答案1

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

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

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

相关内容