Integration CodeDeploy mit ELB - 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.

Integration CodeDeploy mit ELB

Während der CodeDeploy Bereitstellung verhindert ein Load Balancer, dass Internet-Traffic an Instances weitergeleitet wird, wenn diese nicht bereit sind, für die sie gerade bereitgestellt werden oder als Teil einer Umgebung nicht mehr benötigt werden. Die genaue Rolle, die der Load Balancer spielt, hängt jedoch davon ab, ob er in einer blue/green Bereitstellung oder einer Bereitstellung vor Ort verwendet wird.

Anmerkung

Die Verwendung von Elastic Load Balancing Load Balancing-Load Balancern ist in blue/green Bereitstellungen obligatorisch und in In-Place-Bereitstellungen optional.

ELB-Typen

ELB bietet drei Arten von Load Balancern, die in CodeDeploy Bereitstellungen verwendet werden können: Classic Load Balancers, Application Load Balancers und Network Load Balancers.

Classic Load Balancer

Routen und Lastenausgleich entweder auf der Transportschicht (). TCP/SSL) or the application layer (HTTP/HTTPS Es unterstützt eine VPC.

Anmerkung

Classic Load Balancer werden bei Amazon ECS-Bereitstellungen nicht unterstützt.

Application Load Balancer

Führt das Routing und den Lastenausgleich auf Anwendungsebene (HTTP/HTTPS) durch und unterstützt das pfadbasierte Routing. Es kann Anfragen an Ports auf jeder EC2 Instance oder Container-Instance in Ihrer Virtual Private Cloud (VPC) weiterleiten.

Anmerkung

Die Application Load Balancer Balancer-Zielgruppen müssen den Zieltyp instance für Bereitstellungen auf EC2 Instances und IP für Fargate-Bereitstellungen haben. Weitere Informationen finden Sie unter Zieltyp.

Network Load Balancer

Routen und Lastenausgleich auf der Transportschicht (TCP/UDP Layer-4) basieren auf Adressinformationen, die aus dem TCP-Paket-Header und nicht aus dem Paketinhalt extrahiert wurden. Network Load Balancers können Datenverkehrsspitzen verarbeiten, die Quell-IP-Adresse des Clients beibehalten und eine feste IP für die Nutzungsdauer des Load Balancers verwenden.

Weitere Informationen zu ELB-Load Balancern finden Sie in den folgenden Themen:

Blau/Grün-Bereitstellungen

Die Umleitung von Instance-Traffic hinter einem Elastic Load Balancing Load Balancer ist für Bereitstellungen von grundlegender Bedeutung. CodeDeploy blue/green

Während einer blue/green Bereitstellung ermöglicht der Load Balancer die Weiterleitung des Datenverkehrs an die neuen Instances in einer Bereitstellungsgruppe, in der die neueste Anwendungsversion bereitgestellt wurde (die Ersatzumgebung), gemäß den von Ihnen angegebenen Regeln, und blockiert dann den Datenverkehr von den alten Instances, auf denen die vorherige Anwendungsrevision lief (die ursprüngliche Umgebung).

Nachdem Instances in einer Ersatzumgebung bei einem oder mehreren Load Balancern registriert wurden, werden Instances aus der ursprünglichen Umgebung deregistriert und, falls Sie dies wünschen, beendet.

Für eine blue/green Bereitstellung können Sie eine oder mehrere Classic Load Balancer, Application Load Balancer-Zielgruppen oder Network Load Balancer Balancer-Zielgruppen in Ihrer Bereitstellungsgruppe angeben. Sie verwenden die CodeDeploy Konsole oder AWS CLI um die Load Balancer zu einer Bereitstellungsgruppe hinzuzufügen.

Weitere Informationen zu Load Balancern in blue/green Bereitstellungen finden Sie in den folgenden Themen:

In-Situ-Bereitstellungen

Während einer In-Situ-Bereitstellung verhindert ein Load Balancer, dass Internetdatenverkehr an eine Instance weitergeleitet wird, solange die Bereitstellung ausgeführt wird, und macht die Instance anschließend, wenn die Bereitstellung für sie abgeschlossen wurde, wieder für den Datenverkehr verfügbar.

Wenn in einer In-Situ-Bereitstellung kein Load Balancer verwendet wird, kann Internetdatenverkehr während des Bereitstellungsvorgangs an Instances geleitet werden. Ihre Kunden finden dann möglicherweise fehlerhafte, unvollständige oder veraltete Webanwendungen vor. Wenn Sie einen Elastic Load Balancing Load Balancer mit einer In-Place-Bereitstellung verwenden, werden Instances in einer Bereitstellungsgruppe vom Load Balancer abgemeldet, mit der neuesten Anwendungsversion aktualisiert und dann nach erfolgreicher Bereitstellung erneut beim Load Balancer als Teil derselben Bereitstellungsgruppe registriert. CodeDeploy wartet bis zu 1 Stunde, bis die Instance hinter dem Load Balancer wieder funktionsfähig ist. Wenn die Instance während der Wartezeit vom Load Balancer nicht als fehlerfrei markiert wird, wird CodeDeploy entweder zur nächsten Instance übergegangen oder die Bereitstellung schlägt aufgrund der Bereitstellungskonfiguration fehl.

Für eine direkte Bereitstellung können Sie eine oder mehrere Classic Load Balancer, Application Load Balancer-Zielgruppen oder Network Load Balancer Balancer-Zielgruppen angeben. Sie können die Load Balancer als Teil der Konfiguration der Bereitstellungsgruppe angeben, oder Sie können ein von bereitgestelltes Skript verwenden, um die Load Balancer CodeDeploy zu implementieren.

Geben Sie den Load Balancer für die direkte Bereitstellung mithilfe einer Bereitstellungsgruppe an

Um Load Balancer zu einer Bereitstellungsgruppe hinzuzufügen, verwenden Sie die CodeDeploy Konsole oder. AWS CLI Weitere Informationen zur Angabe eines Load Balancers in einer Bereitstellungsgruppe bei In-Situ-Bereitstellungen finden Sie in den folgenden Themen:

Geben Sie den Load Balancer für die direkte Bereitstellung mithilfe eines Skripts an

Befolgen Sie die Schritte im folgenden Verfahren, um Bereitstellungslebenszyklusskripts zum Einrichten des Load Balancers für In-Situ-Bereitstellungen zu verwenden.

Anmerkung

Sie sollten den verwenden. CodeDeployDefault OneAtATime Bereitstellungskonfiguration nur, wenn Sie ein Skript verwenden, um einen Load Balancer für eine direkte Bereitstellung einzurichten. Gleichzeitige Läufe werden nicht unterstützt, und die. CodeDeployDefault OneAtATime Diese Einstellung gewährleistet eine serielle Ausführung der Skripte. Weitere Informationen zu Bereitstellungskonfigurationen finden Sie unter Arbeiten mit Bereitstellungskonfigurationen in CodeDeploy.

Im CodeDeploy Samples-Repository finden Sie Anleitungen und Beispiele GitHub, die Sie an die Verwendung von CodeDeploy ELB-Loadbalancern anpassen können. Diese Repositorien enthalten drei Beispielskripte —register_with_elb.sh, und common_functions.shderegister_from_elb.sh, die den gesamten Code enthalten, den Sie für den Einstieg benötigen. Bearbeiten Sie einfach die Platzhalter in diesen drei Skripts, und verweisen Sie dann aus der Datei appspec.yml auf diese Skripts.

Gehen Sie wie folgt vor, um In-Place-Bereitstellungen CodeDeploy mit EC2 Amazon-Instances einzurichten, die bei ELB Load Balancers registriert sind:

  1. Laden Sie die Beispiele für den Load-Balancer-Typ herunter, den Sie für eine In-Situ-Bereitstellung verwenden möchten:

  2. Stellen Sie sicher, dass auf jeder Ihrer EC2 Amazon-Ziel-Instances die AWS CLI installiert ist.

  3. Stellen Sie sicher, dass jeder Ihrer EC2 Amazon-Ziel-Instances ein IAM-Instance-Profil mit mindestens den Berechtigungen elasticloadbalancing: * und autoscaling: * zugewiesen ist.

  4. Fügen Sie im Quellcodeverzeichnis Ihrer Anwendung die Bereitstellungslebenszyklus-Ereignisskripts (register_with_elb.sh, deregister_from_elb.sh und common_functions.sh) hinzu.

  5. Geben Sie in der Version appspec.yml für die Anwendung Anweisungen CodeDeploy zur Ausführung des Skripts während des ApplicationStartEreignisses und des register_with_elb.sh Skripts während des Ereignisses anderegister_from_elb.sh. ApplicationStop

  6. Wenn die Instance Teil einer Amazon EC2 Auto Scaling Scaling-Gruppe ist, können Sie diesen Schritt überspringen.

    Im common_functions.sh-Skript:

    • Wenn Sie den Classic Load Balancer verwenden, geben Sie die Namen der ELB-Load Balancer in ELB_LIST="" an und nehmen Sie alle erforderlichen Änderungen an den anderen Bereitstellungseinstellungen in der Datei vor.

    • Wenn Sie den Application Load Balancer oder den Network Load Balancer verwenden, geben Sie die Namen der ELB-Zielgruppen unter an und nehmen Sie alle erforderlichen Änderungen an den anderen Bereitstellungseinstellungen in der Datei vor. TARGET_GROUP_LIST=""

  7. Bündeln Sie den Quellcode der Anwendung, die appspec.yml und die Bereitstellungslebenszyklus-Ereignisskripts in einer Anwendungsrevision, und laden Sie diese dann hoch. Stellen Sie die Revision auf den EC2 Amazon-Instances bereit. Während der Bereitstellung melden die Skripte für das Deployment-Lifecycle-Ereignis die EC2 Amazon-Instance beim Load Balancer ab, warten, bis die Verbindung leer ist, und registrieren die EC2 Amazon-Instance nach Abschluss der Bereitstellung erneut beim Load Balancer.