Wie führe ich Blau/Grün-Bereitstellungen für Services durch, die in Amazon ECS gehostet werden?
Ich möchte eine Blau/Grün-Bereitstellung für Services durchführen, die in Amazon Elastic Container Service (Amazon ECS) gehostet werden.
Kurzbeschreibung
Bevor du die Schritte zur Durchführung einer Blau/Grün-Bereitstellung ausführst, stelle sicher, dass du über Folgendes verfügst:
Lösung
IAM-Servicerolle erstellen
Bevor du den Blau/Grün-Typ für AWS CodeDeploy mit Amazon ECS bereitstellen kannst, muss der CodeDeploy-Service über Berechtigungen verfügen, um deinen ECS-Service in deinem Namen zu aktualisieren. Führe die folgenden Schritte aus, um diese Berechtigungen zu gewähren:
- Öffne die AWS Identity and Access Management (IAM)-Konsole.
- Wähle im Navigationsbereich Rollen aus.
- Wähle Rolle erstellen aus.
- Wähle im Abschnitt Typ der vertrauenswürdigen Entität auswählen die Option AWS-Service und dann CodeDeploy aus.
- Wähle im Abschnitt Anwendungsfall auswählen die Option CodeDeploy – ECS und dann Weiter aus.
Hinweis: Behalte die Standardrichtlinie AWSCodeDeployRoleForECS bei. Diese Richtlinie enthält die Berechtigungen, die CodeDeploy benötigt, um korrekt mit Amazon ECS und anderen Services zu interagieren. - Weiter auswählen
- Für Rollenname ecsCodeDeployRole eingeben
- (Optional) Tags hinzufügen
- Wähle Rolle erstellen aus.
Application Load Balancer erstellen
Führe die folgenden Schritte aus, um den Application Load Balancer zu erstellen:
- Öffne die Amazon-EC2-Konsole.
- Wähle im Navigationsbereich im Abschnitt Load Balancing die Option Load Balancer aus.
- Wähle Load Balancer erstellen.
- Wähle im Abschnitt Load Balancer-Typ auswählen für Application Load Balancer die Option Erstellen aus.
- Gib für Name einen Namen für den Load Balancer ein.
- Wähle im Abschnitt Netzwerkzuordnung die VPC aus, in der dein Amazon ECS-Cluster erstellt wurde. Wähle dann zwei beliebige Subnetze mit Zugriff auf das Internet aus.
- Wähle im Abschnitt Sicherheitsgruppen den Hyperlink „Neue Sicherheitsgruppe erstellen“ aus.
- Gib für Sicherheitsgruppenname Sample Security-group ein.
- Wähle Regel hinzufügen aus.
- Gib für Portbereich 8080 ein. Gib für Quelle 0.0.0.0/0 ein.
- Wähle Sicherheitsgruppe erstellen aus.
- Aktualisiere die Sicherheitsgruppen in der Load Balancer-Seitenansicht und wähle dann die neu erstellte Sicherheitsgruppe aus.
- Wähle im Abschnitt Listener und Routing den Hyperlink „Zielgruppe erstellen“ aus.
- Wähle als Zieltyp IP-Adressen aus.
- Gib für Zielgruppe einen Namen für deine Zielgruppe ein.
- Wähle Weiter aus, registriere dann deine Zielgruppe und lege deine IP-Adresse fest.
- Wähle Zielgruppe erstellen aus.
Aufgabendefinition erstellen
Führe die folgenden Schritte aus:
- Öffne die Amazon-ECS-Konsole.
- Wähle im Navigationsbereich Aufgabendefinitionen aus.
- Wähle Neue Aufgabendefinition erstellen.
- Wähle Fargate und dann Nächster Schritt.
- Konfiguriere die Aufgabendefinition und wähle dann Erstellen aus.
Die folgende Beispiel-Aufgabendefinition verwendet den AWS Fargate-Starttyp und ein NGINX-Image von Docker Hub:
Hinweis: Ersetze in diesem und im folgenden Beispiel den Wert account_ID durch deine eigene Kontonummer.
{ "executionRoleArn": "arn:aws:iam::account_ID:role/ecsTaskExecutionRole", "containerDefinitions": [ { "name": "sample-website", "image": "nginx:latest", "essential": true, "portMappings": [ { "hostPort": 80, "protocol": "tcp", "containerPort": 80 } ] } ], "requiresCompatibilities": [ "FARGATE" ], "networkMode": "awsvpc", "cpu": "256", "memory": "512", "family": "sample-website" }
Amazon-ECS-Service erstellen
Führe die folgenden Schritte aus:
- Öffne die Amazon-ECS-Konsole.
- Wähle im Navigationsbereich im Abschnitt Amazon ECS die Option Cluster und dann deinen Cluster aus.
- Wähle auf der Registerkarte Services die Option Erstellen aus, um einen Service zu erstellen.
- Wähle im Abschnitt Umgebung die Option Starttyp und dann FARGATE aus.
- Wähle für Aufgabendefinition die Aufgabendefinition aus, die du im vorherigen Abschnitt erstellt hast.
- Gib für Service-Name einen Namen für deinen Service ein. Zum Beispiel: Sample-Website.
- Gib für Anzahl der Aufgaben die Anzahl der Aufgaben ein, die dein Service ausführen soll.
- Wähle im Abschnitt Bereitstellungsoptionen die Option Blau/Grün-Bereitstellung (unterstützt von AWS CodeDeploy) aus.
- Wähle für Servicerolle für CodeDeploy die Servicerolle ecsCodeDeployRole aus, die du zuvor erstellt hast.
- Wähle im Abschnitt Netzwerk deine Cluster-VPC und Subnetze sowie die Sicherheitsgruppe aus, die du zuvor erstellt hast.
- Wähle im Abschnitt Load Balancing für den Load Balancer-Typ die Option Application Load Balancer aus.
- Wähle für Load Balancer-Name den Load Balancer aus, den du zuvor erstellt hast.
- Wähle im Abschnitt Listener für Produktions-Listener-Port die Option 80:HTTP aus.
- Aktiviere das Kontrollkästchen Test-Listener hinzufügen.
- Wähle für Test-Listener-Port die Option Neu erstellen aus und gib dann 8080 als Listener-Port ein.
- Wähle im Abschnitt Zielgruppen für Name der Zielgruppe 1 die Zielgruppe aus, die du beim Erstellen des Load Balancers erstellt hast.
- Erstelle für Name der Zielgruppe 2 in der Amazon ECS-Konsole eine neue Zielgruppe mit dem Namen sample-website-tg-2.
- Wähle Erstellen.
Jetzt kannst du den neuen Service sehen, den du mit einer laufenden Aufgabe erstellt hast.
Überprüfen, ob die Amazon ECS-Blau/Grün-Bereitstellung ordnungsgemäß funktioniert
Nachdem du den Blau/Grün-Amazon ECS-Service erstellt hast, erstelle mit den Änderungen eine neue Revision der Aufgabendefinition und aktualisiere dann deinen Amazon ECS-Service. Durch diese Aktion wird eine Bereitstellung in der CodeDeploy-Konsole erstellt.
Führe die folgenden Schritte aus, um zu überprüfen, ob deine Bereitstellung funktioniert:
-
Öffne die Amazon-ECS-Konsole.
-
Wähle im Navigationsbereich Aufgabendefinitionen aus.
-
Wähle deine Aufgabendefinition aus, wähle Neue Revision erstellen aus und wähle dann Erstellen aus.
Hinweis: Im folgenden Beispiel wird die Eigenschaft image aktualisiert, sodass httpd:2.4 verwendet wird.{ "executionRoleArn": "arn:aws:iam::account_ID:role/ecsTaskExecutionRole", "containerDefinitions": [ { "name": "sample-website", "image": "httpd:2.4", "essential": true, "portMappings": [ { "hostPort": 80, "protocol": "tcp", "containerPort": 80 } ] } ], "requiresCompatibilities": [ "FARGATE" ], "networkMode": "awsvpc", "cpu": "256", "memory": "512", "family": "sample-website" } -
Wähle im Navigationsbereich Cluster aus und wähle dann den Cluster aus, in dem du deinen Amazon ECS-Service bereitgestellt hast.
-
Wähle auf der Registerkarte Services deinen Amazon ECS-Service aus und wähle dann Aktualisieren aus.
-
Wähle im Abschnitt Bereitstellungskonfiguration für Aufgabendefinition die neueste Revision aus, die du in Schritt 3 erstellt hast.
-
Wähle Aktualisieren aus.
-
Wähle auf der Registerkarte Bereitstellungen in der Spalte Bereitstellungs-ID die Bereitstellungs-ID aus, um deine CodeDeploy-Bereitstellung anzuzeigen.
- Themen
- Developer Tools
- Tags
- AWS CodeDeploy
- Sprache
- Deutsch
Ähnliche Videos


Relevanter Inhalt
AWS OFFICIALAktualisiert vor 4 Jahren
AWS OFFICIALAktualisiert vor 2 Jahren