1

我有一个 ECS 集群,其中包含一个指定服务发现端点的 ECS 服务 (Fargate)。我还有一个云地图服务设置,其域和服务名称与为 ECS 服务输入的服务发现详细信息相匹配。最后,还有一个应用程序负载均衡器,它为 IP 目标设置了目标组,并且最初没有注册目标(请参阅下面的完整详细信息)。

当我为上述 ECS 服务启动任务时,该任务会自动注册到上述目标组的“已注册目标”中。

我的问题是 AWS 如何知道我希望 ECS 服务中的任务自动添加到我的 ALB 的目标组?我在目标组中没有看到将其连接到 ECS 服务或云地图服务的任何内容?是否有其他配置可以实现这一目标?

我想要做的是创建一个具有新目标组的新 ALB,我想将流量从这个 ALB 路由到同一个 ECS 服务,但是这不喜欢将 ECS 任务自动添加到目标的注册目标团体。这有可能实现吗?

ECS Cluster: MyCluster

ECS Service (Fargate): 
Name: MyService
Service Discovery endpoint name: namespace.service-discovery-name

Application Load Balancer: 
Name: my-alb
Listener: port 443 (SSL)
Rules: (1) if host = test.domain.com then forward to 'my-target-group'
(2)...

Target Group:
Name: my-target-group
Type: IP
Targets: (initially no registered targets specified. Eventually when a task is started for the above ECS Service a target is automatically registered here.)

Cloud Map:
Domain Name: namespace
Service Name: service-discovery-name
DNS Routing Policy: Multivalue answer routing
Record Type: A

Route 53:
Domain: namespace (Cloud Map Records)
Domain: 
   Name: mydomain.com
   Record: task.mydomain.com -> ALB configured above
4

1 回答 1

2

这实际上是在您创建它时在ECS 服务中定义和管理的,该服务将确保作为服务的一部分创建的主机将分配给您的服务的目标组。

查看文档似乎并没有替换目标组,实际上查看负载均衡器的 CloudFormation 文档似乎任何更改都会替换该服务。

因此,要将服务应用于新的负载均衡器,您需要创建一个新服务,当然可以使用相同的任务定义,但这会显着减少要做的工作量。这项新服务将使用您的新目标群体。

于 2020-08-08T13:06:45.203 回答