

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.

# Erstellen einer Amazon ECS-Canary-Bereitstellung
<a name="deploy-canary-service"></a>

Durch die Verwendung von Amazon ECS Canary-Bereitstellungen können Sie einen kleinen Teil des Datenverkehrs auf Ihre neue Service-Revision (die „Canary“) verlagern. Überprüfen Sie die Bereitstellung und verlagern Sie dann den verbleibenden Datenverkehr nach einem bestimmten Intervall auf einmal. Dieser Ansatz ermöglicht es Ihnen, neue Funktionen vor der vollständigen Bereitstellung mit minimalem Risiko zu testen.

## Voraussetzungen
<a name="deploy-canary-service-prerequisites"></a>

Führen Sie die folgenden Schritte durch, bevor Sie eine Bereitstellung auf Canary starten.

1. Konfigurieren Sie die entsprechenden Berechtigungen.
   + Weitere Informationen zu den erforderlichen Berechtigungen für Elastic Load Balancing finden Sie unter [Amazon-ECS-IAM-Infrastrukturrolle für Load Balancer](AmazonECSInfrastructureRolePolicyForLoadBalancers.md).
   + Weitere Informationen zu Lambda-Berechtigungen finden Sie unter [Erforderliche Berechtigungen für Lambda-Funktionen in Amazon ECS-Bereitstellungen blue/green](blue-green-permissions.md).

1. Für Bereitstellungen von Amazon ECS Canary muss Ihr Service eine der folgenden Funktionen verwenden: Konfigurieren Sie die entsprechenden Ressourcen.
   + Application Load Balancer – Weitere Informationen finden Sie unter [Application Load Balancer Balancer-Ressourcen für blue/green lineare und kanarische Bereitstellungen](alb-resources-for-blue-green.md).
   + Network Load Balancer – Weitere Informationen finden Sie unter [Network Load Balancer Balancer-Ressourcen für Amazon ECS- blue/green, lineare und kanarische Bereitstellungen](nlb-resources-for-blue-green.md).
   + Service Connect – Weitere Informationen finden Sie unter [Service Connect-Ressourcen für Amazon ECS- blue/green, lineare und kanarische Bereitstellungen](service-connect-blue-green.md).

## Verfahren
<a name="deploy-canary-service-procedure"></a>

Sie können die Konsole oder die verwenden AWS CLI , um einen Amazon ECS Canary-Bereitstellungsservice zu erstellen.

------
#### [ Console ]

1. Öffnen Sie die Konsole unter [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. Bestimmen Sie die Ressource, von der aus Sie den Service starten.    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/AmazonECS/latest/developerguide/deploy-canary-service.html)

   Die Seite **Service erstellen** wird angezeigt.

1. Führen Sie unter **Service-Details** die folgenden Schritte aus:

   1. Wählen Sie für **Aufgabendefinitionsfamilie** die zu verwendende Aufgabendefinition aus. Geben Sie dann unter **Revision der Aufgabendefinition** die zu verwendende Revision ein.

   1. Wählen Sie für **Service name** (Servicename) einen Namen für Ihren Service aus.

1. Um den Service in einem vorhandenen Cluster auszuführen, wählen Sie unter **Vorhandener Cluster** den Cluster aus. Um den Service in einem neuen Cluster auszuführen, wählen Sie **Cluster erstellen** aus 

1. Wählen Sie aus, wie Ihre Aufgaben auf Ihre Cluster-Infrastruktur verteilt werden. Wählen Sie unter **Datenverarbeitungskonfiguration** Ihre Option aus.    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/AmazonECS/latest/developerguide/deploy-canary-service.html)

1. Führen Sie im Abschnitt **Bereitstellungskonfiguration** Folgendes aus:

   1. Wählen Sie für **Service-Typ** die Option **Replikat** aus.

   1. Geben Sie für **Desired tasks** (Gewünschte Aufgaben) die Anzahl der Aufgaben an, die im Service gestartet und aufrecht erhalten werden sollen.

   1. Damit Amazon ECS die Verteilung der Aufgaben auf die Availability Zones überwacht und sie bei einem Ungleichgewicht neu verteilt, wählen Sie unter **Service-Neuausgleich der Availability Zone** die Option **Service-Neuausgleich der Availability Zone** aus.

   1. Geben Sie für **Wartefrist der Zustandsprüfung** die Zeitspanne (in Sekunden) ein, die der Service Scheduler fehlerhafte Elastic-Load-Balancing-, VPC-Lattice- und Container-Zustandsprüfungen ignoriert, nachdem eine Aufgabe zum ersten Mal gestartet wurde. Wenn Sie keine Übergangsfrist für die Zustandsprüfung angeben, wird der Standardwert 0 verwendet.

1. Konfigurieren Sie unter **Bereitstellungskonfiguration** die Bereitstellungseinstellungen von Canary:

   1. Wählen Sie als **Bereitstellungsstrategie** **Canary** aus.

   1. Geben Sie für **Canary-Prozentsatz** den Prozentsatz des Traffics ein, der in der ersten Phase auf die Green Service-Version umgestellt werden soll (z. B. 10% für den anfänglichen Canary-Verkehr).

   1. Geben Sie für **Canary Bake Time** die Wartezeit in Minuten ein, bis der verbleibende Traffic auf die Green-Service-Version umgestellt wird.

   1. Geben Sie unter **Backzeit** die Anzahl der Minuten ein, für die sowohl die blaue als auch die grüne Version nach der letzten Verkehrsverlagerung gleichzeitig ausgeführt werden, bevor die blaue Version beendet wird.

   1. (Optional) Führen Sie Lambda-Funktionen in bestimmten Phasen der Bereitstellung aus. Wählen Sie unter **Bereitstellungs-Lebenszyklus-Hooks** die Phasen aus, in denen die Lebenszyklus-Hooks ausgeführt werden sollen.

      So fügen Sie einen Lebenszyklus-Hook hinzu:

      1. Wählen Sie **Hinzufügen** aus.

      1. Geben Sie für **Lambda-Funktion** den Funktionsnamen oder ARN ein.

      1. Wählen Sie für **Rolle** die IAM-Rolle aus, die berechtigt ist, die Lambda-Funktion aufzurufen.

      1. Wählen Sie für **Lebenszyklusphasen** die Phasen aus, in denen die Lambda-Funktion ausgeführt werden soll.

1. Um zu konfigurieren, wie Amazon ECS Bereitstellungsfehler erkennt und behandelt, erweitern Sie **Deployment failure detection** (Erkennung von Bereitstellungsfehlern) und wählen Sie dann Ihre Optionen. 

   1. Um eine Bereitstellung anzuhalten, wenn die Aufgaben nicht gestartet werden können, wählen Sie **Use the Amazon ECS deployment circuit breaker** (Verwenden des Amazon-ECS-Bereitstellungsschutzschalters).

      Wenn Sie möchten, dass die Software die Bereitstellung automatisch auf den letzten abgeschlossenen Bereitstellungsstatus zurücksetzt, wenn der Bereitstellungs-Schutzschalter die Bereitstellung auf einen fehlgeschlagenen Status setzt, wählen Sie **Rollback bei Fehler** aus.

   1. Um eine Bereitstellung auf der Grundlage von Anwendungsmetriken zu beenden, wählen Sie ** CloudWatch Alarm (en) verwenden** aus. Wählen Sie dann unter **CloudWatch Alarmname** die Alarme aus. Um einen neuen Alarm zu erstellen, gehen Sie zur CloudWatch Konsole.

      Damit die Software die Bereitstellung automatisch auf den Status der letzten abgeschlossenen Bereitstellung zurücksetzt, wenn ein CloudWatch Alarm die Bereitstellung in einen fehlgeschlagenen Zustand versetzt, wählen Sie **Rollback bei Fehlern**.

1. (Optional) Um Ihren Service mit Service Connect zu verbinden, erweitern Sie **Service Connect** und geben Sie dann Folgendes an:

   1.  Wählen Sie **Service Connect einschalten** aus.

   1. Geben Sie unter **Service Connect configuration** (Service-Connect-Konfiguration) den Client-Modus an.
      + Wenn Ihr Service eine Netzwerk-Client-Anwendung ausführt, die nur eine Verbindung zu anderen Services im Namespace herstellen muss, wählen Sie **Nur Client-Seite** aus.
      + Wenn Ihr Service eine Netzwerk- oder Webservice-Anwendung ausführt und Endpunkte für diesen Service bereitstellen muss und eine Verbindung zu anderen Services im Namespace herstellt, wählen Sie **Client and server** (Client und Server) aus.

   1. Um einen Namespace zu verwenden, der nicht der Standard-Cluster-Namespace ist, wählen Sie für **Namespace** den Service-Namespace aus. Dies kann ein Namespace sein, der separat in demselben AWS-Region in Ihrem AWS-Konto oder einem Namespace in derselben Region erstellt wurde und der mithilfe AWS Resource Access Manager von () mit Ihrem Konto geteilt wird.AWS RAM*Weitere Informationen zu gemeinsam genutzten AWS Cloud Map Namespaces finden Sie unter [Cross-account AWS Cloud Map Namespaces](https://docs.aws.amazon.com/cloud-map/latest/dg/sharing-namespaces.html) Sharing im Developer Guide.AWS Cloud Map *

   1. (Optional) Konfigurieren Sie Test-Traffic-Header-Regeln für Canary-Bereitstellungen. Geben Sie unter **Test-Datenverkehrs-Routing** Folgendes an:

      1. Wählen Sie **Header-Regeln für Test-Datenverkehr aktivieren** aus, um während des Tests bestimmte Anfragen an die grüne Service-Revision weiterzuleiten.

      1. Konfigurieren Sie für **Regeln für den Header-Abgleich** die Kriterien für das Routing von Test-Datenverkehr:
         + **Header-Name**: Geben Sie den Namen des HTTP-Headers ein, dem der Abgleich entsprechen soll (z. B. `X-Test-Version` oder `User-Agent`).
         + **Übereinstimmungstyp**: Wählen Sie die Kriterien für den Abgleich aus:
           + **Exakte Übereinstimmung**: Leitet Anfragen weiter, bei denen der Header-Wert genau dem angegebenen Wert entspricht
           + **Header vorhanden**: Leitet Anfragen weiter, die den angegebenen Header enthalten, unabhängig vom Wert
           + **Musterübereinstimmung**: Leitet Anfragen weiter, bei denen der Header-Wert einem bestimmten Muster entspricht
         + **Header-Wert** (wenn „Exakte Übereinstimmung“ oder „Musterübereinstimmung“ verwendet wird): Geben Sie den Wert oder das Muster ein, mit dem abgeglichen werden soll.

         Sie können mehrere Header-Abgleichsregeln hinzufügen, um eine komplexe Routing-Logik zu erstellen. Anfragen, die einer der konfigurierten Regeln entsprechen, werden zum Testen an die grüne Service-Revision weitergeleitet.

      1. Wählen Sie **Header-Regel hinzufügen**, um zusätzliche Bedingungen für den Header-Abgleich zu konfigurieren.
**Anmerkung**  
Mithilfe von Header-Regeln für den Test-Datenverkehr können Sie neue Funktionen mit kontrolliertem Datenverkehr validieren, bevor Sie die vollständige Bereitstellung abschließen. Auf diese Weise können Sie die grüne Service-Revision mit spezifischen Anfragen (z. B. von internen Testtools oder Beta-Benutzern) testen und gleichzeitig den normalen Datenfluss zur blauen Service-Revision aufrechterhalten.

   1. (Optional) Geben Sie eine Protokollkonfiguration an. Wählen Sie **Protokollsammlung verwenden** aus. Die Standardoption sendet Container-Logs an CloudWatch Logs. Die anderen Protokolltreiberoptionen werden mit konfiguriert AWS FireLens. Weitere Informationen finden Sie unter [Amazon ECS-Protokolle an einen AWS Service senden oder AWS Partner](using_firelens.md).

      Im Folgenden wird jedes Container-Protokollziel ausführlicher beschrieben.
      + **Amazon CloudWatch** — Konfigurieren Sie die Aufgabe, um Container-Logs an CloudWatch Logs zu senden. Es werden die standardmäßigen Protokolltreiberoptionen bereitgestellt, mit denen in Ihrem Namen eine CloudWatch Protokollgruppe erstellt wird. Um einen anderen Protokollgruppen-Namen anzugeben, ändern Sie die Werte der Treiberoption.
      + **Amazon Data Firehose** – Konfigurieren Sie die Aufgabe, dass Container-Protokolle an Firehose gesendet werden. Die Standardoptionen für den Protokolltreiber werden bereitgestellt, wodurch die Protokolle an einen Bereitstellungsdatenstrom von Firehose gesendet werden. Um einen anderen Namen für den Bereitstellungsdatenstrom anzugeben, ändern Sie die Werte der Treiberoption.
      + **Amazon Kinesis Data Streams** – Konfigurieren Sie die Aufgabe, dass Container-Protokolle an Kinesis Data Streams gesendet werden. Die Standardoptionen für den Protokolltreiber werden bereitgestellt, wodurch Protokolle an einen Datenstrom von Kinesis Data Streams gesendet werden. Um einen anderen Datenstrom-Namen anzugeben, ändern Sie die Werte der Treiberoption.
      + **Amazon OpenSearch Service** — Konfigurieren Sie die Aufgabe, um Container-Logs an eine OpenSearch Service-Domain zu senden. Die Optionen für den Protokolltreiber müssen bereitgestellt werden. 
      + **Amazon S3** – Konfigurieren Sie die Aufgabe, dass Container-Protokolle an einen Amazon-S3-Bucket gesendet werden. Die Standardoptionen für den Protokolltreiber werden bereitgestellt, Sie müssen jedoch einen gültigen Amazon-S3-Bucket-Namen angeben.

1. (Optional) Konfigurieren Sie den **Lastenausgleich** für die Bereitstellung auf Canary.    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/AmazonECS/latest/developerguide/deploy-canary-service.html)

1. (Optional) Um Ihren Service und Ihre Aufgaben besser identifizieren zu können, erweitern Sie den Bereich **Tags** (Tags) und konfigurieren Sie dann Ihre Tags.

   Damit Amazon ECS alle neu gestarteten Aufgaben automatisch mit Tags für den Clusternamen und den Aufgabendefinitions-Tags versieht, wählen Sie **Amazon ECS Managed Tags einschalten** und dann für **Tags verbreiten von** die Option **Aufgabendefinitionen**.

   Damit Amazon ECS alle neu gestarteten Aufgaben automatisch mit Tags für den Clustername und die Service-Tags versieht, wählen Sie **Amazon ECS Managed Tags** einschalten und dann für **Tags verbreiten von** die Option **Service**.

   Hinzufügen oder Entfernen eines Tag.
   + [Ein Tag hinzufügen] Wählen Sie **Add tag** (Tag hinzufügen) und führen Sie dann das Folgende aus:
     + Geben Sie bei **Key (Schlüssel)** den Schlüsselnamen ein.
     + Geben Sie bei **Value (Wert)** den Wert des Schlüssels ein.
   + [Tag entfernen] Wählen Sie neben dem Tag die Option **Remove tag (Tag löschen)** aus.

1. Wählen Sie **Erstellen** aus.

------
#### [ AWS CLI ]

1. Erstellen Sie eine Datei mit dem Namen `canary-service-definition.json` und dem folgenden Inhalt.

   Ersetzen Sie die durch Ihre {{user-input}} Werte.

   ```
   {
     "serviceName": "myCanaryService",
     "cluster": "arn:aws:ecs:us-west-2:123456789012:cluster/sample-fargate-cluster",
     "taskDefinition": "sample-fargate:1",
     "desiredCount": 5,
     "launchType": "FARGATE",
     "networkConfiguration": {
       "awsvpcConfiguration": {
         "subnets": [
           "subnet-09ce6e74c116a2299",
           "subnet-00bb3bd7a73526788",
           "subnet-0048a611aaec65477"
         ],
         "securityGroups": [
           "sg-09d45005497daa123"
         ],
         "assignPublicIp": "ENABLED"
       }
     },
     "deploymentController": {
       "type": "ECS"
     },
     "deploymentConfiguration": {
       "strategy": "CANARY",
       "maximumPercent": 200,
       "minimumHealthyPercent": 100,
       "canaryConfiguration" : {
           "canaryPercent" : 5.0,
           "canaryBakeTime" : 10
       },
       "bakeTimeInMinutes": 10,
       "alarms": {
         "alarmNames": [
           "myAlarm"
         ],
         "rollback": true,
         "enable": true
       }
     },
     "loadBalancers": [
       {
         "targetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/blue-target-group/54402ff563af1197",
         "containerName": "fargate-app",
         "containerPort": 80,
         "advancedConfiguration": {
           "alternateTargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/green-target-group/cad10a56f5843199",
           "productionListenerRule": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-canary-demo/32e0e4f946c3c05b/9cfa8c482e204f7d/831dbaf72edb911",
           "roleArn": "arn:aws:iam::123456789012:role/LoadBalancerManagementforECS"
         }
       }
     ]
   }
   ```

1. Führen Sie `create-service`.

   ```
   aws ecs create-service --cli-input-json file://canary-service-definition.json
   ```

------

## Nächste Schritte
<a name="deploy-canary-service-next-steps"></a>

Gehen Sie nach der Konfiguration Ihrer Canary-Bereitstellung wie folgt vor:
+ Aktualisieren Sie den Service, um die Bereitstellung zu starten. Weitere Informationen finden Sie unter [Aktualisierung eines Amazon ECS-Service](update-service-console-v2.md).
+ Überwachen Sie den Bereitstellungsprozess, um sicherzustellen, dass er dem Canary-Muster folgt:
  + Die grüne Service-Revision wurde erstellt und hochskaliert
  + Ein kleiner Teil des Traffics (Canary) wird auf die grüne Version umgestellt
  + Das System wartet auf das angegebene kanarische Intervall
  + Der restliche Verkehr wird auf einmal auf die grüne Version umgestellt
  + Nach Ablauf der Bake-Zeit wird die blaue Revision beendet