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.
Über blaue/grüne Bereitstellungen
Dieses Thema bietet einen Überblick darüber, wie die Blue/Green-Bereitstellung mit CloudFormation funktioniert. Es wird auch erklärt, wie Sie Ihre CloudFormation-Vorlage für Blue/Green-Bereitstellungen vorbereiten.
Themen
Funktionsweise
Wenn Sie CloudFormation verwenden, um ECS Blue/Green-Implementierungen über CodeDeploy durchzuführen, erstellen Sie zunächst eine Stack-Vorlage, die die Ressourcen für Ihre blauen und grünen Anwendungsumgebungen definiert, einschließlich der Angabe der zu verwendenden Einstellungen für das Traffic Routing und die Stabilisierung. Als nächstes erstellen Sie einen Stapel aus dieser Vorlage. Dies erzeugt Ihre blaue (aktuelle) Anwendung. CloudFormation erstellt nur die blauen Ressourcen während der Stack-Erstellung. Ressourcen für eine grüne Bereitstellung werden erst erstellt, wenn sie erforderlich sind.
Wenn Sie bei einem zukünftigen Stack-Update die Aufgabendefinition oder die Aufgabensatzressourcen in Ihrer blauen Anwendung aktualisieren, führt CloudFormation Folgendes aus:
-
Generiert alle notwendigen Ressourcen für eine grüne Anwendungsumgebung.
-
Verschiebt den Datenverkehr basierend auf den angegebenen Datenverkehrs-Weiterleitungsparametern.
-
Löscht die blauen Ressourcen.
Wenn zu einem beliebigen Zeitpunkt ein Fehler auftritt, bevor die grüne Bereitstellung erfolgreich und abgeschlossen ist, führt CloudFormation den Stack in seinen Zustand zurück, bevor die gesamte grüne Bereitstellung initiiert wurde.
Ressourcenaktualisierungen, die grüne Bereitstellungen initiieren
Wenn Sie ein Stack-Update durchführen, das bestimmte Eigenschaften bestimmter ECS-Ressourcen aktualisiert, initiiert CloudFormation einen grünen Bereitstellungsprozess. Die Ressourcen, die diesen Prozess in Gang setzen, sind:
Wenn die Aktualisierungen dieser Ressourcen jedoch keine Eigenschaftsänderungen beinhalten, die eine Ersetzung erfordern, wird keine grüne Bereitstellung initiiert. Weitere Informationen finden Sie unter Verstehen des Aktualisierungsverhaltens von Stack-Ressourcen.
Es ist wichtig zu wissen, dass Sie Aktualisierungen der oben genannten Ressourcen nicht mit Aktualisierungen anderer Ressourcen im selben Stapelaktualisierungsvorgang kombinieren können. Wenn Sie sowohl die aufgeführten Ressourcen als auch andere Ressourcen innerhalb desselben Stapels aktualisieren müssen, haben Sie zwei Möglichkeiten:
-
Führen Sie zwei separate Stack-Aktualisierungsvorgänge durch: einen, die nur die Aktualisierungen der obengenannten Ressourcen enthält, und eine separate Stack-Aktualisierung, die Änderungen an anderen Ressourcen enthält.
-
Entfernen Sie die Abschnitte
TransformundHooksaus Ihrer Vorlage und führen Sie dann die Stack-Aktualisierung durch. In diesem Fall wird CloudFormation keine grüne Bereitstellung durchführen.
Vorbereiten der Vorlage für die Durchführung von ECS-Blau/Grün-Bereitstellungen
Um Blau/Grün-Bereitstellungen auf Ihrem Stack zu aktivieren, fügen Sie die folgenden Abschnitte in Ihre Stack-Vorlage ein, bevor Sie eine Stack-Aktualisierung durchführen.
-
Fügen Sie Ihrer Vorlage einen Verweis auf die Transformation
AWS::CodeDeployBlueGreenhinzu:"Transform": [ "AWS::CodeDeployBlueGreen" ], -
Fügen Sie einen
Hooks-Abschnitt hinzu, der den HookAWS::CodeDeploy::BlueGreenaufruft und die Eigenschaften für Ihre Bereitstellung angibt. Weitere Informationen finden Sie unter AWS::CodeDeploy::BlueGreen-Hook-Syntax. -
Definieren Sie im Abschnitt
Resourcesdie blauen und grünen Ressourcen für Ihre Bereitstellung.
Sie können diese Abschnitte hinzufügen, wenn Sie die Vorlage zum ersten Mal erstellen (d. h. vor dem Erstellen des Stacks selbst), oder Sie können sie einer vorhandenen Vorlage hinzufügen, bevor Sie eine Stack-Aktualisierung durchführen. Wenn Sie die Blau/Grün-Bereitstellung für einen neuen Stack angeben, erstellt CloudFormation nur die blauen Ressourcen während der Stack-Erstellung – Ressourcen für die grüne Bereitstellung werden erst erstellt, wenn Sie während einer Stack-Aktualisierung erforderlich sind.
Modellierung Ihrer Blau/Grün-Bereitstellung mithilfe von CloudFormation-Ressourcen
Um die CodeDeploy Blue/Green-Bereitstellung auf ECS durchzuführen, muss Ihre CloudFormation-Vorlage die Ressourcen enthalten, die Ihre Bereitstellung modellieren, z. B. einen Amazon ECS-Service und einen Load Balancer. Weitere Informationen dazu, was diese Ressourcen darstellen, finden Sie unter Vor einer Amazon ECS-Bereitstellung im AWS CodeDeploy-Benutzerhandbuch.
| Anforderung | Ressource | Erforderlich/optional | Initiiert den Einsatz von Blau/Grün, wenn er ersetzt wird? |
|---|---|---|---|
| Amazon-ECS-Cluster | AWS::ECS::Cluster | Optional. Der Standard-Cluster kann verwendet werden. | Nein |
| Amazon-ECS-Service | AWS::ECS::Service | Erforderlich | Nein |
| Application oder Network Load Balancer | AWS::ECS::Service LoadBalancer | Erforderlich | Nein |
| Produktions-Listener | AWS::ElasticLoadBalancingV2::Listener | Erforderlich | Nein |
| Listener testen | AWS::ElasticLoadBalancingV2::Listener | Optional. | Nein |
| Zwei Zielgruppen | AWS::ElasticLoadBalancingV2::TargetGroup | Erforderlich | Nein |
| Amazon ECS-Aufgabendefinition | AWS::ECS::TaskDefinition | Erforderlich | Ja |
| Container für Ihre Amazon ECS-Anwendung | AWS::ECS::TaskDefinition ContainerDefinition Name | Erforderlich | Nein |
| Ein Port für den Ersatzaufgabensatz | AWS::ECS::TaskDefinition PortMapping ContainerPort | Erforderlich | Nein |
Änderungssätze
Es wird dringend empfohlen, einen Änderungssatz zu erstellen, bevor Sie eine Stack-Aktualisierung durchführen, die eine Grün-Bereitstellung initiiert. So können Sie die tatsächlichen Änderungen, die an Ihrem Stack vorgenommen werden, sehen, bevor Sie die Stack-Aktualisierung durchführen. Beachten Sie, dass Ressourcenänderungen möglicherweise nicht in der Reihenfolge aufgeführt werden, in der sie während der Stack-Aktualisierung durchgeführt werden. Weitere Informationen finden Sie unter CloudFormation Stapel mithilfe von Änderungssätzen aktualisieren.
Überwachung von Stack-Ereignissen
Sie können die Stack-Ereignisse, die bei jedem Schritt der ECS-Bereitstellung generiert wurden, in der Registerkarte Ereignisse der Seite Stack und mithilfe der AWS CLI anzeigen. Weitere Informationen finden Sie unter Fortschritt des Stapels überwachen.
IAM-Berechtigungen für blaue/grüne Bereitstellungen
Damit CloudFormation die blaugrünen Bereitstellungen erfolgreich durchführen kann, müssen Sie über die folgenden CodeDeploy-Berechtigungen verfügen:
-
codedeploy:Get* -
codedeploy:CreateCloudFormationDeployment
Weitere Informationen finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für CodeDeploy in der Service Authorization Reference.