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

时间:2020-06-02 11:04:04

标签: amazon-web-services docker amazon-ec2 amazon-ecs

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

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

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

当我尝试从一个Docker容器中对<service_discovery_name>.<namespace>进行ping操作时,没有得到响应。但是,当ping专用IP地址时,我可以成功ping另一个容器。

我可以实现服务发现所需的功能吗? 如果是这样,容器之间如何精确通信?

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

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

1 个答案:

答案 0 :(得分:1)

根据评论,问题的确切原因是不确定。但是,通过在ECS中创建新服务发现解决了该问题。

相关问题