两个不同 ECS 集群中的两个容器之间的链接

XZe*_*Zen 5 amazon-web-services amazon-ecs

我正在寻找从 ECS 集群“B”中运行的另一个容器访问 ECS 集群“A”中容器中运行的服务的最佳方法。我不想公开任何端口。

目前,我找到了一种让它在同一个 VPC 中工作的方法 - 通过将集群“B”实例的安全组添加到集群“A”安全组的入站规则,然后在运行的容器中可以使用来自集群“A”的服务在“B”中通过“私有IP地址”。

但这需要添加此安全规则(这不方便)并且不适用于不同的区域。也许有更好的解决方案可以涵盖这两种情况 - 相同的 VPC 和区域以及不同的 VPC 和区域?

tra*_*nag 2

针对您的问题最灵活的解决方案是依赖某种服务发现。AWS 原生将使用 Route 53 Service Registry 或 AWS Cloud Map。后一种是较新的,也是文档中推荐的一种。查看这两个链接:

您可以选择像 Consul 这样的开源解决方案。

如果您只需要链接两个单独的容器,那么所有这些都可能是多余的。在这种情况下,您可以创建一个小脚本,将其部署为 Lambda,用于查询 AWS API 并检索目标信息。


编辑:由于您想在同一服务上公开多个端口,您还可以使用负载均衡器并为您的服务声明多个目标组。这样您就可以通过负载均衡器在容器之间进行通信。请注意,这可能会导致成本增加,因为流量会经过 lb。

这是讨论这种方法的答案:/sf/answers/4044464091/