具有 Route 53 服务发现的 ECS

ECS with Route 53 Service discovery

根据AWS documentation

You can configure Service Discovery for an ECS Service that is behind a Load Balancer, but Service Discovery traffic is always routed to the Task and not the Load Balancer.

如果是这种情况,负载平衡是如何发生的?

此外,如果没有负载均衡器,服务发现是如何工作的,流量是否会路由到随机容器实例?

TL;DR 是的,流量将被发送到随机实例。

使用 ECS 服务发现时,您有两种发现服务的选项。一种是通过 Route 53 DNS,在 ECS 服务发现的情况下利用 Multivalue Routing Policy,以便您的客户端应用程序接收最多八个随机选择的健康端点。

另一种选择是使用 Cloud Map DiscoverInstances API,其中 returns 给定服务名称最多 100 个端点,随机选择。