Überprüfen Sie den Status eines ECS Amazon-Service vor der Bereitstellung - Amazon Elastic Container Service

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.

Überprüfen Sie den Status eines ECS Amazon-Service vor der Bereitstellung

Der Bereitstellungstyp Blau/Grün verwendet das Bereitstellungsmodell Blau/Grün, das von gesteuert wird. CodeDeploy Mit diesem Bereitstellungstyp können Sie eine neue Bereitstellung eines Service überprüfen, bevor Sie den Produktionsverkehr an ihn senden. Weitere Informationen finden Sie unter Was steht CodeDeploy im AWS CodeDeploy Benutzerhandbuch. Überprüfen Sie den Status eines ECS Amazon-Service vor der Bereitstellung

Es gibt drei Möglichkeiten, wie sich der Verkehr während einer blauen/grünen Bereitstellung verlagern kann:

  • Kanarisch — Der Verkehr wird in zwei Schritten verlagert. Sie können aus vordefinierten Canary-Optionen auswählen, die den Prozentsatz des Datenverkehrs, der im ersten Inkrementschritt zu Ihrem aktualisierten Aufgabensatz verschoben wird, sowie das Zeitintervall (in Minuten) angeben, das verstreichen soll, bevor der restliche Datenverkehr im zweiten Inkrementschritt verschoben wird.

  • Linear — Der Verkehr wird in gleichen Schritten verschoben, wobei zwischen den einzelnen Schritten die gleiche Anzahl von Minuten liegt. Sie können aus vordefinierten linearen Optionen auswählen, die den Prozentsatz des Datenverkehrs, der in den einzelnen Inkrementschritten verschoben wird, sowie das Zeitintervall (in Minuten) zwischen den einzelnen Inkrementschritten angeben.

  • A ll-at-once — Der gesamte Verkehr wird auf einmal vom ursprünglichen Task-Set auf das aktualisierte Task-Set umgestellt.

Die folgenden Komponenten werden von Amazon ECS verwendet CodeDeploy , wenn ein Service den Bereitstellungstyp Blau/Grün verwendet:

CodeDeploy Anwendung

Eine Sammlung von CodeDeploy Ressourcen. Sie besteht aus einer oder mehreren Bereitstellungsgruppen.

CodeDeploy Bereitstellungsgruppe

Die Bereitstellungseinstellungen. Diese bestehen aus:

  • ECSAmazon-Cluster und -Service

  • Load Balancer Zielgruppen- und Listener-Informationen

  • Rollback-Strategie für die Bereitstellung

  • Einstellungen zur Verkehrsumlenkung

  • Beendigungseinstellungen der ursprünglichen Revision

  • Bereitstellungskonfiguration

  • CloudWatch Alarm-Konfiguration, die so eingerichtet werden kann, dass Bereitstellungen gestoppt werden

  • SNSoder CloudWatch Ereigniseinstellungen für Benachrichtigungen

Weitere Informationen finden Sie unter Arbeiten mit Bereitstellungsgruppen im AWS CodeDeploy -Benutzerhandbuch.

CodeDeploy Konfiguration der Bereitstellung

Gibt an, CodeDeploy wie der Produktionsdatenverkehr während einer Bereitstellung an Ihren Ersatz-Tasksatz weitergeleitet wird. Die folgenden vordefinierten linearen und Canary-Bereitstellungskonfigurationen sind verfügbar. Sie können auch benutzerdefinierte lineare und Canary-Bereitstellungen erstellen. Weitere Informationen finden Sie unter Arbeiten mit Bereitstellungskonfigurationen im AWS CodeDeploy -Benutzerhandbuch.

  • CodeDeployDefault. ECSAllAtOnce: Verschiebt den gesamten Verkehr auf einmal auf den aktualisierten ECS Amazon-Container

  • CodeDeployDefault. ECSLinear10 PercentEvery 1Minutes: Verschiebt jede Minute 10 Prozent des Verkehrs, bis der gesamte Verkehr verlagert ist.

  • CodeDeployDefault. ECSLinear10 PercentEvery 3 Minuten: Verschiebt alle 3 Minuten 10 Prozent des Verkehrs, bis der gesamte Verkehr verlagert ist.

  • CodeDeployDefault. ECSCanary10Percent5Minutes: Verschiebt 10 Prozent des Traffics im ersten Schritt. Die restlichen 90 Prozent werden fünf Minuten später bereitgestellt.

  • CodeDeployDefault. ECSCanary10Percent15Minutes: Verschiebt 10 Prozent des Traffics im ersten Schritt. Die restlichen 90 Prozent werden 15 Minuten später bereitgestellt.

Revision

Eine Revision ist die CodeDeploy Anwendungsspezifikationsdatei (Datei). AppSpec In der AppSpec Datei geben Sie die vollständige ARN Aufgabendefinition sowie den Container und den Port Ihres Ersatz-Tasksatzes an, an den der Datenverkehr weitergeleitet werden soll, wenn eine neue Bereitstellung erstellt wird. Der Containername muss einer der Containernamen sein, auf die in Ihrer Aufgabendefinition verwiesen wird. Wenn die Netzwerkkonfiguration oder die Plattformversion in der Dienstdefinition aktualisiert wurde, müssen Sie diese Details auch in der AppSpec Datei angeben. Sie können auch die Lambda-Funktionen angeben, die während des Bereitstellungs-Lebenszyklus ausgeführt werden sollen. Mit den Lambda-Funktionen können Sie während der Bereitstellung Tests durchführen und Metriken zurückgeben. Weitere Informationen finden Sie unter AppSpec Dateireferenz im AWS CodeDeploy Benutzerhandbuch.

Überlegungen

Beachten Sie Folgendes, wenn Sie den Blau/Grün-Bereitstellungstyp verwenden:

  • Wenn ein ECS Amazon-Service, der den Bereitstellungstyp Blau/Grün verwendet, anfänglich erstellt wird, wird ein ECS Amazon-Aufgabensatz erstellt.

  • Sie müssen den Service für die Verwendung von entweder einem Application Load Balancer oder Network Load Balancer konfigurieren. Nachfolgend sind die Anforderungen an den Load Balancer aufgeführt:

    • Sie müssen dem Load Balancer, der zur Weiterleitung des Produktionsverkehrs verwendet wird, einen Produktions-Listener hinzufügen.

    • Dem Load Balancer, der zur Weiterleitung des Testverkehrs verwendet wird, kann ein optionaler Test-Listener hinzugefügt werden. Wenn Sie einen Test-Listener angeben, CodeDeploy leitet er Ihren Testdatenverkehr während einer Bereitstellung an den Ersatzaufgabensatz weiter.

    • Sowohl der Produktions- als auch der Test-Listener müssen demselben Load Balancer angehören.

    • Sie müssen für den Load Balancer eine Zielgruppe definieren. Die Zielgruppe leitet den Datenverkehr über den Produktions-Listener an die ursprüngliche Aufgabe weiter, die in einem Service festgelegt wurde.

    • Bei Verwendung eines Network Load Balancer wird nur die CodeDeployDefault.ECSAllAtOnce-Bereitstellungskonfiguration unterstützt.

  • Bei Services, die für die Verwendung des Auto Scaling des Services und der blau/grüne Bereitstellungstyp konfiguriert sind, wird das Auto Scaling während einer Bereitstellung nicht blockiert, die Bereitstellung kann jedoch unter Umständen fehlschlagen. Im Folgenden wird dieses Verhalten ausführlich beschrieben.

    • Wenn ein Service skaliert wird und eine Bereitstellung gestartet wird, wird das grüne Task-Set erstellt. Es CodeDeploy wird bis zu einer Stunde gewartet, bis das grüne Task-Set den stabilen Status erreicht hat. Bis dahin wird kein Traffic verlagert.

    • Wenn sich ein Service gerade in einer blau/grünen Bereitstellung befindet und ein Skalierungsereignis auftritt, wird der Datenverkehr für 5 Minuten weiter verschoben. Wenn der Dienst nicht innerhalb von 5 Minuten einen stabilen Status erreicht, CodeDeploy wird die Bereitstellung gestoppt und als fehlgeschlagen markiert.

    • Wenn sich ein Service gerade in einer blau/grünen Bereitstellung befindet und ein Skalierungsereignis auftritt, wird die gewünschte Aufgabenzahl möglicherweise auf einen unerwarteten Wert festgelegt. Dies wird durch das Auto Scaling verursacht, die die Anzahl der laufenden Aufgaben als aktuelle Kapazität berücksichtigt, was der doppelten Anzahl von Aufgaben entspricht, die in der Berechnung der gewünschten Aufgabenzahl verwendet werden.

  • Aufgaben, die den Starttyp Fargate oder die Controller-Typen CODE_DEPLOY verwenden, unterstützen die DAEMON-Scheduling-Strategie nicht.

  • Wenn Sie zum ersten Mal eine CodeDeploy Anwendung und eine Bereitstellungsgruppe erstellen, müssen Sie Folgendes angeben:

    • Sie müssen zwei Zielgruppen für den Load Balancer definieren. Eine Zielgruppe sollte die ursprüngliche Zielgruppe sein, die bei der Erstellung des ECS Amazon-Service für den Load Balancer definiert wurde. Die einzige Anforderung der zweiten Zielgruppe besteht darin, dass sie nicht mit einem anderen Load Balancer als dem, den der Service verwendet, verknüpft werden darf.

  • Wenn Sie eine CodeDeploy Bereitstellung für einen ECS Amazon-Service erstellen, CodeDeploy wird in der Bereitstellung ein Ersatzaufgabensatz (oder ein grüner Aufgabensatz) erstellt. Wenn Sie dem Load Balancer einen Test-Listener hinzugefügt haben, CodeDeploy leitet er Ihren Testdatenverkehr an den Ersatz-Aufgabensatz weiter. Dies ist der Zeitpunkt, an dem Sie Validierungstests durchführen können. Leitet CodeDeploy dann den Produktionsdatenverkehr entsprechend den Einstellungen für die Umleitung des Datenverkehrs für die Bereitstellungsgruppe vom ursprünglichen Task-Set zum Ersatz-Task-Set um.

Erforderliche Berechtigungen IAM

Blaue/grüne Bereitstellungen werden durch eine Kombination aus Amazon ECS und ermöglicht. CodeDeploy APIs Benutzer müssen über die entsprechenden Berechtigungen für diese Dienste verfügen, bevor sie ECS Blue/Green-Bereitstellungen von Amazon im AWS Management Console oder mit dem AWS CLI oder verwenden können. SDKs

Zusätzlich zu den IAM Standardberechtigungen für die Erstellung und Aktualisierung von Services ECS benötigt Amazon die folgenden Berechtigungen. Diese Berechtigungen wurden der AmazonECS_FullAccess IAM Richtlinie hinzugefügt. Weitere Informationen finden Sie unter ECSAmazonas_ FullAccess.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:GetApplication", "codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "codedeploy:ListApplications", "codedeploy:ListDeploymentGroups", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "codedeploy:GetDeploymentTarget", "codedeploy:ListDeploymentTargets", "codedeploy:GetDeploymentConfig", "codedeploy:GetApplicationRevision", "codedeploy:RegisterApplicationRevision", "codedeploy:BatchGetApplicationRevisions", "codedeploy:BatchGetDeploymentGroups", "codedeploy:BatchGetDeployments", "codedeploy:BatchGetApplications", "codedeploy:ListApplicationRevisions", "codedeploy:ListDeploymentConfigs", "codedeploy:ContinueDeployment", "sns:ListTopics", "cloudwatch:DescribeAlarms", "lambda:ListFunctions" ], "Resource": ["*"] } ] }
Anmerkung

Zusätzlich zu den standardmäßigen ECS Amazon-Berechtigungen, die für die Ausführung von Aufgaben und Diensten erforderlich sind, benötigen Benutzer auch iam:PassRole Berechtigungen, um IAM Rollen für Aufgaben zu verwenden.

CodeDeploy benötigt Berechtigungen, um Amazon anzurufen ECSAPIs, Ihr Elastic Load Balancing zu ändern, Lambda-Funktionen aufzurufen und CloudWatch Alarme zu beschreiben, sowie Berechtigungen, um die von Ihrem Service gewünschte Anzahl in Ihrem Namen zu ändern. Bevor Sie einen ECS Amazon-Service erstellen, der den Bereitstellungstyp Blau/Grün verwendet, müssen Sie eine IAM Rolle (ecsCodeDeployRole) erstellen. Weitere Informationen finden Sie unter ECS CodeDeploy IAMRolle bei Amazon.

Die Beispiel für einen ECS Amazon-Service erstellen und Beispiel für ECS einen Amazon-Service aktualisieren IAM Richtlinienbeispiele zeigen die Berechtigungen, die für Benutzer erforderlich sind, um Amazon ECS Blue/Green-Bereitstellungen auf dem zu verwenden. AWS Management Console