

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.

# Tutorial: Bereitstellen einer Anwendung in Amazon ECS
<a name="tutorial-ecs-deployment"></a>

 In diesem Tutorial erfahren Sie, wie Sie eine Anwendung in Amazon ECS mithilfe von bereitstellen CodeDeploy. Sie beginnen mit einer Anwendung, die Sie bereits erstellt und in Amazon ECS bereitgestellt haben. Der erste Schritt besteht darin, Ihre Anwendung zu aktualisieren, indem Sie ihre Aufgabendefinitionsdatei mit einem neuen Tag ändern. Als Nächstes verwenden Sie, CodeDeploy um das Update bereitzustellen. CodeDeploy Installiert Ihr Update während der Bereitstellung in einem neuen Ersatz-Taskset. Dann verlagert es den Produktionsdatenverkehr von der ursprünglichen Version Ihrer Amazon ECS-Anwendung, die sich in ihrem ursprünglichen Task-Set befindet, auf die aktualisierte Version im Ersatz-Task-Set.

 CodeDeploy Verwendet während einer Amazon ECS-Bereitstellung einen Load Balancer, der für zwei Zielgruppen und einen Production-Traffic-Listener konfiguriert ist. Das folgende Diagramm zeigt, wie der Load Balancer, der Produktions-Listener, die Zielgruppen und Ihre Amazon ECS-Anwendung zusammenhängen, bevor die Bereitstellung beginnt. In diesem Tutorial wird ein Application Load Balancer verwendet. Sie können auch einen Network Load Balancer verwenden. 

![\[Der Application Load Balancer oder Network Load Balancer, ein Produktions-Listener, zwei Zielgruppen, ein Task-Set und ein Amazon ECS-Service.\]](http://docs.aws.amazon.com/de_de/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-with-no-test-listener-step-1.png)


 Nach einer erfolgreichen Bereitstellung leitet der Produktionsdatenverkehr-Listener Datenverkehr an Ihren neuen Ersatzaufgabensatz weiter und der ursprüngliche Aufgabensatz wird beendet. Das folgende Diagramm zeigt, wie Ihre Ressourcen nach einer erfolgreichen Bereitstellung miteinander verbunden sind. Weitere Informationen finden Sie unter [Was passiert während einer Amazon ECS-Bereitstellung](deployment-steps-ecs.md#deployment-steps-what-happens). 

![\[Der Application Load Balancer oder Network Load Balancer, ein Produktions-Listener, zwei Zielgruppen und ein Ersatz-Taskset.\]](http://docs.aws.amazon.com/de_de/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-with-no-test-listener-step-5.png)


Informationen zur Verwendung von AWS CLI zum Bereitstellen einer Anwendung in Amazon ECS finden Sie unter [Tutorial: Einen Service mithilfe einer blue/green Bereitstellung erstellen](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-blue-green.html). Informationen zur Erkennung und automatischen Bereitstellung von Änderungen an einem Amazon ECS-Service finden Sie unter [Tutorial: Eine Pipeline mit einer Amazon ECR-Quelle und ECS-to-CodeDeploy Bereitstellung erstellen](https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-ecs-ecr-codedeploy.html). CodePipeline CodeDeploy 

Nachdem Sie dieses Tutorial abgeschlossen haben, können Sie die von Ihnen erstellte CodeDeploy Anwendung und Bereitstellungsgruppe verwenden, um einen Validierungstest für die Bereitstellung hinzuzufügen. [Tutorial: Bereitstellen eines Amazon ECS-Service mit einem Validierungstest](tutorial-ecs-deployment-with-hooks.md) 

**Topics**
+ [Voraussetzungen](tutorial-ecs-prereqs.md)
+ [Schritt 1: Aktualisieren Sie Ihre Amazon ECS-Anwendung](tutorial-ecs-update-the-ecs-application.md)
+ [Schritt 2: Erstellen Sie die Datei AppSpec](tutorial-ecs-create-appspec-file.md)
+ [Schritt 3: Verwenden Sie die CodeDeploy Konsole, um Ihre Anwendung bereitzustellen](tutorial-ecs-deployment-deploy.md)
+ [Schritt 4: Bereinigen](tutorial-ecs-clean-up.md)

# Voraussetzungen
<a name="tutorial-ecs-prereqs"></a>

Um dieses Tutorial abzuschließen, müssen Sie zunächst:
+  Die Schritte 2 und 3 in [Erste Schritte mit CodeDeploy](getting-started-codedeploy.md) ausführen. 
+  Erstellen Sie einen Application Load Balancer, der mit zwei Zielgruppen und einem Listener konfiguriert ist. Weitere Informationen zum Erstellen eines Load Balancers mithilfe der Konsole finden Sie unter [Einen Load Balancer, Zielgruppen und Listener für CodeDeploy Amazon ECS-Bereitstellungen einrichten](deployment-groups-create-load-balancer-for-ecs.md). Informationen zum Erstellen eines Load Balancers mit dem AWS CLI finden Sie unter [Schritt 1: Einen Application Load Balancer erstellen](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-blue-green.html#create-blue-green-loadbalancer) im *Amazon Elastic Container Service-Benutzerhandbuch*. Wenn Sie Ihren Load Balancer erstellen, notieren Sie sich Folgendes für dieses Tutorial: 
  +  Den Namen Ihres Load Balancer. 
  +  Die Namen Ihrer Zielgruppen. 
  +  Den Port, der vom Listener Ihres Load Balancers verwendet wird. 
+  Erstellen Sie einen Amazon ECS-Cluster und -Service. Weitere Informationen finden Sie in den Schritten 2, 3 und 4 im [Tutorial: Einen Service mithilfe einer blue/green Bereitstellung erstellen](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-blue-green.html) im *Amazon Elastic Container Service-Benutzerhandbuch*. Notieren Sie sich Folgendes für dieses Tutorial: 
  +  Der Name Ihres Amazon ECS-Clusters. 
  +  Der ARN der Aufgabendefinition, die von Ihrem Amazon ECS-Service verwendet wird. 
  +  Der Name des Containers, der von Ihrem Amazon ECS-Service verwendet wird. 
+  Erstellen Sie einen Amazon S3 S3-Bucket für Ihre AppSpec Datei. 

# Schritt 1: Aktualisieren Sie Ihre Amazon ECS-Anwendung
<a name="tutorial-ecs-update-the-ecs-application"></a>

 In diesem Abschnitt aktualisieren Sie Ihre Amazon ECS-Anwendung mit einer neuen Version ihrer Aufgabendefinition. Die aktualisierte Revision fügt ein neues Schlüssel- und Tag-Paar hinzu. In [Schritt 3: Verwenden Sie die CodeDeploy Konsole, um Ihre Anwendung bereitzustellen](tutorial-ecs-deployment-deploy.md) stellen Sie die aktualisierte Version Ihrer Amazon ECS-Anwendung bereit. 

**So aktualisieren Sie Ihre Aufgabendefinition**

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

1.  Wählen Sie im Navigationsbereich **Task Definitions** aus. 

1. Wählen Sie die Aufgabendefinition aus, die von Ihrem Amazon ECS-Service verwendet wird.

1. Markieren Sie die Aufgabendefinitionsversion und wählen Sie dann **Neue Version erstellen**, **Neue Version erstellen**.

1.  Nehmen Sie für dieses Tutorial eine kleine Aktualisierung der Aufgabendefinition vor, indem Sie ein Tag hinzufügen. Erstellen Sie unten auf der Seite unter **Tags** ein neues Tag, indem Sie ein neues Schlüssel-Wert-Paar eingeben. 

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

   Die Revisionsnummer Ihrer Aufgabendefinition wird um eins erhöht. 

1.  Wählen Sie den Tab **JSON**. Notieren Sie sich Folgendes, da Sie diese Informationen im nächsten Schritt benötigen. 
   +  Den Wert für `taskDefinitionArn`. Das Format ist `arn:aws:ecs:aws-region:account-id:task-definition/task-definition-family:task-definition-revision`. Dies ist der ARN Ihrer aktualisierten Aufgabendefinition. 
   +  Den Wert für `name` im `containerDefinitions`-Element. Dies ist der Name Ihres Containers. 
   +  Den Wert für `containerPort` im `portMappings`-Element. Dies ist der Port für Ihren Container. 

# Schritt 2: Erstellen Sie die Datei AppSpec
<a name="tutorial-ecs-create-appspec-file"></a>

 In diesem Abschnitt erstellen Sie Ihre AppSpec Datei und laden sie in den Amazon S3 S3-Bucket hoch, den Sie in dem [Voraussetzungen](tutorial-ecs-prereqs.md) Abschnitt erstellt haben. Die AppSpec Datei für eine Amazon ECS-Bereitstellung spezifiziert Ihre Aufgabendefinition, Ihren Container-Namen und Ihren Container-Port. Weitere Informationen erhalten Sie unter [AppSpec Dateibeispiel für eine Amazon ECS-Bereitstellung](reference-appspec-file-example.md#appspec-file-example-ecs) und [AppSpec Abschnitt „Ressourcen“ für Amazon ECS-Bereitstellungen](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs). 

**Um Ihre AppSpec Datei zu erstellen**

1.  Wenn Sie Ihre AppSpec Datei mit YAML erstellen möchten, erstellen Sie eine Datei mit dem Namen`appspec.yml`. Wenn Sie Ihre AppSpec Datei mit JSON erstellen möchten, erstellen Sie eine Datei mit dem Namen`appspec.json`. 

1.  Wählen Sie die entsprechende Registerkarte, je nachdem, ob Sie YAML oder JSON für Ihre AppSpec Datei verwenden, und kopieren Sie deren Inhalt in die AppSpec Datei, die Sie gerade erstellt haben. Verwenden Sie für die `TaskDefinition`-Eigenschaft den Aufgabendefinitions-ARN, den Sie im [Schritt 1: Aktualisieren Sie Ihre Amazon ECS-Anwendung](tutorial-ecs-update-the-ecs-application.md)-Abschnitt notiert haben. 

------
#### [ JSON AppSpec ]

   ```
   {
     "version": 0.0,
     "Resources": [
       {
         "TargetService": {
           "Type": "AWS::ECS::Service",
           "Properties": {
             "TaskDefinition": "arn:aws:ecs:aws-region-id:aws-account-id:task-definition/ecs-demo-task-definition:revision-number",
             "LoadBalancerInfo": {
               "ContainerName": "your-container-name",
               "ContainerPort": your-container-port
             }
           }
         }
       }
     ]
   }
   ```

------
#### [ YAML AppSpec ]

   ```
   version: 0.0
   Resources:
     - TargetService:
         Type: AWS::ECS::Service
         Properties:
           TaskDefinition: "arn:aws:ecs:aws-region-id:aws-account-id:task-definition/ecs-demo-task-definition:revision-number"
           LoadBalancerInfo:
             ContainerName: "your-container-name"
             ContainerPort: your-container-port
   ```

------
**Anmerkung**  
 Ihr neuer Aufgabensatz erbt das Subnetz, die Sicherheitsgruppe, die Plattformversion und die zugewiesenen öffentlichen IP-Werte von Ihrem ursprünglichen Aufgabensatz. Sie können diese Werte für Ihren Ersatz-Tasksatz überschreiben, indem Sie ihre optionalen Eigenschaften in Ihrer AppSpec Datei festlegen. Weitere Informationen erhalten Sie unter [AppSpec Abschnitt „Ressourcen“ für Amazon ECS-Bereitstellungen](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs) und [AppSpec Dateibeispiel für eine Amazon ECS-Bereitstellung](reference-appspec-file-example.md#appspec-file-example-ecs). 

1.  Laden Sie Ihre AppSpec Datei in den S3-Bucket hoch, den Sie als Voraussetzung für dieses Tutorial erstellt haben. 

# Schritt 3: Verwenden Sie die CodeDeploy Konsole, um Ihre Anwendung bereitzustellen
<a name="tutorial-ecs-deployment-deploy"></a>

 In diesem Abschnitt erstellen Sie eine CodeDeploy Anwendungs- und Bereitstellungsgruppe, um Ihre aktualisierte Anwendung in Amazon ECS bereitzustellen. CodeDeploy Verschiebt während der Bereitstellung den Produktionsdatenverkehr für Ihre Anwendung auf die neue Version in einem neuen Ersatzaufgabensatz. Um diesen Schritt abzuschließen, benötigen Sie die folgenden Elemente: 
+  Ihr Amazon ECS-Clustername. 
+  Ihr Amazon ECS-Servicename. 
+  Ihr Application Load Balancer Balancer-Name. 
+  Ihren Produktions-Listener-Port. 
+  Ihre Zielgruppennamen. 
+  Den Namen des S3-Buckets, den Sie erstellt haben. 

**Um eine Anwendung zu erstellen CodeDeploy**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die CodeDeploy Konsole unter [https://console.aws.amazon.com/codedeploy/](https://console.aws.amazon.com/codedeploy/).

1. Wählen Sie **Create application** aus.

1. Geben Sie unter **Application name (Anwendungsname)** **ecs-demo-codedeploy-app** ein.

1. Wählen Sie unter **Compute Platform (Datenverarbeitungsplattform)** die Option **Amazon ECS** aus.

1. Wählen Sie **Create application** aus.

**Um eine CodeDeploy Bereitstellungsgruppe zu erstellen**

1. Wählen Sie auf der Registerkarte **Deployment groups (Bereitstellungsgruppen)** Ihrer Anwendungsseite **Create deployment group (Bereitstellungsgruppe erstellen)** aus.

1. Geben Sie unter **Deployment group name (Name der Bereitstellungsgruppe)** **ecs-demo-dg** ein.

1. Wählen Sie unter **Servicerolle** eine Servicerolle aus, die CodeDeploy Zugriff auf Amazon ECS gewährt. Weitere Informationen finden Sie unter [Identitäts- und Zugriffsmanagement für AWS CodeDeploy](security-iam.md).

1. Wählen Sie in der **Umgebungskonfiguration** Ihren Amazon ECS-Clusternamen und Servicenamen aus.

1. Wählen Sie **unter Load Balancers** den Namen des Load Balancers aus, der den Datenverkehr an Ihren Amazon ECS-Service weiterleitet.

1. Wählen Sie **unter Production Listener Port** den Port und das Protokoll für den Listener aus, der Produktionstransport für Ihren Amazon ECS-Service bereitstellt (z. B. **HTTP:** 80). Dieses Tutorial enthält keinen optionalen Test-Listener. Wählen Sie daher keinen Port aus **Test listener port (Test-Listener-Port)** aus. 

1. Wählen Sie unter **Target group 1 name (Name der Zielgruppe 1)** und **Target group 2 name (Name der Zielgruppe 2)** zwei verschiedene Zielgruppen aus, um den Datenverkehr während der Bereitstellung weiterzuleiten. Stellen Sie sicher, dass es sich hierbei um die Zielgruppen handelt, die Sie für Ihren Load Balancer erstellt haben. Es spielt keine Rolle, welche für Zielgruppe 1 und welche für Zielgruppe 2 verwendet wird.

1. Wählen Sie **Reroute traffic immediately (Datenverkehr sofort umleiten)** aus.

1. Wählen Sie für **Original revision termination (Beendigung der ursprünglichen Revision)** 0 Tage, 0 Stunden und 5 Minuten aus. Auf diese Weise können Sie Ihre Bereitstellung schneller abschließen, als wenn Sie die Standardeinstellung (1 Stunde) verwenden.  
![\[Der Bereich mit der Umgebungskonfiguration der Konsole. CodeDeploy\]](http://docs.aws.amazon.com/de_de/codedeploy/latest/userguide/images/ecs-demo-create-acd-dg.png)

1. Wählen Si **Create deployment group (Bereitstellungsgruppe erstellen)**.

**So stellen Sie Ihre Amazon ECS-Anwendung bereit**

1. Wählen Sie auf der Konsolenseite Ihrer Bereitstellungsgruppe **Create deployment (Bereitstellung erstellen)** aus.

1.  Wählen Sie als **Bereitstellungsgruppe** die Option **ecs-demo-dg**. 

1.  Wählen Sie unter **Revision type (Revisionstyp)** die Option **My application is stored in Amazon S3 (Meine Anwendung ist in Amazon S3 gespeichert)** aus. Geben Sie unter **Revision location (Speicherort der Revision)** den Namen Ihres S3-Buckets ein. 

1.  Wählen Sie für **Revision file type (Revisionsdateityp)** die Option **.json** oder **.yaml** nach Bedarf aus. 

1.  (Optional) Geben Sie im Feld **Deployment description (Bereitstellungsbeschreibung)** eine Beschreibung für Ihre Bereitstellung ein. 

1. Wählen Sie **Create deployment**.

1.  Unter **Deployment status (Bereitstellungsstatus)** können Sie Ihre Bereitstellung überwachen. Nachdem der gesamte Produktionsdatenverkehr an den Ersatz-Tasksatz weitergeleitet wurde und die Wartezeit von fünf Minuten abläuft, können Sie die Option Ursprünglichen Tasksatz **beenden auswählen, um den ursprünglichen Tasksatz** sofort zu beenden. Wenn Sie **Terminate original task set (Ursprünglichen Aufgabensatz beenden)** nicht auswählen, wird der ursprüngliche Aufgabensatz nach der von Ihnen angegebenen fünfminütigen Wartezeit beendet.  
![\[Der Abschnitt mit dem Bereitstellungsstatus der CodeDeploy Konsole.\]](http://docs.aws.amazon.com/de_de/codedeploy/latest/userguide/images/ecs-tutorial-deployment-status-without-test-listener.png)

# Schritt 4: Bereinigen
<a name="tutorial-ecs-clean-up"></a>

 Das nächste Tutorial, [Tutorial: Bereitstellen eines Amazon ECS-Service mit einem Validierungstest](tutorial-ecs-deployment-with-hooks.md), baut auf diesem Tutorial auf und verwendet die von Ihnen erstellte CodeDeploy -Anwendung und -Bereitstellungsgruppe. Wenn Sie die Schritte in diesem Tutorial ausführen möchten, überspringen Sie diesen Schritt und löschen Sie nicht die Ressourcen, die Sie erstellt haben. 

**Anmerkung**  
 Für Ihr AWS Konto fallen keine Gebühren für die von Ihnen erstellten CodeDeploy Ressourcen an. 

Bei den Ressourcennamen in diesen Schritten handelt es sich um die in diesem Tutorial vorgeschlagenen Namen (z. B. **ecs-demo-codedeploy-app** für den Namen Ihrer CodeDeploy Anwendung). Wenn Sie andere Namen verwendet haben, stellen Sie sicher, dass Sie diese während der Bereinigung verwenden. 

1. Verwenden Sie den [delete-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/delete-deployment-group.html)Befehl, um die CodeDeploy Bereitstellungsgruppe zu löschen.

   ```
   aws deploy delete-deployment-group --application-name ecs-demo-codedeploy-app --deployment-group-name ecs-demo-dg --region aws-region-id
   ```

1. Verwenden Sie den Befehl [delete-application, um die Anwendung](https://docs.aws.amazon.com/cli/latest/reference/deploy/delete-application.html) zu löschen. CodeDeploy 

   ```
   aws deploy delete-application --application-name ecs-demo-codedeploy-app --region aws-region-id
   ```