Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Application Load Balancer Balancer-Ressourcen für Bereitstellungen blue/green
Um Application Load Balancers mit Amazon blue/green ECS-Bereitstellungen zu verwenden, müssen Sie bestimmte Ressourcen konfigurieren, die das Routing des Datenverkehrs zwischen den blauen und grünen Service-Revisionen ermöglichen.
Einschränkungen
Die folgenden Einschränkungen gelten derzeit für blue/green Bereitstellungen mit Application Load Balancers:
-
Blaue/grüne Bereitstellungen werden nicht unterstützt, wenn Application Load Balancer Balancer-Listener verwendet werden, für die mehrere Aktionstypen mit Aktionen ohne Weiterleitung konfiguriert sind. Wenn Ihre Application Load Balancer Balancer-Listener-Regeln eine Mischung aus Weiterleitungs- und Nichtweiterleitungsaktionen enthalten (z. B. Umleitungs-, Fixed-Response- oder Authentifizierungsaktionen), schlägt die Bereitstellung fehl.
Zielgruppen
Für blue/green Bereitstellungen mit Elastic Load Balancing müssen Sie zwei Zielgruppen erstellen:
-
Eine primäre Zielgruppe für die Blue Service Revision (aktueller Produktionsverkehr)
-
Eine alternative Zielgruppe für die grüne Service-Revision (neue Version)
Beide Zielgruppen sollten mit den folgenden Einstellungen konfiguriert werden:
-
Zieltyp:
IP
(für Fargate oder EC2 mitawsvpc
Netzwerkmodus) -
Protokoll:
HTTP
(oder das Protokoll, das Ihre Anwendung verwendet) -
Port: Der Port, auf dem Ihre Anwendung lauscht (normalerweise
80
für HTTP) -
VPC: Dieselbe VPC wie Ihre Amazon ECS-Aufgaben
-
Einstellungen Health die Integritätsprüfung: So konfiguriert, dass sie den Zustand Ihrer Anwendung ordnungsgemäß überprüfen
Während einer blue/green Bereitstellung registriert Amazon ECS je nach Bereitstellungsphase automatisch Aufgaben bei der entsprechenden Zielgruppe.
Beispiel Zielgruppen für einen Application Load Balancer erstellen
Mit den folgenden CLI-Befehlen werden zwei Zielgruppen für die Verwendung mit einem Application Load Balancer in einer blue/green Bereitstellung erstellt:
aws elbv2 create-target-group \ --name
blue-target-group
\ --protocol HTTP \ --port 80 \ --vpc-idvpc-abcd1234
\ --target-type ip \ --health-check-path / \ --health-check-protocol HTTP \ --health-check-interval-seconds 30 \ --health-check-timeout-seconds 5 \ --healthy-threshold-count 2 \ --unhealthy-threshold-count 2 aws elbv2 create-target-group \ --namegreen-target-group
\ --protocol HTTP \ --port 80 \ --vpc-idvpc-abcd1234
\ --target-type ip \ --health-check-path / \ --health-check-protocol HTTP \ --health-check-interval-seconds 30 \ --health-check-timeout-seconds 5 \ --healthy-threshold-count 2 \ --unhealthy-threshold-count 2
Application Load Balancer
Sie müssen einen Application Load Balancer mit der folgenden Konfiguration erstellen:
-
Schema: Mit dem Internet verbunden oder intern, je nach Ihren Anforderungen
-
Typ der IP-Adresse: IPv4
-
VPC: Dieselbe VPC wie Ihre Amazon ECS-Aufgaben
-
Subnetze: Mindestens zwei Subnetze in unterschiedlichen Availability Zones
-
Sicherheitsgruppen: Eine Sicherheitsgruppe, die den Datenverkehr auf den Listener-Ports zulässt
Die dem Application Load Balancer zugeordnete Sicherheitsgruppe muss über eine ausgehende Regel verfügen, die den Datenverkehr zu der Sicherheitsgruppe zulässt, die Ihren Amazon ECS-Aufgaben zugeordnet ist.
Beispiel Erstellen eines Application Load Balancers
Der folgende CLI-Befehl erstellt einen Application Load Balancer für die Verwendung in einer blauen/grünen Bereitstellung:
aws elbv2 create-load-balancer \ --name
my-application-load-balancer
\ --type application \ --security-groupssg-abcd1234
\ --subnetssubnet-12345678
subnet-87654321
Listener und Regeln
Für blue/green Bereitstellungen müssen Sie Listener auf Ihrem Application Load Balancer konfigurieren:
-
Produktions-Listener: Verwaltet den Produktionsdatenverkehr (normalerweise auf Port 80 oder 443)
-
Leitet den Verkehr zunächst an die primäre Zielgruppe weiter (Blue Service Revision)
-
Leitet den Verkehr nach der Bereitstellung an die alternative Zielgruppe weiter (grüne Service-Revision)
-
-
Test-Listener (optional): Verarbeitet den Testdatenverkehr, um die grüne Service-Version zu validieren, bevor der Produktionsdatenverkehr verlagert wird
-
Kann an einem anderen Port konfiguriert werden (z. B. 8080 oder 8443)
-
Leitet den Traffic während des Tests an die alternative Zielgruppe weiter (Green Service Revision)
-
Während einer blue/green Bereitstellung aktualisiert Amazon ECS automatisch die Listener-Regeln, um den Datenverkehr je nach Bereitstellungsphase an die entsprechende Zielgruppe weiterzuleiten.
Beispiel Einen Produktions-Listener erstellen
Der folgende CLI-Befehl erstellt einen Produktions-Listener auf Port 80, der den Datenverkehr an die primäre (blaue) Zielgruppe weiterleitet:
aws elbv2 create-listener \ --load-balancer-arn
arn:aws:elasticloadbalancing:region:123456789012:loadbalancer/app/my-application-load-balancer/abcdef123456
\ --protocol HTTP \ --port 80 \ --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region:123456789012:targetgroup/blue-target-group/abcdef123456
Beispiel Einen Test-Listener erstellen
Der folgende CLI-Befehl erstellt einen Test-Listener auf Port 8080, der den Datenverkehr an die alternative (grüne) Zielgruppe weiterleitet:
aws elbv2 create-listener \ --load-balancer-arn
arn:aws:elasticloadbalancing:region:123456789012:loadbalancer/app/my-application-load-balancer/abcdef123456
\ --protocol HTTP \ --port 8080 \ --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region:123456789012:targetgroup/green-target-group/ghijkl789012
Beispiel Erstellen einer Listener-Regel für pfadbasiertes Routing
Der folgende CLI-Befehl erstellt eine Regel, die den Traffic für einen bestimmten Pfad zum Testen an die grüne Zielgruppe weiterleitet:
aws elbv2 create-rule \ --listener-arn
arn:aws:elasticloadbalancing:region:123456789012:listener/app/my-application-load-balancer/abcdef123456/ghijkl789012
\ --priority 10 \ --conditions Field=path-pattern,Values='/test/*' \ --actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region:123456789012:targetgroup/green-target-group/ghijkl789012
Beispiel Erstellen einer Listener-Regel für Header-basiertes Routing
Der folgende CLI-Befehl erstellt eine Regel, die Traffic mit einem bestimmten Header zum Testen an die grüne Zielgruppe weiterleitet:
aws elbv2 create-rule \ --listener-arn
arn:aws:elasticloadbalancing:region:123456789012:listener/app/my-application-load-balancer/abcdef123456/ghijkl789012
\ --priority 20 \ --conditions Field=http-header,HttpHeaderConfig='{Name=X-Environment,Values=[test]}' \ --actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region:123456789012:targetgroup/green-target-group/ghijkl789012
Konfiguration des Dienstes
Sie müssen über die erforderlichen Berechtigungen verfügen, um Amazon ECS die Verwaltung von Load Balancer-Ressourcen in Ihren Clustern in Ihrem Namen zu gestatten. Weitere Informationen finden Sie unter IAM-Rolle der Amazon ECS-Infrastruktur für Load Balancer.
Wenn Sie einen Amazon ECS-Service für blue/green Bereitstellungen mit Elastic Load Balancing erstellen oder aktualisieren, müssen Sie die folgende Konfiguration angeben.
Ersetzen Sie die user-input
durch Ihre Werte.
Die wichtigsten Komponenten dieser Konfiguration sind:
-
targetGroupArn
: Der ARN der primären Zielgruppe (blaue Service-Revision). -
alternateTargetGroupArn
: Der ARN der alternativen Zielgruppe (Green Service Revision). -
productionListenerRule
: Der ARN der Listener-Regel für Produktionsdatenverkehr. -
roleArn
: Der ARN der Rolle, die es Amazon ECS ermöglicht, Elastic Load Balancing Balancing-Ressourcen zu verwalten. -
strategy
: Auf einstellen,BLUE_GREEN
um blaue/grüne Bereitstellungen zu aktivieren. -
bakeTimeInMinutes
: Die Dauer, in der sowohl blaue als auch grüne Service-Revisionen gleichzeitig ausgeführt werden, nachdem sich der Produktionsdatenverkehr verlagert hat. -
TestListenerRule
: Der ARN der Listener-Regel für Testdatenverkehr. Dieser Parameter ist optional.
{ "loadBalancers": [ { "targetGroupArn": "
arn:aws:elasticloadbalancing:region:123456789012:targetgroup/primary-target-group/abcdef123456
", "containerName": "container-name", "containerPort": 80, "advancedConfiguration": { "alternateTargetGroupArn": "arn:aws:elasticloadbalancing:region:account-id:targetgroup/alternate-target-group/ghijkl789012
", "productionListenerRule": "arn:aws:elasticloadbalancing:region:account-id:listener-rule/app/load-balancer-name/abcdef123456/listener/ghijkl789012/rule/mnopqr345678
", "roleArn": "arn:aws:iam::123456789012:role/ecs-elb-role
" } } ], "deploymentConfiguration": { "strategy": "BLUE_GREEN", "maximumPercent": 200, "minimumHealthyPercent": 100, "bakeTimeInMinutes": 5 } }
Verkehrsfluss während der Bereitstellung
Während einer blue/green Bereitstellung mit Elastic Load Balancing fließt der Datenverkehr wie folgt durch das System:
-
Ausgangszustand: Der gesamte Produktionsdatenverkehr wird an die primäre Zielgruppe weitergeleitet (blaue Service-Revision).
-
Bereitstellung von Green Service Revision: Amazon ECS stellt die neuen Aufgaben bereit und registriert sie bei der alternativen Zielgruppe.
-
Testdatenverkehr: Wenn ein Test-Listener konfiguriert ist, wird der Testdatenverkehr an die alternative Zielgruppe weitergeleitet, um die Green Service-Revision zu validieren.
-
Verlagerung des Produktionsverkehrs: Amazon ECS aktualisiert die Produktionslistener-Regel, um den Datenverkehr an die alternative Zielgruppe weiterzuleiten (Green Service Revision).
-
Backzeit: Die Dauer, in der sowohl blaue als auch grüne Service-Revisionen gleichzeitig ausgeführt werden, nachdem sich der Produktionsdatenverkehr verlagert hat.
-
Abschluss: Nach einer erfolgreichen Bereitstellung wird die Blue-Service-Revision beendet.
Wenn während der Bereitstellung Probleme festgestellt werden, kann Amazon ECS automatisch ein Rollback durchführen, indem der Datenverkehr an die primäre Zielgruppe zurückgeleitet wird (blaue Service-Revision).