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 blue/green Bereitstellungen
Dieses Thema bietet einen Überblick darüber, wie die Durchführung von blue/green Bereitstellungen mit funktioniert. CloudFormation Außerdem wird erklärt, wie Sie Ihre CloudFormation Vorlage für Blau/Grün-Bereitstellungen vorbereiten.
Themen
Funktionsweise
Wenn Sie blue/green ECS-Bereitstellungen über durchführen CodeDeploy, 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 CloudFormation verwendenden Einstellungen für das Routing und die Stabilisierung des Datenverkehrs. Als Nächstes erstellen Sie einen Stack aus dieser Vorlage. Dadurch wird Ihre blaue (aktuelle) Anwendung generiert. 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 dann bei einem future Stack-Update die Aufgabendefinition oder die Taskset-Ressourcen in Ihrer blauen Anwendung aktualisieren, CloudFormation geht das Folgende vor:
-
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.
Ressourcen-Updates, die umweltfreundliche Bereitstellungen einleiten
Wenn Sie ein Stack-Update durchführen, das bestimmte Eigenschaften bestimmter ECS-Ressourcen aktualisiert, wird ein umweltfreundlicher Bereitstellungsprozess CloudFormation eingeleitet. Die Ressourcen, die diesen Prozess einleiten, sind:
Wenn die Aktualisierungen dieser Ressourcen jedoch keine Eigenschaftsänderungen beinhalten, die ersetzt werden müssen, wird keine umweltfreundliche Bereitstellung eingeleitet. Weitere Informationen finden Sie unter Verstehen Sie das Aktualisierungsverhalten von Stack-Ressourcen.
Es ist wichtig zu beachten, dass Sie Aktualisierungen der oben genannten Ressourcen nicht mit Aktualisierungen anderer Ressourcen im selben Stack-Aktualisierungsvorgang kombinieren können. Wenn Sie sowohl die aufgelisteten Ressourcen als auch andere Ressourcen innerhalb desselben Stacks 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
Hooks
undTransform
aus Ihrer Vorlage und führen Sie dann die Stack-Aktualisierung durch. In diesem Fall CloudFormation wird keine umweltfreundliche Bereitstellung durchgeführt.
Vorbereiten der Vorlage für die Durchführung von ECS-Blau/Grün-Bereitstellungen
Um blue/green Bereitstellungen auf Ihrem Stack zu aktivieren, nehmen Sie die folgenden Abschnitte in Ihre Stack-Vorlage auf, bevor Sie ein Stack-Update durchführen.
-
Fügen Sie Ihrer Vorlage einen Verweis auf die Transformation
AWS::CodeDeployBlueGreen
hinzu:"Transform": [ "AWS::CodeDeployBlueGreen" ],
-
Fügen Sie einen
Hooks
-Abschnitt hinzu, der den HookAWS::CodeDeploy::BlueGreen
aufruft und die Eigenschaften für Ihre Bereitstellung angibt. Weitere Informationen finden Sie unter AWS::CodeDeploy::BlueGreenHook-Syntax. -
Definieren Sie im Abschnitt
Resources
die 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 das blue/green Deployment für einen neuen Stack angeben, werden bei der Stack-Erstellung CloudFormation nur die blauen Ressourcen erstellt — Ressourcen für das grüne Deployment werden erst erstellt, wenn sie während eines Stack-Updates benötigt werden.
Modellieren Sie Ihre blue/green Bereitstellung mithilfe von CloudFormation Ressourcen
Um eine CodeDeploy blaue/grüne 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 die blue/green Bereitstellung, falls sie 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. Auf diese Weise können Sie sehen, welche Änderungen tatsächlich an Ihrem Stack vorgenommen werden, bevor Sie das Stack-Update 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 Stack-Fortschritt überwachen.
IAM-Berechtigungen für Bereitstellungen blue/green
CloudFormation Um die blaugrünen Bereitstellungen erfolgreich durchführen zu können, benötigen Sie die folgenden Berechtigungen: CodeDeploy
-
codedeploy:Get*
-
codedeploy:CreateCloudFormationDeployment
Weitere Informationen finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für CodeDeploy in der Service-Autorisierungs-Referenz.