Bereitstellungen auf einer EC2/lokalen Rechenplattform - AWS CodeDeploy

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.

Bereitstellungen auf einer EC2/lokalen Rechenplattform

Dieses Thema enthält Informationen zu den Komponenten und zum Arbeitsablauf von CodeDeploy Bereitstellungen, die die EC2/On-Premises-Computerplattform verwenden. Weitere Informationen zu Blau/Grün-Bereitstellungen finden Sie unter Überblick über eine blaue/grüne Bereitstellung.

Bereitstellungskomponenten auf einer EC2/lokalen Rechenplattform

Das folgende Diagramm zeigt die Komponenten einer CodeDeploy Bereitstellung auf einer EC2/lokalen Rechenplattform.

Die Komponenten in einer CodeDeploy Bereitstellung auf einer EC2/lokalen Rechenplattform.

Bereitstellungs-Workflow auf einer EC2/lokalen Rechenplattform

Das folgende Diagramm zeigt die wichtigsten Schritte in der Bereitstellung von Anwendungsrevisionen:

Die wichtigsten Schritte bei der Bereitstellung von Anwendungsrevisionen.

Zu diesen Schritten gehören:

  1. Erstellen Sie eine Anwendung und geben Sie ihr einen Namen, der die Anwendungsrevisionen, die Sie bereitstellen möchten, und die Rechenplattform für Ihre Anwendung eindeutig identifiziert. CodeDeploy verwendet diesen Namen während einer Bereitstellung, um sicherzustellen, dass er auf die richtigen Bereitstellungskomponenten verweist, z. B. die Bereitstellungsgruppe, die Bereitstellungskonfiguration und die Anwendungsversion. Weitere Informationen finden Sie unter Erstellen Sie eine Anwendung mit CodeDeploy.

  2. Richten Sie eine Bereitstellungsgruppe ein, indem Sie einen Bereitstellungstyp und die Instances angeben, für die Sie die Anwendungsrevisionen bereitstellen möchten. Eine In-Situ-Bereitstellung aktualisiert Instances mit der neuesten Anwendungsrevision. Ein Blau/Grün-Bereitstellung registriert eine Austauschgruppe von Instances für die Bereitstellungsgruppe bei einem Load Balancer und meldet die ursprünglichen Instances ab.

    Sie können die auf die Instances angewendeten Tags, die Amazon EC2 Auto Scaling Scaling-Gruppennamen oder beides angeben.

    Wenn Sie eine Gruppe von Tags in einer Bereitstellungsgruppe angeben, erfolgt die Bereitstellung CodeDeploy auf Instances, auf die mindestens eines der angegebenen Tags angewendet wurde. Wenn Sie zwei oder mehr Tag-Gruppen angeben, erfolgt CodeDeploy die Bereitstellung nur für die Instances, die die Kriterien für jede der Tag-Gruppen erfüllen. Weitere Informationen finden Sie unter Tagging Instances for Deployments.

    In allen Fällen müssen die Instances für die Verwendung in einer Bereitstellung konfiguriert sein (d. h. sie müssen markiert sein oder zu einer Amazon EC2 Auto Scaling Scaling-Gruppe gehören) und der CodeDeploy Agent muss installiert sein und ausgeführt werden.

    Wir stellen Ihnen eine AWS CloudFormation Vorlage zur Verfügung, mit der Sie schnell eine Amazon EC2 EC2-Instance auf Basis von Amazon Linux oder Windows Server einrichten können. Wir stellen Ihnen auch den eigenständigen CodeDeploy Agenten zur Verfügung, sodass Sie ihn auf Amazon Linux-, Ubuntu Server-, Red Hat Enterprise Linux (RHEL) - oder Windows Server-Instances installieren können. Weitere Informationen finden Sie unter Erstellen Sie eine Bereitstellungsgruppe mit CodeDeploy.

    Sie können auch die folgenden Optionen angeben:

    • Amazon SNS SNS-Benachrichtigungen. Erstellen Sie Auslöser, die Benachrichtigungen an Abonnenten eines Amazon SNS SNS-Themas senden, wenn bestimmte Ereignisse, wie Erfolgs- oder Fehlschlagsereignisse, in Bereitstellungen und Instances auftreten. Weitere Informationen finden Sie unter Monitoring Deployments with Amazon SNS Event Notifications.

    • Alarmbasierte Bereitstellungsverwaltung. Implementieren Sie Amazon CloudWatch Alarm Monitoring, um Bereitstellungen zu stoppen, wenn Ihre Messwerte die festgelegten Schwellenwerte über- oder unterschreiten. CloudWatch

    • Automatische Bereitstellungsrollbacks. Konfigurieren Sie das automatische Zurücksetzen einer Bereitstellung auf die letzte funktionierende Revision, wenn eine Bereitstellung fehlschlägt oder ein Alarmschwellenwert erreicht ist.

  3. Legen Sie eine Bereitstellungskonfiguration fest, um anzugeben, wie viele Instances Ihrer Anwendungsrevisionen gleichzeitig bereitgestellt werden sollen, und um die Bedingungen für Erfolg und Fehler für die Bereitstellung zu beschreiben. Weitere Informationen finden Sie unter View Deployment Configuration Details.

  4. Laden Sie eine Anwendungsrevision auf Amazon S3 hoch oder GitHub. Zusätzlich zu den Dateien, die Sie bereitstellen möchten, und allen Skripten, die Sie während der Bereitstellung ausführen möchten, müssen Sie eine Anwendungsspezifikationsdatei (AppSpec Datei) beifügen. Diese Datei enthält Bereitstellungsanweisungen, wie zum Beispiel wohin die Dateien auf jeder Instance kopiert werden und wann die Bereitstellungsskripts ausgeführt werden sollen. Weitere Informationen finden Sie unter Arbeiten mit Anwendungsrevisionen für CodeDeploy.

  5. Stellen Sie Ihre Anwendungsrevision für die Bereitstellungsgruppe bereit. Der CodeDeploy Agent auf jeder Instance in der Bereitstellungsgruppe kopiert Ihre Anwendungsversion von Amazon S3 oder GitHub in die Instance. Der CodeDeploy Agent entbündelt dann die Revision und kopiert die Dateien anhand der AppSpec Datei an die angegebenen Speicherorte und führt alle Bereitstellungsskripte aus. Weitere Informationen finden Sie unter Erstellen Sie eine Bereitstellung mit CodeDeploy.

  6. Überprüfen Sie die Bereitstellungsergebnisse. Weitere Informationen finden Sie unter Überwachung von Bereitstellungen in CodeDeploy.

  7. Stellen Sie eine Revision erneut bereit. Dies ist sinnvoll, wenn Sie einen Fehler im Quelleinhalt korrigieren müssen oder die Bereitstellungsskripts in einer anderen Reihenfolge ausführen möchten oder eine Bereitstellung fehlgeschlagen ist. Bündeln Sie dazu Ihren überarbeiteten Quellinhalt, alle Bereitstellungsskripten und die AppSpec Datei in eine neue Version und laden Sie die Version dann in den Amazon S3-Bucket oder das Amazon GitHub S3-Repository hoch. Anschließend führen Sie eine neue Bereitstellung für dieselbe Bereitstellungsgruppe mit der neuen Revision aus. Weitere Informationen finden Sie unter Erstellen Sie eine Bereitstellung mit CodeDeploy.

Instances einrichten

Sie müssen Instances einrichten, bevor Sie erstmalig Anwendungsrevisionen bereitstellen können. Wenn eine Anwendungsrevision drei Produktionsserver und zwei Backup-Server erfordert, starten oder verwenden Sie fünf Instances.

So stellen Sie Instances manuell bereit:

  1. Installieren Sie den CodeDeploy Agenten auf den Instanzen. Der CodeDeploy Agent kann auf Amazon Linux-, Ubuntu Server-, RHEL- und Windows Server-Instances installiert werden.

  2. Aktivieren Sie das Tagging, wenn Sie Tags verwenden, um Instances in einer Bereitstellungsgruppe zu identifizieren. CodeDeploy verwendet Tags, um Instanzen zu identifizieren und in CodeDeploy Bereitstellungsgruppen zu gruppieren. Im Tutorial "Erste Schritte" wurde zwar beides verwendet, aber Sie können einfach einen Schlüssel oder einen Wert verwenden, um ein Tag für eine Bereitstellungsgruppe zu definieren.

  3. Starten Sie Amazon EC2 EC2-Instances mit angehängtem IAM-Instance-Profil. Das IAM-Instance-Profil muss beim Start an eine Amazon EC2 EC2-Instance angehängt werden, damit der CodeDeploy Agent die Identität der Instance überprüfen kann.

  4. Erstellen Sie eine Servicerolle. Stellen Sie Servicezugriff bereit, damit Sie die Tags in Ihrem AWS Konto erweitern CodeDeploy können.

Bei einer ersten Bereitstellung erledigt die AWS CloudFormation Vorlage all dies für Sie. Es erstellt und konfiguriert neue, einzelne Amazon EC2 EC2-Instances auf Basis von Amazon Linux oder Windows Server, wobei der CodeDeploy Agent bereits installiert ist. Weitere Informationen finden Sie unter Arbeiten mit Instanzen für CodeDeploy.

Anmerkung

Für eine blaue/grüne Bereitstellung können Sie wählen, ob Sie bereits vorhandene Instances für die Ersatzumgebung verwenden oder sich im Rahmen des CodeDeploy Bereitstellungsprozesses neue Instances bereitstellen lassen möchten.

Die Revision Ihrer Anwendung wird hochgeladen

Platzieren Sie eine AppSpec Datei im Stammordner der Ordnerstruktur für den Quellinhalt Ihrer Anwendung. Weitere Informationen finden Sie unter Application Specification Files.

Verpacken Sie die Quellinhalts-Ordnerstruktur der Anwendung in ein Archivdateiformat, beispielsweise ZIP, TAR oder komprimiertes TAR. Laden Sie die Archivdatei (die Revision) in einen Amazon S3-Bucket oder ein Amazon GitHub S3-Repository hoch.

Anmerkung

Die Tar- und komprimierten Tar-Archivdateiformate (.tar und .tar.gz) werden für Windows Server-Instances nicht unterstützt.

Erstellen Sie Ihre Anwendungs- und Bereitstellungsgruppen

Eine CodeDeploy Bereitstellungsgruppe identifiziert eine Sammlung von Instances anhand ihrer Tags, Amazon EC2 Auto Scaling Scaling-Gruppennamen oder beidem. Es können mehrere Anwendungsrevisionen für dieselbe Instance bereitgestellt werden. Eine Anwendungsrevision kann für mehrere Instances bereitgestellt werden.

Sie können beispielsweise das Tag "Prod" zu den drei Produktionsservern und "Backup" zu den beiden Backup-Servern hinzufügen. Diese beiden Tags können verwendet werden, um zwei verschiedene Bereitstellungsgruppen in der CodeDeploy Anwendung zu erstellen, sodass Sie wählen können, welcher Serversatz (oder beide) an einer Bereitstellung teilnehmen soll.

Sie können mehrere Tag-Gruppen in einer Bereitstellungsgruppe verwenden, um Bereitstellungen auf eine kleinere Auswahl von Instances einzuschränken. Weitere Informationen finden Sie unter Tagging Instances for Deployments.

Revision Ihrer Anwendung bereitstellen

Jetzt sind Sie bereit, Ihre Anwendungsrevision von Amazon S3 oder GitHub in der Bereitstellungsgruppe bereitzustellen. Sie können die CodeDeploy Konsole oder den Befehl create-deployment verwenden. Es gibt Parameter, die Sie angeben können, um Ihre Bereitstellung zu steuern, einschließlich der Revision, Bereitstellungsgruppe und Bereitstellungskonfiguration.

Aktualisierung Ihrer Anwendung

Sie können Ihre Anwendung aktualisieren und dann die CodeDeploy Konsole verwenden oder den Befehl create-deployment aufrufen, um eine Version zu pushen.

Bereitstellungen wurden gestoppt und sind fehlgeschlagen

Sie können die CodeDeploy Konsole oder den Befehl stop-deployment verwenden, um eine Bereitstellung zu beenden. Wenn Sie versuchen, die Bereitstellung zu stoppen, gibt es drei Möglichkeiten:

  • Die Bereitstellung wird beendet, und die Operation gibt den Status "Erfolgreich" zurück. In diesem Fall werden keine Bereitstellungslebenszyklusereignisse mehr für die Bereitstellungsgruppe für die gestoppte Bereitstellung ausgeführt. Einige Dateien wurden möglicherweise bereits kopiert und einige Skripte bereits für eine oder mehrere der Instances in der Bereitstellungsgruppe ausgeführt.

  • Die Bereitstellung wird nicht sofort beendet, und die Operation gibt den Status "Ausstehend" zurück. In diesem Fall werden einige Bereitstellungslebenszyklusereignisse in der Bereitstellungsgruppe weiterhin ausgeführt. Einige Dateien wurden möglicherweise bereits kopiert und einige Skripte bereits für eine oder mehrere der Instances in der Bereitstellungsgruppe ausgeführt. Nachdem die ausstehende Operation abgeschlossen ist, geben nachfolgende Aufrufe zum Stoppen der Bereitstellung den Status "Erfolgreich" zurück.

  • Die Bereitstellung kann nicht gestoppt werden, und der Vorgang gibt einen Fehler zurück. Weitere Informationen finden Sie unter ErrorInformationHäufige Fehler in der AWS CodeDeploy API-Referenz.

Genauso wie gestoppte Bereitstellungen können fehlgeschlagene Bereitstellungen dazu führen, dass einige Ereignisse im Bereitstellungslebenszyklus bereits für eine oder mehrere Instances in der Bereitstellungsgruppe ausgeführt wurden. Um herauszufinden, warum eine Bereitstellung fehlgeschlagen ist, können Sie die CodeDeploy Konsole verwenden, den get-deployment-instanceBefehl aufrufen oder die Protokolldateidaten der fehlgeschlagenen Bereitstellung analysieren. Weitere Informationen finden Sie unter Revision der Anwendung und Bereinigung der Protokolldateien und Protokolldaten für CodeDeploy EC2/On-Premises-Bereitstellungen anzeigen.

Erneute Bereitstellungen und Bereitstellungs-Rollbacks

CodeDeploy implementiert Rollbacks, indem eine zuvor bereitgestellte Version als neue Bereitstellung erneut bereitgestellt wird.

Sie können eine Bereitstellungsgruppe für automatisches Rollback konfigurieren, wenn bestimmte Bedingungen erfüllt sind, einschließlich wenn eine Bereitstellung fehlschlägt oder ein Alarm-Überwachungsschwellenwert erreicht ist. Sie können auch die Rollback-Einstellungen für eine Bereitstellungsgruppe in einer einzelnen Bereitstellung überschreiben.

Sie können außerdem ein Rollback einer fehlgeschlagenen Bereitstellung durch erneute manuelle Bereitstellung einer zuvor bereitgestellten Revision durchführen.

In allen Fällen wird der neuen oder rückabgewickelten Bereitstellung eine eigene Bereitstellungs-ID zugewiesen. Die Liste der Bereitstellungen, die Sie in der CodeDeploy Konsole einsehen können, zeigt, welche das Ergebnis einer automatischen Bereitstellung sind.

Weitere Informationen finden Sie unter Eine Bereitstellung erneut bereitstellen und rückgängig machen mit CodeDeploy.