Registrieren von mehreren Zielgruppen mit einem Service - Amazon ECS

Registrieren von mehreren Zielgruppen mit einem Service

Ihr Amazon-ECS-Service kann den Datenverkehr von mehreren Load Balancern abwickeln und mehrere Ports mit Lastenausgleich festlegen, wenn Sie mehrere Zielgruppen in einer Servicedefinition angeben.

Sie müssen einen Service, der mehrere Zielgruppen angibt, über die Amazon ECS-API, den SDK, AWS CLI oder eine AWS CloudFormation-Vorlage erstellen. Nachdem der Service erstellt wurde, können Sie den Service und die Zielgruppen anzeigen, die in der AWS Management Console registriert sind. Sie müssen UpdateService verwenden, um die Load Balancer-Konfiguration eines vorhandenen Service zu ändern.

Mehrere Zielgruppen können in einer Servicedefinition angegeben werden, die das folgende Format verwendet. Die vollständige Syntax einer Servicedefinition finden Sie unter Servicedefinitionsvorlage.

"loadBalancers":[ { "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_1/1234567890123456", "containerName":"container_name", "containerPort":container_port }, { "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_2/6543210987654321", "containerName":"container_name", "containerPort":container_port } ]

Überlegungen zu mehreren Zielgruppen

Folgendes sollte berücksichtigt werden, wenn Sie mehrere Zielgruppen in einer Servicedefinition angeben:

  • Für Services, die einen Application Load Balancer oder einen Network Load Balancer verwenden, können Sie nicht mehr als fünf Zielgruppen an einen Service anfügen.

  • Das Festlegen mehrerer Zielgruppen in einer Servicedefinition wird nur unter folgenden Bedingungen unterstützt:

    • Der Service muss entweder einen Application Load Balancer oder Network Load Balancer verwenden.

    • Der Service muss den Bereitstellungscontroller-Typ der laufenden Aktualisierung (ECS) haben.

  • Die Angabe mehrerer Zielgruppen wird für Services mit Aufgaben unterstützt, die die Starttypen Fargate und EC2 verwenden.

  • Wenn Sie einen Service erstellen, der mehrere Zielgruppen angibt, muss die serviceverknüpfte Amazon ECS-Rolle erstellt werden. Die Rolle wird erstellt, indem der Parameter role in API-Anfragen oder die Eigenschaft Role in AWS CloudFormation weggelassen wird. Weitere Informationen finden Sie unter Serviceverknüpfte Rolle für Amazon ECS.

Beispiel für Service-Definitionen

Nachfolgend finden Sie einige Beispiel-Anwendungsfälle für das Festlegen mehrerer Zielgruppen in einer Servicedefinition. Die vollständige Syntax einer Servicedefinition finden Sie unter Servicedefinitionsvorlage.

Beispiel: separate Load Balancer für internen und externen Datenverkehr

Im folgenden Anwendungsfall verwendet ein Service zwei separate Load Balancer, einen für internen Datenverkehr und einen zweiten für Datenverkehr mit dem Internet für denselben Container und Port.

"loadBalancers":[ //Internal ELB { "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_1/1234567890123456", "containerName":"nginx", "containerPort":8080 }, //Internet-facing ELB { "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_2/6543210987654321", "containerName":"nginx", "containerPort":8080 } ]

Beispiel: Bereitstellen mehrerer Ports aus demselben Container

Im folgenden Anwendungsfall verwendet ein Service einen Load Balancer, stellt jedoch mehrere Ports vom selben Container bereit. Beispiel: Ein Jenkins-Container stellt Port 8080 für die Jenkins Web-Schnittstelle und Port 50000 für die API bereit.

"loadBalancers":[ { "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_1/1234567890123456", "containerName":"jenkins", "containerPort":8080 }, { "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_2/6543210987654321", "containerName":"jenkins", "containerPort":50000 } ]

Beispiel: Bereitstellen von Ports aus mehreren Containern

Im folgenden Anwendungsfall verwendet ein Service einen Load Balancer und zwei Zielgruppen zur Bereitstellung aus separaten Container-Ports.

"loadBalancers":[ { "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_1/1234567890123456", "containerName":"webserver", "containerPort":80 }, { "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_2/6543210987654321", "containerName":"database", "containerPort":3306 } ]