Was ist CodeDeploy? - AWS CodeDeploy

Was ist CodeDeploy?

CodeDeploy ist ein Bereitstellungsservice, der die Anwendungsbereitstellungen auf Amazon EC2-Instances oder lokalen Instances vor Ort oder serverlosen Lambda-Funktionen oder Amazon ECS-Services automatisiert.

Sie können unterschiedlichste Anwendungsinhalte bereitstellen, darunter:

  • Code

  • Serverlose AWS Lambda-Funktionen

  • Web- und Konfigurationsdateien

  • Ausführbare Dateien

  • Pakete

  • Skripte

  • Multimediadateien

CodeDeploy kann in Amazon S3-Buckets, GitHub-Repositorys oder Bitbucket-Repositorys gespeicherte und auf einem Server ausgeführte Anwendungsinhalte bereitstellen. CodeDeploy kann auch eine serverlose Lambda-Funktion bereitstellen. Sie müssen den vorhandenen Code nicht verändern, um CodeDeploy verwenden zu können.

CodeDeploy macht es Ihnen einfacher:

  • Schnell neue Funktionen zu veröffentlichen.

  • AWS Lambda-Funktionsversionen zu aktualisieren.

  • Ausfallzeiten während der Anwendungsbereitstellung zu vermeiden.

  • Die Komplexität der Aktualisierung Ihrer Anwendungen zu beherrschen, ohne viele der Risiken, die mit fehleranfälligen manuellen Bereitstellungen verbunden sind.

Der Service passt sich der Größe Ihrer Infrastruktur an, sodass Sie mühelos eine einzige Instance oder Tausende von Instances bereitstellen können.

CodeDeploy nutzt verschiedene Systeme für die Konfigurationsverwaltung, Quellcodeverwaltung, fortlaufende Integration und fortlaufende Bereitstellung. Weitere Informationen finden Sie unter Produkt-Integrationen.

Die CodeDeploy-Konsole bietet auch eine Möglichkeit, schnell nach Ihren Ressourcen, wie z. B. Repositorys, Build-Projekte, Bereitstellungsanwendungen und Pipelines, zu suchen. Wählen Sie Go to Ressource (Zur Ressource) oder drücken Sie die Taste / und geben Sie dann den Namen der Ressource ein. Alle Übereinstimmungen werden in der Liste angezeigt. Bei der Suche wird nicht zwischen Groß- und Kleinschreibung unterschieden. Sie sehen nur die Ressourcen, für die Sie die Berechtigung besitzen. Weitere Informationen finden Sie unter Identitäts- und Zugriffsverwaltung für AWS CodeDeploy.

Einführungsvideo für AWS CodeDeploy

In diesem kurzen Video (2:10) wird beschrieben, wie CodeDeploy die Codebereitstellung für Amazon EC2-Instances automatisiert.

Vorteile von AWS CodeDeploy

CodeDeploy bietet die folgenden Vorteile:

  • Container-, Server- und serverlose Anwendungen. CodeDeploy ermöglicht Ihnen, traditionelle Anwendungen auf Servern bereitzustellen, ebenso wie Anwendungen, die eine serverlose AWS Lambda-Funktionsversion oder eine Amazon ECS-Anwendung bereitstellen.

  • Automatisch Bereitstellungen: CodeDeploy ermöglicht voll automatisierte Anwendungsbereitstellungen in Entwicklungs-, Test und Produktionsumgebungen und CodeDeploy lässt sich an die Größe der Infrastruktur anpassen, sodass Sie Anwendungen auf einer Instance oder Tausenden von Instances bereitstellen können.

  • Minimierung von Ausfallzeit. Wenn Ihre Anwendung die EC2/Lokal Plattform für die Datenverarbeitung verwendet, unterstützt CodeDeploy Sie bei der Optimierung der Verfügbarkeit Ihrer Anwendung. Bei einer In-Situ-Bereitstellung führt CodeDeploy ein fortlaufendes Update unter den Amazon EC2-Instances aus. Sie können die Anzahl der Instances angeben, die für Updates gleichzeitig offline geschaltet werden. Bei einer Blau/Grün-Bereitstellung wird die neueste Anwendungsrevision auf neuen Instances installiert. Der Datenverkehr wird wahlweise entweder sofort oder nach Beendigung der Tests der neuen Umgebung an diese Instances umgeleitet. Bei beiden Bereitstellungstypen prüft und erfasst CodeDeploy die Anwendungsintegrität nach den von Ihnen konfigurierten Regeln.

  • Stoppen und Rollback. Sie können Bereitstellungen automatisch oder manuell stoppen und ein Rollback ausführen, wenn Fehler auftreten.

  • Zentrale Steuerung. Sie können Bereitstellungen über die CodeDeploy-Konsole oder die AWS CLI starten und ihren Status verfolgen. Sie erhalten einen Bericht, aus dem hervorgeht, wann und auf welchen Amazon EC2 Instances die einzelnen Anwendungsrevisionen bereitgestellt worden sind.

  • Einfache Anpassung: CodeDeploy ist plattformunabhängig und funktioniert mit jeder Anwendung. Sie können Ihren Setup-Code leicht wiederverwenden. CodeDeploy lässt sich auch in Ihren Softwarefreigabeprozess oder die Tool-Chain für die fortlaufende Bereitstellung integrieren.

  • Gleichzeitige Bereitstellungen. Wenn mehrere Ihrer Anwendungen die EC2/Lokal Plattform für die Datenverarbeitung nutzen, kann CodeDeploy sie gleichzeitig für dieselbe Gruppe von Instances bereitstellen.

Übersicht über CodeDeploy-Datenverarbeitungsplattformen

CodeDeploy kann Anwendungen auf drei Datenverarbeitungsplattformen bereitstellen:

  • EC2/Lokal: beschreibt Instances physischer Server, bei denen es sich um Amazon EC2-Cloud-Instances, lokale Server oder beides handeln kann. Anwendungen, die mit der EC2/Lokal Plattform für die Datenverarbeitung erstellt wurden, können aus ausführbaren Dateien, Konfigurationsdateien, Bildern und anderem zusammengesetzt sein.

    Bereitstellungen, die die EC2/Lokal Plattform für die Datenverarbeitung verwenden, verwalten die Art und Weise, wie Datenverkehr an Instances geleitet wird, unter Verwendung eines In-Situ- oder Blau/Grün-Bereitstellungstyps. Für weitere Informationen siehe Übersicht über CodeDeploy-Bereitstellungstypen.

  • AWS Lambda: Wird verwendet, um Anwendungen bereitzustellen, die aus aktualisierten Versionen von Lambda-Funktionen bestehen. AWS Lambda verwaltet die Lambda-Funktion in einer serverlosen Datenverarbeitungsumgebung, die aus einer hochverfügbaren Datenverarbeitungsstruktur besteht. Die gesamte Administration der Datenverarbeitungsressourcen erfolgt durch AWS Lambda. Weitere Informationen finden Sie unter Serverloses Computing und Anwendungen. Weitere Informationen über AWS Lambda und Lambda-Funktionen finden Sie im AWS Lambda.

    Sie können verwalten, wie Datenverkehr während einer Bereitstellung in die aktualisierten Lambda-Funktionsversionen geleitet wird, indem Sie eine Canary-, lineare oder All-at-once-Konfiguration auswählen.

  • Amazon ECS: Wird verwendet, um eine containerisierte Amazon ECS-Anwendung als Aufgabensatz bereitzustellen. CodeDeploy führt eine Blau-/Grün-Bereitstellung durch die Installation einer aktualisierten Version der Anwendung als neuen Ersatzaufgabensatz durch. CodeDeploy leitet Produktionsdatenverkehr von der ursprünglichen Anwendung oder dem ursprünglichen Aufgabensatz an den Ersatzaufgabensatz um. Der ursprüngliche Aufgabensatz wird nach erfolgreich abgeschlossener Bereitstellung beendet. Weitere Informationen über Amazon ECS finden Sie unter Amazon Elastic Container Service.

    Sie können die Art und Weise, wie der Datenverkehr während einer Bereitstellung auf den aktualisierten Aufgabensatz verschoben wird, verwalten, indem Sie eine Canary-, lineare oder All-at-once Konfiguration auswählen.

    Anmerkung

    Amazon ECS-Blau/Grün-Bereitstellungen werden sowohl mit CodeDeploy als auch AWS CloudFormation unterstützt. Details zu diesen Bereitstellungen werden in den nachfolgenden Abschnitten beschrieben.

Die folgende Tabelle beschreibt, wie CodeDeploy-Komponenten für jede Plattform für die Datenverarbeitung verwendet werden. Weitere Informationen finden Sie unter:

CodeDeploy-Komponente EC2/Lokal AWS Lambda Amazon ECS
Bereitstellungsgruppe Stellt eine Revision für eine Gruppe von Instances bereit. Stellt eine neue Version einer serverlosen Lambda-Funktion einer hoch verfügbaren Datenverarbeitungsinfrastruktur bereit. Gibt den Amazon ECS-Service mit der bereitzustellenden containerisierten Anwendung als Aufgabensatz, einem Produktions- und einem optionalen Test-Listener für die Weiterleitung von Datenverkehr an die bereitgestellte Anwendung, dem Zeitpunkt der Umleitung des Datenverkehrs sowie der Beendigung des ursprünglichen Aufgabensatzes der bereitgestellten Anwendung und optionalen Auslöser-, Alarm- und Rollback-Einstellungen an.
Bereitstellung Stellt eine neue Revision bereit, die aus einer Anwendung und einer AppSpec-Datei besteht. Die AppSpec gibt an, wie die Anwendungsrevision auf den Instances in einer Bereitstellungsgruppe bereitgestellt werden soll. Verlagert Produktionsdatenverkehr von einer Version einer Lambda-Funktion auf eine neue Version derselben Funktion. Die AppSpec file gibt an, welche Lambda-Funktionsversion bereitzustellen ist. Stellt eine aktualisierte Version einer containerisierten Amazon ECS-Anwendung als neuen Aufgabensatz bereit. CodeDeploy leitet Produktionsdatenverkehr vom Aufgabensatz mit der ursprünglichen Version an den neuen Aufgabensatz mit der aktualisierten Version weiter. Wenn die Bereitstellung abgeschlossen ist, wird der ursprüngliche Aufgabensatz beendet.
Bereitstellungskonfiguration Einstellungen, die die Bereitstellungsgeschwindigkeit angeben, ebenso wie die Mindestanzahl der fehlerfreien Instances zu jedem Zeitpunkt während einer Bereitstellung. Einstellungen, die bestimmen wie der Datenverkehr auf die aktualisierten Lambda-Funktionsversionen verschoben wird. Einstellungen, die bestimmen wie der Datenverkehr auf den aktualisierten Amazon ECS-Aufgabensatz verschoben wird.
Revision Eine Kombination aus AppSpec-Datei und Anwendungsdateien, wie beispielsweise ausführbare Dateien, Konfigurationsdateien usw. Eine AppSpec-Datei, die angibt, welche Lambda-Funktion bereitgestellt werden soll und welche Lambda-Funktionen während der Bereitstellungs-Lebenszyklusereignis-Hooks Validierungstests ausführen.

Eine AppSpec file, die Folgendes angibt:

  • Die Amazon ECS-Aufgabendefinition für den Amazon ECS-Service mit der bereitzustellenden containerisierten Anwendung.

  • Den Container, in dem Ihre aktualisierte Anwendung bereitgestellt wird.

  • Einen Port für den Container, wohin der Produktionsdatenverkehr umgeleitet wird.

  • Optionale Netzwerkkonfigurationseinstellungen und Lambda-Funktionen, die bei Lebenszyklusereignis-Hooks während der Bereitstellung Validierungsprüfungen ausführen können.

Anwendung Eine Sammlung von Bereitstellungsgruppen und Revisionen. Eine EC2/Lokal-Anwendung verwendet die EC2/Lokal Plattform für die Datenverarbeitung. Eine Sammlung von Bereitstellungsgruppen und Revisionen. Eine Anwendung für eine AWS Lambda-Bereitstellung verwendet die serverlose AWS Lambda Plattform für die Datenverarbeitung. Eine Sammlung von Bereitstellungsgruppen und Revisionen. Eine Anwendung für eine Amazon ECS-Bereitstellung verwendet Amazon ECS Plattform für die Datenverarbeitung.

Übersicht über CodeDeploy-Bereitstellungstypen

CodeDeploy stellt zwei Bereitstellungstypoptionen bereit:

  • In-Situ-Bereitstellung: Die Anwendung wird in jeder Instance in der Bereitstellungsgruppe gestoppt, die neue Anwendungsversion installiert und die neue Version der Anwendung gestartet und validiert. Sie können einen Load Balancer verwenden, damit jede Instance während ihrer Bereitstellung abgemeldet und nach Abschluss der Bereitstellung wiederhergestellt wird. Nur Bereitstellungen, die die EC2/Lokal Plattform für die Datenverarbeitung verwenden, können In-Situ-Bereitstellungen verwenden. Weitere Informationen zu In-Situ-Bereitstellungen finden Sie unter Übersicht über eine In-Situ-Bereitstellung.

    Anmerkung

    AWS Lambda- und Amazon ECS-Bereitstellungen können keinen In-Situ-Bereitstellungstyp verwenden.

  • Blue/green deployment: Das Verhalten Ihrer Bereitstellung ist davon abhängig, welche Plattform für die Datenverarbeitung Sie verwenden:

    • Blau/grün auf einem EC2/Lokal Plattform für die Datenverarbeitung: Die Instances einer Bereitstellungsgruppe (die ursprüngliche Umgebung) werden durch eine andere Gruppe von Instances (die Ersatzumgebung) mit den folgenden Schritten ersetzt:

      • Instances werden für die Ersatzumgebung bereitgestellt.

      • Die neueste Anwendungsrevision, die Sie für die Bereitstellung angeben, wird auf den Ersatz-Instances installiert.

      • Für Aktivitäten wie z. B. das Testen einer Anwendung und die Systemverifizierung tritt eine optionale Wartezeit ein.

      • Die Instances in der Ersatzumgebung werden beim Elastic Load Balancing-Load Balancer registriert und der Datenverkehr wird an sie umgeleitet. Die Instances in der ursprünglichen Umgebung werden abgemeldet und können beendet oder zu anderen Zwecken weiterhin ausgeführt werden.

      Anmerkung

      Beachten Sie, dass bei Verwendung einer EC2/Lokal Plattform für die Datenverarbeitung nur Blau/Grün-Bereitstellungen für Amazon EC2-Instances funktionieren.

    • Blau/Grün auf einer AWS Lambda Plattform für die Datenverarbeitung: Datenverkehr wird von Ihrer aktuellen serverlosen Umgebung in eine Umgebung mit Ihren aktualisierten Lambda-Funktionsversionen verschoben. Sie können Lambda-Funktionen angeben, die Validierungstests durchführen, und wählen, wie die Verschiebung des Datenverkehrs stattfindet. Alle AWS Lambda Plattform für die Datenverarbeitung-Bereitstellungen sind Blau/Grün-Bereitstellungen. Aus diesem Grund müssen Sie keinen Bereitstellungstyp angeben.

    • Blau/grün auf einer Amazon ECS Plattform für die Datenverarbeitung: Der Datenverkehr wird von dem Aufgabensatz mit der ursprünglichen Version einer Anwendung in einem Amazon ECS-Service an einen Ersatzaufgabensatz im gleichen Service verschoben. Sie können die Verschiebung des Datenverkehrs mit der Bereitstellungskonfiguration auf „linear“ oder „canary“ festlegen. Das Protokoll und der Port eines angegebenen Load Balancer-Listeners werden dazu verwendet, den Produktionsdatenverkehr umzuleiten. Während einer Bereitstellung kann ein Test-Listener dazu verwendet werden, Verkehr an die Ersatzaufgabe zu leiten, während Validierungstests ausgeführt werden.

    • Blau/Grün-Bereitstellungen durch AWS CloudFormation: Der Datenverkehr wird als Teil eines AWS CloudFormation-Stack-Updates von Ihren aktuellen Ressourcen auf Ihre aktualisierten Ressourcen verschoben. Derzeit werden nur ECS-Blau/Grün-Bereitstellungen unterstützt.

    Weitere Informationen zu blauen/grünen Bereitstellungen finden Sie unter Übersicht über eine Blau/Grün-Bereitstellung.

Anmerkung

Mit dem CodeDeploy-Agenten können Sie eine Bereitstellung auf einer Instance ausführen, auf der Sie angemeldet sind, ohne dass eine Anwendung, eine Bereitstellungsgruppe oder sogar ein AWS-Konto erforderlich ist. Weitere Informationen finden Sie unter Überprüfen eines Bereitstellungspakets auf einem lokalen Computer mit einem CodeDeploy-Agenten.

Übersicht über eine In-Situ-Bereitstellung

Das folgende Diagramm veranschaulicht den Ablauf einer typischen In-Situ-Bereitstellung in CodeDeploy:

Anmerkung

AWS Lambda- und Amazon ECS-Bereitstellungen können keinen In-Situ-Bereitstellungstyp verwenden.

Funktionsweise:

  1. Zunächst erstellen Sie auf Ihrem lokalen Entwicklungscomputer oder in einer ähnlichen Umgebung Inhalte, die sich bereitstellen lassen, und dann fügen Sie eine application specification file (AppSpec file) hinzu. Die AppSpec file ist in CodeDeploy eindeutig. Sie definiert die Bereitstellungsaktionen, die CodeDeploy ausführen soll. Sie packen den bereitzustellenden Inhalt und die AppSpec file in eine Archivdatei und laden diese in einen Amazon S3-Bucket oder ein GitHub-Repository hoch. Diese Archivdatei wird als Anwendungsrevision (oder einfach Revision) bezeichnet.

  2. Als Nächstes stellen Sie CodeDeploy Informationen über die Bereitstellung bereit, z. B. aus welchem Amazon S3-Bucket oder GitHub-Repository die Revision abgerufen und für welche Amazon EC2-Instances der Inhalt bereitgestellt werden soll. In CodeDeploy wird eine Reihe von Amazon EC2-Instances als Bereitstellungsgruppe bezeichnet. Eine Bereitstellungsgruppe enthält einzelne, mit Tags versehene Amazon EC2-Instances, Amazon EC2-Instances in Amazon EC2 Auto Scaling-Gruppen oder beides.

    Jedes Mal, wenn Sie eine neue Anwendungsrevision, die für die Bereitstellungsgruppe bereitgestellt werden soll, erfolgreich hochladen, wird dieses Paket als Zielrevision für die Bereitstellungsgruppe festgelegt. Mit anderen Worten, die Anwendungsrevision, die aktuell zur Bereitstellung vorgesehen ist, ist die Zielrevision. Diese Revision wird auch für automatische Bereitstellungen verwendet.

  3. Als Nächstes fragt der CodeDeploy-Agent auf jeder Instance von CodeDeploy ab, was und wann dies vom angegebenen Amazon S3-Bucket oder GitHub-Repository abgerufen werden soll.

  4. Schließlich ruft der CodeDeploy-Agent auf jeder Instance die Zielrevision vom Amazon S3-Bucket oder GitHub-Repository ab und stellt die Inhalte unter Verwendung der in der AppSpec file enthaltenen Anweisungen auf der Instance bereit.

CodeDeploy protokolliert die Bereitstellungen, sodass Ihnen Informationen zu Bereitstellungsstatus, Bereitstellungskonfigurationsparametern, Zustandsprüfung der Instance usw. zur Verfügung stehen.

Übersicht über eine Blau/Grün-Bereitstellung

Eine Blau/Grün-Bereitstellung dient zur Aktualisierung Ihrer Anwendungen, wobei die Unterbrechungen, die durch Änderungen einer neuen Anwendungsversion verursacht werden, minimiert werden. CodeDeploy stellt Ihre neue Anwendungsversion neben der alten Version bereit, bevor Ihr Produktionsdatenverkehr umgeleitet wird.

  • AWS Lambda: Der Datenverkehr wird von einer Version einer Lambda-Funktion auf eine neue Version derselben Lambda-Funktion verlagert.

  • Amazon ECS: Der Datenverkehr wird von einem Aufgabensatz in Ihrem Amazon ECS-Service auf einen neuen Aufgabensatz im selben Amazon ECS-Service verlagert.

  • EC2/Lokal: Der Datenverkehr wird von einer Gruppe von Instances in der ursprünglichen Umgebung auf einen neuen Satz von Instances verlagert.

Alle AWS Lambda- und Amazon ECS-Bereitstellungen sind Blau/Grün. Eine EC2/Lokal-Bereitstellung kann eine In-Situ- oder eine Blau/Grün-Bereitstellung sein. Blau/Grün-Bereitstellungen bieten einige Vorteile gegenüber In-Situ-Bereitstellungen:

  • Sie können eine Anwendung in der neuen Ersatzumgebung installieren und testen und für die Produktion bereitstellen, indem Sie den Datenverkehr einfach umleiten.

  • Wenn Sie die EC2/Lokal Plattform für die Datenverarbeitung nutzen, ist der Wechsel auf die neueste Version einer Anwendung schneller und zuverlässiger. Dies liegt daran, dass der Verkehr wieder an die ursprünglichen Instances umgeleitet werden kann, solange diese noch nicht beendet wurden. Bei einer In-Situ-Bereitstellung muss dagegen ein Rollback der Versionen durchgeführt werden, indem die vorherige Anwendungsversion bereitgestellt wird.

  • Wenn Sie die EC2/Lokal Plattform für die Datenverarbeitung verwenden, werden neue Instances für eine Blau/Grün-Bereitstellung bereitgestellt und spiegeln die aktuellsten Serverkonfigurationen. Auf diese Weise können Sie Probleme vermeiden, die manchmal bei lang laufenden Instances auftreten.

  • Wenn Sie die AWS Lambda Plattform für die Datenverarbeitung verwenden, können Sie steuern, wie Ihr Datenverkehr von Ihrer ursprünglichen AWS Lambda-Funktionsversion auf Ihre neue AWS Lambda-Funktionsversion verlagert wird.

  • Wenn Sie eine Amazon ECS Plattform für die Datenverarbeitung verwenden, steuern Sie, wie der Datenverkehr aus der ursprünglichen Aufgabengruppe in Ihre neue Aufgabengruppe verlagert wird.

Bei einer Blau/Grün-Bereitstellung mit AWS CloudFormation kann eine der folgenden Methoden verwendet werden:

  • AWS CloudFormation-Vorlagen für Bereitstellungen: Wenn Sie Bereitstellungen mit AWS CloudFormation-Vorlagen konfigurieren, werden Ihre Bereitstellungen durch AWS CloudFormation-Aktualisierungen ausgelöst. Wenn Sie eine Ressource ändern und eine Vorlagenänderung hochladen, wird die neue Bereitstellung durch eine Stack-Aktualisierung in AWS CloudFormation initiiert. Eine Liste der Ressourcen, die Sie in AWS CloudFormation-Vorlagen verwenden können, finden Sie unter Referenz für AWS CloudFormation-Vorlagen für CodeDeploy.

  • Blau/Grün-Bereitstellungen über AWS CloudFormation: Sie können AWS CloudFormation verwenden, um Ihre Blau/Grün-Bereitstellungen über Stack-Aktualisierungen zu verwalten. Sie definieren sowohl die blauen als auch die grünen Ressourcen zusätzlich zu den Einstellungen für das Routing und die Stabilisierung des Datenverkehrs innerhalb der Stack-Vorlage. Wenn Sie dann ausgewählte Ressourcen während einer Stack-Aktualisierung aktualisieren, generiert AWS CloudFormation alle erforderlichen grünen Ressourcen, verschiebt den Datenverkehr basierend auf den angegebenen Datenverkehrs-Weiterleitungsparametern und löscht die blauen Ressourcen. Weitere Informationen finden Sie unter Automatisieren von Amazon ECS-Blau/Grün-Bereitstellungen über CodeDeploy mithilfe von AWS CloudFormation im AWS CloudFormation Benutzerhandbuch.

    Anmerkung

    Wird nur für Amazon ECS-Blau/Grün-Bereitstellungen unterstützt.

Wie Sie eine Blau/Grün-Bereitstellung konfigurieren, hängt davon ab, welche Datenverarbeitungsplattform Ihre Bereitstellung verwendet.

Blau/Grün-Bereitstellung auf einer AWS Lambda-Datenverarbeitungsplattform

Wenn Sie die AWS Lambda Plattform für die Datenverarbeitung verwenden, müssen Sie eine der folgenden Bereitstellungskonfigurationstypen verwenden, um anzugeben, wie Datenverkehr von der ursprünglichen AWS Lambda-Funktionsversion auf die neue AWS Lambda-Funktionsversion verschoben wird:

  • Canary: Der Datenverkehr wird in zwei Inkrementen verschoben. Sie können aus vordefinierten Canary-Optionen wählen, die den prozentualen Anteil des Verkehrsaufkommens angeben, der im ersten Inkrementschritt an Ihre aktualisierte Lambda-Funktionsversion verschoben wird, sowie das Intervall in Minuten, bevor der restliche Datenverkehr im zweiten Inkrementschritt verschoben wird.

  • Linear: Der Datenverkehr wird in gleichmäßigen Inkrementen um die gleiche Anzahl von Minuten zwischen den einzelnen Inkrementen verschoben. Sie können aus vordefinierten linearen Optionen wählen, die den prozentualen Anteil des Datenverkehrs angeben, der in jedem Inkrementschritt verschoben wird, sowie die Anzahl der Minuten zwischen den einzelnen Inkrementschritten.

  • All-at-once: Der gesamte Datenverkehr wird von der ursprünglichen Lambda-Funktion auf einmal zu der aktualisierten Lambda-Funktionsversion verschoben.

Weitere Informationen zu AWS Lambda-Bereitstellungskonfigurationen finden Sie unter Vordefinierte Bereitstellungskonfigurationen für eine AWS Lambda-Datenverarbeitungsplattform .

Blau/Grün-Bereitstellung auf einer Amazon ECS-Datenverarbeitungsplattform

Wenn Sie die Amazon ECS Plattform für die Datenverarbeitung verwenden, müssen Sie eine der folgenden Bereitstellungskonfigurationstypen verwenden, um anzugeben, wie Datenverkehr aus dem ursprünglichen Amazon ECS-Aufgabensatz zum neuen Amazon ECS-Aufgabensatz verschoben wird:

  • Canary: Der Datenverkehr wird in zwei Inkrementen verschoben. Sie können aus vordefinierten Canary-Optionen wählen, die den prozentualen Anteil des Verkehrsaufkommens angeben, der im ersten Inkrementschritt an Ihren aktualisierte Amazon ECS-Aufgabensatz verschoben wird, sowie das Intervall in Minuten, bevor der restliche Datenverkehr im zweiten Inkrementschritt verschoben wird.

  • Linear: Der Datenverkehr wird in gleichmäßigen Inkrementen um die gleiche Anzahl von Minuten zwischen den einzelnen Inkrementen verschoben. Sie können aus vordefinierten linearen Optionen wählen, die den prozentualen Anteil des Datenverkehrs angeben, der in jedem Inkrementschritt verschoben wird, sowie die Anzahl der Minuten zwischen den einzelnen Inkrementschritten.

  • All-at-once: Der gesamte Datenverkehr wird in einem einzigen Schritt aus dem ursprünglichen Amazon ECS-Aufgabensatz zum aktualisierten Amazon ECS-Aufgabensatz verschoben.

Weitere Informationen zur Amazon ECS-Bereitstellungskonfiguration finden Sie unter Bereitstellungskonfigurationen auf einer Amazon ECS-Datenverarbeitungsplattform .

Blau/Grün-Bereitstellung auf einer EC2/On-Premise-Datenverarbeitungsplattform

Anmerkung

Für Blau/Grün-Bereitstellungen auf der EC2/Lokal Plattform für die Datenverarbeitung müssen Sie Amazon EC2-Instances verwenden. Lokale Instance-Typen werden für den Blau/Grün-Bereitstellungstyp nicht unterstützt.

Falls Sie die EC2/Lokal Plattform für die Datenverarbeitung verwenden, gilt Folgendes:

Sie müssen mindestens eine Amazon EC2-Instance mit identifizierenden Amazon EC2-Tags oder einer Amazon EC2 Auto Scaling-Gruppe haben. Die Instances müssen zusätzlich die folgenden Anforderungen erfüllen:

  • Jeder Amazon EC2-Instance muss das richtige IAM-Instance-Profil angefügt worden sein.

  • Der CodeDeploy-Agent muss installiert sein und auf jeder Instance ausgeführt werden.

Anmerkung

In der Regel wird auch auf den Instances der ursprünglichen Umgebung eine Anwendungsrevision ausgeführt, aber dies ist keine Voraussetzung für eine Blau/Grün-Bereitstellung.

Wenn Sie eine Bereitstellungsgruppe erstellen, die für Blau/Grün-Bereitstellungen verwendet wird, können Sie festlegen, wie die Ersatzumgebung angegeben wird:

Kopieren einer vorhandenen Amazon EC2 Auto Scaling-Gruppe: Während der Blau/Grün-Bereitstellung erstellt CodeDeploy die Instances für die Ersatzumgebung. Bei Auswahl dieser Option verwendet CodeDeploy die von Ihnen angegebene Amazon EC2 Auto Scaling-Gruppe als Vorlage für die Ersatzumgebung, einschließlich der gleichen Anzahl von ausgeführten Instances und vieler anderer Konfigurationsoptionen.

Instances manuell auswählen: Sie können mithilfe von Amazon EC2-Instance-Tags, Amazon EC2 Auto Scaling-Gruppennamen oder beiden angeben, welche Instances die Ersatzumgebung bilden sollen. Wenn Sie diese Option wählen, müssen Sie die Instances für die Ersatzumgebung erst beim Erstellen der Bereitstellung angeben.

Funktionsweise:

  1. Sie haben bereits Instances oder eine Amazon EC2 Auto Scaling-Gruppe, die als ursprüngliche Umgebung fungieren. Bei der ersten Durchführung einer Blau/Grün-Bereitstellung verwenden Sie in der Regel Instances, die bereits in einer In-Situ-Bereitstellung verwendet wurden.

  2. In einer vorhandenen CodeDeploy-Anwendung erstellen Sie eine Blau/Grün-Bereitstellungsgruppe, für die Sie neben den Optionen, die für eine In-Situ-Bereitstellung erforderlich sind, Folgendes angeben müssen:

    • Der Load Balancer, der den Datenverkehr während der Blau/Grün-Bereitstellung von der ursprünglichen Umgebung zur Ersatzumgebung umleitet.

    • Ob der Datenverkehr sofort an die Ersatzumgebung umgeleitet oder gewartet werden soll, bis Sie den Datenverkehr manuell umleiten.

    • Die Übertragungsgeschwindigkeit, mit welcher der Datenverkehr an die Ersatz-Instances umgeleitet werden soll.

    • Ob die Instances, die ersetzt werden, beendet oder weiterhin ausgeführt werden sollen.

  3. Sie erstellen eine Bereitstellung für diese Bereitstellungsgruppe, in deren Verlauf Folgendes geschieht:

    1. Wenn Sie die Option zum Kopieren einer Amazon EC2 Auto Scaling-Gruppe wählen, werden Instances für die Ersatzumgebung bereitgestellt.

    2. Die Anwendungsrevision, die Sie für die Bereitstellung angeben, wird auf den Ersatz-Instances installiert.

    3. Wenn Sie in den Bereitstellungsgruppeneinstellungen eine Wartezeit angeben, wird die Bereitstellung zeitweilig unterbrochen. In dieser Zeit können Sie die Ersatzumgebung testen und überprüfen. Wenn Sie den Datenverkehr nicht vor Ablauf der Wartezeit manuell umleiten, wird die Bereitstellung gestoppt.

    4. Die Instances in der Ersatzumgebung werden beim Elastic Load Balancing Load Balancer registriert und anschließend wird der Datenverkehr an sie umgeleitet.

    5. Die Registrierung der ursprünglichen Umgebung wird aufgehoben, und diese Instances werden entsprechend der Angaben in der Bereitstellungsgruppe entweder beendet oder weiterhin ausgeführt.

Blau/Grün-Bereitstellung über AWS CloudFormation

Sie können CodeDeploy-Blau/Grün-Bereitstellungen verwalten, indem Sie Ihre Ressourcen mit einer AWS CloudFormation-Vorlage modellieren.

Wenn Sie Ihre blauen/grünen Ressourcen mithilfe einer AWS CloudFormation-Vorlage modellieren, erstellen Sie eine Stack-Aktualisierung in AWS CloudFormation, die Ihren Aufgabensatz aktualisiert. Der Produktionsdatenverkehr verschiebt sich vom ursprünglichen Aufgabensatz Ihres Services in einen Ersatzaufgabensatz entweder auf einmal, mit linearen Bereitstellungen und Bake-Zeit, oder mit Canary-Bereitstellungen. Die Stack-Aktualisierung initiiert eine Bereitstellung in CodeDeploy. Sie können den Bereitstellungsstatus und den Verlauf in CodeDeploy anzeigen, anderweitig jedoch keine CodeDeploy-Ressourcen außerhalb der AWS CloudFormation-Vorlage erstellen oder verwalten.

Anmerkung

Bei Blau/Grün-Bereitstellungen über AWS CloudFormation erstellen Sie keine CodeDeploy-Anwendung oder -Bereitstellungsgruppe.

Diese Methode unterstützt nur Amazon ECS-Blau/Grün-Bereitstellungen. Weitere Informationen zu Blau/Grün-Bereitstellungen über AWS CloudFormation finden Sie unter Erstellen einer Amazon ECS-Blau/Grün-Bereitstellung über AWS CloudFormation.

Bitte geben Sie uns Feedback

Wir freuen uns über Ihr Feedback. Um Kontakt mit uns aufzunehmen, besuchen Sie das CodeDeploy-Forum.

Themen