将 AWS ECS 服务发现与 Application Load Balancer 结合使用

Mat*_*zer 3 service-discovery amazon-web-services amazon-ecs amazon-elb aws-fargate

在 ECS 集群中创建 Fargate 服务时,我使用应用程序负载均衡器,并且还使用服务发现,因此我的服务有一个端点。我的问题是:我应该将请求发送到哪里,是发送到服务发现提供的端点还是发送到负载均衡器?

另外,服务发现如何决定应将请求发送到哪个任务?

我搜索了 AWS 文档,但找不到这个问题的直接答案。

Adi*_*iii 5

服务发现用于网络级通信。用于客户端-服务器或换句话说通过互联网通信的负载平衡器。

因此,如果您想从 VPC 外部发送请求,那么您将使用负载均衡器。

或者

如果您想在 VPC 内发送请求,则可以使用服务发现。

服务发现如何决定应将请求发送到哪个任务?

在此输入图像描述

因此 Route53 拥有针对每个 Fargate 服务的 IP。

要了解这两个服务如何协同工作,请看一下此图

在此输入图像描述

因此,对于内部通信,最好使用服务发现来节省时间,因为呼叫位于同一网络上。

为了更好地实现客户端到服务器的通信,使用负载均衡器。

亚马逊 ECS 服务发现

  • 如果我让微服务 A 向同一 VPC 内的微服务 B(运行同一任务的多个副本)发送请求,我是否需要为微服务 B 使用负载均衡器?或者*服务发现*将处理来自 vpc 内的传入请求的负载平衡? (2认同)