

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Tutoriel : Déployer une application dans Amazon ECS
<a name="tutorial-ecs-deployment"></a>

 Dans ce didacticiel, vous apprendrez à déployer une application dans Amazon ECS à l'aide de CodeDeploy. Vous commencez par une application que vous avez déjà créée et déployée dans Amazon ECS. La première étape consiste à mettre à jour votre application en modifiant son fichier de définition de tâche avec une nouvelle balise. Ensuite, vous devez CodeDeploy déployer la mise à jour. Au cours du déploiement, CodeDeploy installe votre mise à jour dans un nouvel ensemble de tâches de remplacement. Il déplace ensuite le trafic de production de la version d'origine de votre application Amazon ECS, qui se trouve dans son ensemble de tâches d'origine, vers la version mise à jour dans l'ensemble de tâches de remplacement.

 Lors d'un déploiement Amazon ECS, CodeDeploy utilise un équilibreur de charge configuré avec deux groupes cibles et un écouteur de trafic de production. Le schéma suivant montre comment l'équilibreur de charge, l'écouteur de production, les groupes cibles et votre application Amazon ECS sont liés avant le début du déploiement. Ce didacticiel utilise un équilibreur de charge Application Load Balancer. Vous pouvez également utiliser un Network Load Balancer. 

![\[L'Application Load Balancer ou Network Load Balancer, un écouteur de production, deux groupes cibles, un ensemble de tâches et un service Amazon ECS.\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-with-no-test-listener-step-1.png)


 Après un déploiement réussi, l'écouteur de trafic de production transmet le trafic à votre nouvel ensemble de tâches de remplacement et l'ensemble de tâches d'origine est résilié. Le schéma suivant montre comment vos ressources sont liées après un déploiement réussi. Pour de plus amples informations, veuillez consulter [Que se passe-t-il lors d'un déploiement d'Amazon ECS](deployment-steps-ecs.md#deployment-steps-what-happens). 

![\[Application Load Balancer ou Network Load Balancer, un écouteur de production, deux groupes cibles et un ensemble de tâches de remplacement.\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-with-no-test-listener-step-5.png)


Pour plus d'informations sur la façon d'utiliser le AWS CLI pour déployer une application dans Amazon ECS, consultez [Tutoriel : Création d'un service à l'aide d'un blue/green déploiement](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-blue-green.html). Pour plus d'informations sur la façon de CodePipeline détecter et de déployer automatiquement les modifications apportées à un service Amazon ECS avec CodeDeploy, consultez [Tutoriel : Création d'un pipeline avec une source Amazon ECR et ECS-to-CodeDeploy déploiement](https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-ecs-ecr-codedeploy.html). 

Une fois ce didacticiel terminé, vous pouvez utiliser l' CodeDeploy application et le groupe de déploiement que vous avez créés pour ajouter un test de validation de déploiement[Tutoriel : Déployer un service Amazon ECS avec un test de validation](tutorial-ecs-deployment-with-hooks.md). 

**Topics**
+ [Conditions préalables](tutorial-ecs-prereqs.md)
+ [Étape 1 : mettez à jour votre application Amazon ECS](tutorial-ecs-update-the-ecs-application.md)
+ [Étape 2 : Création du AppSpec fichier](tutorial-ecs-create-appspec-file.md)
+ [Étape 3 : utiliser la CodeDeploy console pour déployer votre application](tutorial-ecs-deployment-deploy.md)
+ [Étape 4 : nettoyer](tutorial-ecs-clean-up.md)

# Conditions préalables
<a name="tutorial-ecs-prereqs"></a>

Pour effectuer ce didacticiel, vous devez d'abord :
+  Effectuer les étapes 2 et 3 de [Commencer avec CodeDeploy](getting-started-codedeploy.md). 
+  Créez un Application Load Balancer configuré avec deux groupes cibles et un écouteur. Pour plus d'informations sur la création d'un équilibreur de charge à l'aide de la console, consultez [Configuration d'un équilibreur de charge, de groupes cibles et d'écouteurs pour les déploiements CodeDeploy Amazon ECS](deployment-groups-create-load-balancer-for-ecs.md). Pour plus d'informations sur la création d'un équilibreur de charge à l'aide de AWS CLI, consultez [Étape 1 : Création d'un équilibreur de charge d'application](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-blue-green.html#create-blue-green-loadbalancer) dans le guide de l'utilisateur d'*Amazon Elastic Container Service*. Lorsque vous créez votre équilibreur de charge, notez les informations suivantes pour ce didacticiel : 
  +  Nom de votre équilibreur de charge. 
  +  Noms de vos groupes cibles. 
  +  Port utilisé par l'écouteur de votre équilibreur de charge. 
+  Créez un cluster et un service Amazon ECS. Pour plus d'informations, consultez les étapes 2, 3 et 4 de la section [Tutoriel : Création d'un service à l'aide d'un blue/green déploiement](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-blue-green.html) dans le *guide de l'utilisateur d'Amazon Elastic Container Service*. Notez les informations suivantes pour ce didacticiel : 
  +  Le nom de votre cluster Amazon ECS. 
  +  L'ARN de la définition de tâche utilisée par votre service Amazon ECS. 
  +  Le nom du conteneur utilisé par votre service Amazon ECS. 
+  Créez un compartiment Amazon S3 pour votre AppSpec fichier. 

# Étape 1 : mettez à jour votre application Amazon ECS
<a name="tutorial-ecs-update-the-ecs-application"></a>

 Dans cette section, vous mettez à jour votre application Amazon ECS avec une nouvelle révision de sa définition de tâche. La révision mise à jour ajoute une nouvelle paire clé/balise. Dans[Étape 3 : utiliser la CodeDeploy console pour déployer votre application](tutorial-ecs-deployment-deploy.md), vous déployez la version mise à jour de votre application Amazon ECS. 

**Pour mettre à jour votre définition de tâche**

1. Ouvrez la console à la [https://console.aws.amazon.com/ecs/version 2](https://console.aws.amazon.com/ecs/v2).

1.  Dans le panneau de navigation, sélectionnez **Task Definitions** (Définition des tâches). 

1. Choisissez la définition de tâche utilisée par votre service Amazon ECS.

1. Sélectionnez la révision de définition de tâche, puis choisissez **Créer une nouvelle révision**, **Créer une nouvelle révision**.

1.  Pour ce didacticiel, effectuez une petite mise à jour de la définition de tâche en ajoutant une balise. Au bas de la page, sous **Balises**, créez une nouvelle balise en saisissant une nouvelle paire clé/valeur. 

1.  Choisissez **Créer**. 

   Le numéro de révision de votre définition de tâche est incrémenté d'une unité. 

1.  Choisissez l’onglet **JSON**. Notez ce qui suit, car vous aurez besoin de ces informations à l'étape suivante. 
   +  La valeur de `taskDefinitionArn`. Son format est `arn:aws:ecs:aws-region:account-id:task-definition/task-definition-family:task-definition-revision`. Il s'agit de l'ARN de votre définition de tâche mise à jour. 
   +  Dans l'élément `containerDefinitions`, la valeur de `name`. Il s'agit du nom de votre conteneur. 
   +  Dans l'élément `portMappings`, la valeur de `containerPort`. Il s'agit du port de votre conteneur. 

# Étape 2 : Création du AppSpec fichier
<a name="tutorial-ecs-create-appspec-file"></a>

 Dans cette section, vous créez votre AppSpec fichier et vous le chargez dans le compartiment Amazon S3 que vous avez créé dans la [Conditions préalables](tutorial-ecs-prereqs.md) section. Le AppSpec fichier pour un déploiement Amazon ECS indique la définition de votre tâche, le nom du conteneur et le port du conteneur. Pour plus d’informations, consultez [AppSpec Exemple de fichier pour un déploiement Amazon ECS](reference-appspec-file-example.md#appspec-file-example-ecs) et [AppSpec section « ressources » pour les déploiements Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs). 

**Pour créer votre AppSpec dossier**

1.  Si vous souhaitez créer votre AppSpec fichier en utilisant YAML, créez un fichier nommé`appspec.yml`. Si vous souhaitez créer votre AppSpec fichier à l'aide de JSON, créez un fichier nommé`appspec.json`. 

1.  Choisissez l'onglet approprié, selon que vous utilisez YAML ou JSON pour votre AppSpec fichier, et copiez son contenu dans le AppSpec fichier que vous venez de créer. Pour la propriété `TaskDefinition`, utilisez l'ARN de définition de tâche que vous avez noté dans la section [Étape 1 : mettez à jour votre application Amazon ECS](tutorial-ecs-update-the-ecs-application.md). 

------
#### [ 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
   ```

------
**Note**  
 Votre ensemble de tâches de remplacement hérite du sous-réseau, du groupe de sécurité, de la version de la plateforme et des valeurs IP publiques attribuées de votre ensemble de tâches d'origine. Vous pouvez remplacer ces valeurs pour votre ensemble de tâches de remplacement en définissant leurs propriétés facultatives dans votre AppSpec fichier. Pour plus d’informations, consultez [AppSpec section « ressources » pour les déploiements Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs) et [AppSpec Exemple de fichier pour un déploiement Amazon ECS](reference-appspec-file-example.md#appspec-file-example-ecs). 

1.  Importez votre AppSpec fichier dans le compartiment S3 que vous avez créé comme condition préalable à ce didacticiel. 

# Étape 3 : utiliser la CodeDeploy console pour déployer votre application
<a name="tutorial-ecs-deployment-deploy"></a>

 Dans cette section, vous allez créer une CodeDeploy application et un groupe de déploiement pour déployer votre application mise à jour dans Amazon ECS. Pendant le déploiement, CodeDeploy déplace le trafic de production de votre application vers sa nouvelle version dans un nouvel ensemble de tâches de remplacement. Pour effectuer cette étape, vous avez besoin des éléments suivants : 
+  Le nom de votre cluster Amazon ECS. 
+  Le nom de votre service Amazon ECS. 
+  Le nom de votre Application Load Balancer. 
+  Votre port d'écoute de production. 
+  Noms de vos groupes cibles. 
+  Nom du compartiment S3 que vous avez créé. 

**Pour créer une CodeDeploy application**

1. Connectez-vous à la CodeDeploy console AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/codedeploy/](https://console.aws.amazon.com/codedeploy/).

1. Choisissez **Créer une application**.

1. Dans **Nom de l'application**, saisissez **ecs-demo-codedeploy-app**.

1. Dans **Plateforme de calcul**, choisissez **Amazon ECS**.

1. Choisissez **Créer une application**.

**Pour créer un groupe CodeDeploy de déploiement**

1. Dans l'onglet **Groupes de déploiement** de la page de votre application, choisissez **Créer un groupe de déploiement**.

1. Dans **Nom du groupe de déploiement**, saisissez **ecs-demo-dg**.

1. Dans **Rôle de service**, choisissez un rôle de service qui accorde CodeDeploy l'accès à Amazon ECS. Pour de plus amples informations, veuillez consulter [Gestion des identités et des accès pour AWS CodeDeploy](security-iam.md).

1. Dans **Configuration de l'environnement**, choisissez le nom de votre cluster Amazon ECS et le nom du service.

1. Dans **Équilibreurs de charge**, choisissez le nom de l'équilibreur de charge qui achemine le trafic vers votre service Amazon ECS.

1. Dans **Port de l'écouteur de production**, choisissez le port et le protocole de l'écouteur qui transmet le trafic de production à votre service Amazon ECS (par exemple, **HTTP :** 80). Ce didacticiel n'inclut pas d'écouteur de test facultatif. Par conséquent, ne choisissez pas de port dans **Port d'écoute de test**. 

1. À partir de **Nom du groupe cible 1** et **Nom du groupe cible 2**, choisissez deux groupes cibles différents pour acheminer le trafic au cours de votre déploiement. Assurez-vous que ce sont les groupes cibles que vous avez créés pour votre équilibreur de charge. Peu importe lequel est utilisé pour le groupe cible 1 et lequel est utilisé pour le groupe cible 2.

1. Choisissez **Réacheminer le trafic immédiatement**.

1. Pour **Original revision termination (Résiliation de la révision d'origine)**, choisissez 0 jour, 0 heure et 5 minutes. Cela vous permet de voir votre déploiement se terminer plus rapidement que si vous utilisez la valeur par défaut (1 heure).  
![\[Section de configuration de l'environnement de la CodeDeploy console.\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/images/ecs-demo-create-acd-dg.png)

1. Choisissez **Créer un groupe de déploiement**.

**Pour déployer votre application Amazon ECS**

1. Sur la page de la console de votre groupe de déploiement, choisissez **Créer un déploiement**.

1.  Pour **le groupe de déploiement**, choisissez **ecs-demo-dg**. 

1.  Pour **Type de révision**, choisissez **Mon application est stockée dans Amazon S3**. Dans **Emplacement de la révision**, entrez le nom de votre compartiment S3. 

1.  Pour **Type de fichier de révision**, choisissez **.json** ou **.yaml**, selon le cas. 

1.  (Facultatif) Dans la zone **Description du déploiement**, entrez une description de votre déploiement. 

1. Choisissez **Créer un déploiement**.

1.  Dans **Deployment status (Statut du déploiement)**, vous pouvez surveiller votre déploiement. Une fois que 100 % du trafic de production est acheminé vers l'ensemble de tâches de remplacement et avant l'expiration du délai d'attente de cinq minutes, vous pouvez choisir **Terminer le jeu de tâches d'origine pour mettre fin immédiatement à l'ensemble** de tâches d'origine. Si vous ne choisissez pas **Terminate original task set (Résilier l'ensemble de tâches d'origine)**, l'ensemble de tâches d'origine est résilié après l'expiration du délai d'attente de cinq minutes que vous avez spécifié.  
![\[La section sur l'état du déploiement de la CodeDeploy console.\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/images/ecs-tutorial-deployment-status-without-test-listener.png)

# Étape 4 : nettoyer
<a name="tutorial-ecs-clean-up"></a>

 Le didacticiel suivant, [Tutoriel : Déployer un service Amazon ECS avec un test de validation](tutorial-ecs-deployment-with-hooks.md), repose sur ce didacticiel et utilise l'application CodeDeploy et le groupe de déploiement que vous avez créés. Si vous souhaitez suivre les étapes de ce didacticiel, ignorez cette étape et ne supprimez pas les ressources que vous avez créées. 

**Note**  
 Les CodeDeploy ressources que vous avez créées ne sont pas facturées sur votre AWS compte. 

Les noms des ressources utilisés dans ces étapes sont ceux suggérés dans ce didacticiel (par exemple, **ecs-demo-codedeploy-app** pour le nom de votre CodeDeploy application). Si vous avez utilisé d'autres noms, veillez à les utiliser lors du nettoyage. 

1. Utilisez la [delete-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/delete-deployment-group.html)commande pour supprimer le groupe CodeDeploy de déploiement.

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

1. Utilisez la commande [delete-application](https://docs.aws.amazon.com/cli/latest/reference/deploy/delete-application.html) pour supprimer l' CodeDeploy application.

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