Как происходит автоматическая регистрация целей в целевых группах EC2 для задач ECS?

У меня есть кластер ECS со службой ECS (Fargate), которая указывает конечную точку обнаружения службы. У меня также есть настройка Cloud Map Service с доменом и именем службы, которые соответствуют деталям обнаружения службы, введенным для службы ECS. Наконец, есть балансировщик нагрузки приложений с настройкой целевой группы для IP-целей и изначально не имеет зарегистрированных целей (см. Полную информацию ниже).

Когда я запускаю задачу для указанной выше службы ECS, задача автоматически регистрируется в «Зарегистрированных целях» для целевой группы, описанной выше.

У меня вопрос: как AWS узнает, что я хочу, чтобы задачи из службы ECS автоматически добавлялись в мою целевую группу ALB? Я не вижу в целевой группе ничего, что связывает ее с сервисом ECS или с сервисом Cloud Map? Есть ли какая-то другая конфигурация, позволяющая добиться этого?

Что я пытаюсь сделать, так это создать новый 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

person richflow    schedule 08.08.2020    source источник


Ответы (1)


Фактически это определяется и управляется в службе ECS, когда вы создайте его, эта служба гарантирует, что хосты, созданные как часть службы, будут назначены целевой группе вашей службы.

Глядя на документацию, похоже, что нет возможности заменить целевую группу, на самом деле глядя на Документация CloudFormation для балансировщиков нагрузки похоже, что любое изменение заменит службу.

Следовательно, чтобы применить службу к новому балансировщику нагрузки, вам потребуется создать новую службу, вы, конечно, можете использовать то же определение задачи, хотя это значительно сокращает объем работы. Вместо этого эта новая служба будет использовать вашу новую целевую группу.

person Chris Williams    schedule 08.08.2020
comment
Ах я вижу. При создании службы ECS вы также настраиваете балансировщик нагрузки и целевую группу. Спасибо, теперь это проясняет! - person richflow; 08.08.2020
comment
Нет проблем, рад, что смог помочь :) - person Chris Williams; 08.08.2020
comment
@ChrisWilliams Я не вижу ничего в документации о назначении целевой группы. docs.aws.amazEC/Amazon/Amazon В документации просто сказано создать службу через aws ecs create-service --cluster fargate-cluster --service-name fargate-service --task-definition sample-fargate:1 --desired-count 1 --launch-type "FARGATE" --network-configuration "awsvpcConfiguration={subnets=[subnet-abcd1234],securityGroups=[sg-abcd1234]}" - person AlxVallejo; 01.06.2021