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.
Network Load Balancer Balancer-Ressourcen für Amazon ECS Blue/Green-Bereitstellungen
Um einen Network Load Balancer 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. In diesem Abschnitt werden die erforderlichen Komponenten und ihre Konfiguration erläutert.
Wenn Ihre Konfiguration einen Network Load Balancer beinhaltet, fügt Amazon ECS den folgenden Lebenszyklusphasen eine Verzögerung von 10 Minuten hinzu:
-
PRE_SCALE_UP
-
TRAFFIC SHIFT TESTEN
-
VERKEHRSVERLAGERUNG IN DER PRODUKTION
Diese Verzögerung ist auf Timing-Probleme des Network Load Balancer zurückzuführen, die zu einer Diskrepanz zwischen den konfigurierten Verkehrsgewichten und dem tatsächlichen Verkehrsrouting auf der Datenebene führen können.
Zielgruppen
Für blue/green Bereitstellungen mit einem Network Load Balancer 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 Service-Revision)
Beide Zielgruppen sollten mit den folgenden Einstellungen konfiguriert werden:
-
Zieltyp:
ip
(für Fargate oder EC2 mitawsvpc
Netzwerkmodus) -
Protokoll:
TCP
(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
Für TCP-Zustandsprüfungen stellt der Network Load Balancer eine TCP-Verbindung mit dem Ziel her. Wenn die Verbindung erfolgreich ist, gilt das Ziel als fehlerfrei.
Für HTTP/HTTPS Zustandsprüfungen sendet der Network Load Balancer eine HTTP/HTTPS Anfrage an das Ziel und verifiziert die Antwort.
Während einer blue/green Bereitstellung registriert Amazon ECS je nach Bereitstellungsphase automatisch Aufgaben bei der entsprechenden Zielgruppe.
Beispiel Zielgruppen für einen Network Load Balancer erstellen
Mit den folgenden AWS CLI-Befehlen werden zwei Zielgruppen für die Verwendung mit einem Network Load Balancer in einer blue/green Bereitstellung erstellt:
aws elbv2 create-target-group \ --name
blue-target-group
\ --protocol TCP \ --port 80 \ --vpc-idvpc-abcd1234
\ --target-type ip \ --health-check-protocol TCP aws elbv2 create-target-group \ --namegreen-target-group
\ --protocol TCP \ --port 80 \ --vpc-idvpc-abcd1234
\ --target-type ip \ --health-check-protocol TCP
Network Load Balancer
Sie müssen einen Network 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
Im Gegensatz zu Application Load Balancers arbeiten Network Load Balancer auf der Transportschicht (Schicht 4) und verwenden keine Sicherheitsgruppen. Stattdessen müssen Sie sicherstellen, dass die mit Ihren Amazon ECS-Aufgaben verknüpften Sicherheitsgruppen Datenverkehr vom Network Load Balancer auf den Listener-Ports zulassen.
Beispiel Erstellen eines Network Load Balancers
Der folgende AWS CLI-Befehl erstellt einen Network Load Balancer zur Verwendung in einer blue/green Bereitstellung:
aws elbv2 create-load-balancer \ --name
my-network-load-balancer
\ --type network \ --subnetssubnet-12345678
subnet-87654321
Überlegungen zur Verwendung von NLB bei Bereitstellungen blue/green
Beachten Sie bei der Verwendung eines Network Load Balancer für blue/green Bereitstellungen Folgendes:
-
Layer-4-Betrieb: Network Load Balancer arbeiten auf der Transportschicht (Schicht 4) und untersuchen nicht den Inhalt der Anwendungsebene (Schicht 7). Das bedeutet, dass Sie keine HTTP-Header oder -Pfade für Routing-Entscheidungen verwenden können.
-
Zustandsprüfungen: Die Integritätsprüfungen des Network Load Balancer sind auf die Protokolle TCP, HTTP oder HTTPS beschränkt. Bei TCP-Zustandsprüfungen überprüft der Network Load Balancer nur, ob die Verbindung hergestellt werden kann.
-
Erhaltung der Verbindung: Network Load Balancer speichern die Quell-IP-Adresse des Clients, was aus Sicherheits- und Protokollierungsgründen nützlich sein kann.
-
Statische IP-Adressen: Network Load Balancer stellen statische IP-Adressen für jedes Subnetz bereit. Dies kann nützlich sein, wenn Clients auf die Whitelist gesetzt werden oder wenn Clients eine Verbindung zu einer festen IP-Adresse herstellen müssen.
-
Testverkehr: Da Network Load Balancer kein inhaltsbasiertes Routing unterstützen, muss der Testdatenverkehr an einen anderen Port als den Produktionsverkehr gesendet werden.
Listener und Regeln
Für blue/green Bereitstellungen mit einem Network Load Balancer müssen Sie Listener 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 auf 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)
-
Im Gegensatz zu Application Load Balancers unterstützen Network Load Balancer keine inhaltsbasierten Routing-Regeln. Stattdessen wird der Datenverkehr auf der Grundlage des Listener-Ports und des Protokolls weitergeleitet.
Die folgenden AWS CLI-Befehle erstellen Produktions- und Test-Listener für einen Network Load Balancer:
Ersetzen Sie die user-input
durch Ihre Werte.
aws elbv2 create-listener \ --load-balancer-arn
arn:aws:elasticloadbalancing:region:123456789012:loadbalancer/net/my-network-lb/1234567890123456
\ --protocol TCP \ --port 80 \ --default-actions Type=forward, TargetGroupArn=arn:aws:elasticloadbalancing:region:123456789012:targetgroup/blue-target-group/1234567890123456
aws elbv2 create-listener \ --load-balancer-arnarn:aws:elasticloadbalancing:region:123456789012:loadbalancer/net/my-network-lb/1234567890123456
\ --protocol TCP \ --port 8080 \ --default-actions Type=forward, TargetGroupArn=arn:aws:elasticloadbalancing:region:123456789012:targetgroup/green-target-group/1234567890123456
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 einem Network Load Balancer 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) -
productionListenerArn
: Der ARN des Listeners für Produktionsdatenverkehr -
testListenerArn
: (Optional) Der ARN des Listeners für Testverkehr -
roleArn
: Der ARN der Rolle, die es Amazon ECS ermöglicht, Network Load Balancer Balancer-Ressourcen zu verwalten -
strategy
: Auf einstellen, umBLUE_GREEN
Bereitstellungen zu ermöglichen blue/green -
bakeTimeInMinutes
: Die Wartezeit nach der Implementierung der Green Service-Revision, bevor der Produktionsdatenverkehr verlagert wird
{ "loadBalancers": [ { "targetGroupArn": "
arn:aws:elasticloadbalancing:region:123456789012:targetgroup/blue-target-group/1234567890123456
", "containerName": "container-name", "containerPort": 80, "advancedConfiguration": { "alternateTargetGroupArn": "arn:aws:elasticloadbalancing:region:123456789012:targetgroup/green-target-group/1234567890123456
", "productionListenerArn": "arn:aws:elasticloadbalancing:region:123456789012:listener/net/my-network-lb/1234567890123456/1234567890123456
", "testListenerArn": "arn:aws:elasticloadbalancing:region:123456789012:listener/net/my-network-lb/1234567890123456/2345678901234567
", "roleArn": "arn:aws:iam::123456789012:role/ecs-nlb-role
" } } ], "deploymentConfiguration": { "strategy": "BLUE_GREEN", "maximumPercent": 200, "minimumHealthyPercent": 100, "bakeTimeInMinutes": 5 } }
Verkehrsfluss während der Bereitstellung
Während einer blue/green Bereitstellung mit einem Network Load Balancer 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 den Produktions-Listener, um den Verkehr 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).