2 个服务如何在 AWS Fargate 上相互通信?

How 2 services can talk to each other on AWS Fargate?

我在 AWS 上设置了一个 Fargate 集群。我的集群有以下 服务 :

每个服务都在同一个 VPC 中并具有相同的安全组(任何端口、任何源、任何目标)。 VPC 与互联网隔离。

现在,我希望服务器 A 向服务器 B 发送一个 http 查询。我会假设,就像在 Docker swarm 中一样,有一个将服务名称映射到其私有 IP 的私有 DNS,它就像将查询发送到:http://server-B:4000 一样简单。但是,server-A 超时,这意味着它无法到达 server-B。

我在文档中读到我可以将 2 个容器放在同一个服务中,每个容器侦听不同的端口,这样,由于环回接口,从服务器 A,我可以查询 http://127.0.0.1:4000 server-B 会响应,反之亦然。

但是,我希望能够 独立地 扩展服务器 A 和服务器 B,所以我认为通过拥有 2 个服务器来保持每个服务器彼此独立是有意义的服务。

我读到过,为了让 2 个任务相互通信,我需要设置一个负载平衡器。来自 Docker Swarm 的世界,通过服务名称查询服务非常容易,在幕后,请求被转发到该服务中的一个容器。但它在 AWS Fargate 上似乎并不像那样工作。

问题:

感谢您的帮助,我真的迷失在做这个简单的设置中。

查找后发现是因为我在创建服务时没有启用"Service Discovery",所以没有创建私有DNS。这里有一些额外的文档,它准确地解释了这些步骤:

https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-service-discovery.html