AWS ECS 上的 Fargate 服务之间如何通信?

n00*_*Dev 5 amazon-ec2 amazon-web-services amazon-ecs docker

我有六个 docker 容器,全部在各自的任务(6 个任务)中运行,每个任务在 ECS 上的单独 Fargate 服务(6 个服务)中运行。我需要这些服务能够相互通信,其中一些服务需要可供公开访问。我不断看到有关使用服务发现或分配给每个服务的负载均衡器的信息。我想尝试避免设置 6 个负载均衡器,因为它更昂贵且维护起来更费力。

这就是我当前设置服务发现的方式:

  • 所有任务均设置为使用 awsvpc
  • 所有服务均已设置为使用服务发现(在服务创建页面中设置)
  • 所有服务都共享相同的命名空间,并且都使用 A DNS 记录

当我尝试<service_discovery_name>.<namespace>从其中一个 docker 容器内执行 ping 操作时,我没有得到响应。但是,在 ping 私有 IP 地址时,我可以成功 ping 通另一个容器。

我可以通过服务发现实现我需要做的事情吗?如果是这样,容器之间到底如何通信?

多谢多谢!如果我没有提供足够的信息,请告诉我。

编辑:重新创建服务并使用新的服务发现来设置它们似乎可以解决该问题。不知道为什么旧的发现不起作用。

Mar*_*cin 2

根据评论,问题的具体原因尚未确定。不过,通过在 ECS 中创建新的 Service Discovery解决了该问题。