

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.

# Qu'est-ce que c'est CodeDeploy ?
<a name="welcome"></a>

CodeDeploy est un service de déploiement qui automatise les déploiements d'applications sur des instances Amazon EC2, des instances sur site, des fonctions Lambda sans serveur ou des services Amazon ECS.

Vous pouvez déployer une grande variété de contenu d'application, y compris les éléments suivants :
+ Code
+ Fonctions sans serveur AWS Lambda 
+ Fichiers web et de configuration
+ Executables (Fichiers exécutables)
+ Forfaits
+ Scripts
+ Fichiers multimédias

CodeDeploy peut déployer du contenu d'application qui s'exécute sur un serveur et qui est stocké dans des compartiments Amazon S3, des GitHub référentiels ou des référentiels Bitbucket. CodeDeploy peut également déployer une fonction Lambda sans serveur. Vous n'avez pas besoin d'apporter des modifications à votre code existant pour utiliser CodeDeploy. 

CodeDeploy vous permet de :
+ Publier de nouveaux éléments.
+ Mettez à jour les versions des AWS Lambda fonctions.
+ Éviter les temps d'arrêt lors du déploiement d'application.
+ Gérer la complexité des mises à jour de vos applications, sans nombre des risques associés aux déploiements manuels sources d'erreurs.

Le service se dimensionne avec votre infrastructure de manière à ce que vous puissiez facilement déployer une ou des milliers d'instances.

CodeDeploy fonctionne avec différents systèmes pour la gestion de la configuration, le contrôle des sources, [l'intégration continue](https://aws.amazon.com/devops/continuous-integration/)[, la livraison](https://aws.amazon.com/devops/continuous-delivery/) continue et le déploiement continu. Pour plus d'informations, consultez la section [Intégrations de produits](https://aws.amazon.com/codedeploy/product-integrations/).

 La CodeDeploy console permet également de rechercher rapidement vos ressources, telles que des référentiels, des projets de création, des applications de déploiement et des pipelines. Choisissez **Go to ressource (Accéder aux ressources)** ou appuyez sur la touche `/`, puis saisissez le nom de la ressource. Toutes les correspondances s'affichent dans la liste. Les recherches ne sont pas sensibles à la casse. Vous pouvez uniquement consulter les ressources que vous êtes autorisé à afficher. Pour de plus amples informations, veuillez consulter [Gestion des identités et des accès pour AWS CodeDeploy](security-iam.md). 

**Topics**
+ [

## Avantages de AWS CodeDeploy
](#benefits)
+ [

## Vue d'ensemble des plateformes CodeDeploy informatiques
](#compute-platform)
+ [

## Vue d'ensemble des types de CodeDeploy déploiement
](#welcome-deployment-overview)
+ [

## Nous voulons entendre parler de vous
](#welcome-contact-us)
+ [Primary Components](primary-components.md)
+ [Deployments](deployment-steps.md)
+ [Application Specification Files](application-specification-files.md)

## Avantages de AWS CodeDeploy
<a name="benefits"></a>

CodeDeploy offre les avantages suivants :
+ **Applications serveur, sans serveur et conteneurs.** CodeDeployvous permet de déployer à la fois des applications traditionnelles sur des serveurs et des applications qui déploient une version AWS Lambda fonctionnelle sans serveur ou une application Amazon ECS.
+ **Déploiements automatisés**. CodeDeploy automatise entièrement le déploiement de vos applications dans vos environnements de développement, de test et de production. CodeDeploys'adapte à votre infrastructure afin que vous puissiez le déployer sur une ou plusieurs milliers d'instances.
+ **Temps d'arrêt minimaux**. Si votre application utilise la plate-forme de calcul EC2/sur site, CodeDeploy cela permet d'optimiser la disponibilité de votre application. Lors d'un déploiement sur place, CodeDeploy effectue une mise à jour continue sur les instances Amazon EC2. Vous pouvez spécifier le nombre d'instances à mettre hors ligne à la fois pour les mises à jour. Lors d'un blue/green déploiement, la dernière version de l'application est installée sur les instances de remplacement. Le trafic est réacheminé vers ces instances en fonction de ce que vous définissez : soit immédiatement ou dès que vous avez terminé de tester le nouvel environnement. Pour les deux types de déploiement, CodeDeploy suit l'état de l'application selon les règles que vous configurez. 
+ **Arrêter et restaurer**. Vous pouvez arrêter et restaurer les déploiements automatiquement et manuellement en cas d'erreurs. 
+ **Contrôle centralisé**. Vous pouvez lancer et suivre l'état de vos déploiements via la CodeDeploy console ou le AWS CLI. Vous recevez un rapport qui indique à quel moment chaque révision d'application a été déployée et sur quelles instances Amazon EC2. 
+ **Facile à adopter** CodeDeploy est indépendant de la plate-forme et fonctionne avec n'importe quelle application. Vous pouvez facilement réutiliser votre code de configuration. CodeDeploy peut également s'intégrer à votre processus de publication logicielle ou à votre chaîne d'outils de livraison continue.
+ **Déploiements simultanés**. Si plusieurs applications utilisent la plate-forme de calcul EC2/sur site, vous CodeDeploy pouvez les déployer simultanément sur le même ensemble d'instances.



## Vue d'ensemble des plateformes CodeDeploy informatiques
<a name="compute-platform"></a>

CodeDeploy est capable de déployer des applications sur trois plateformes informatiques :
+ **EC2/sur site** : décrit les instances de serveurs physiques qui peuvent être des instances cloud Amazon EC2, des serveurs sur site ou les deux. Les applications créées à l'aide de la plate-forme informatique EC2/on-premises peuvent être composées de fichiers exécutables, de fichiers de configuration, d'images, etc.

  Les déploiements qui utilisent la plate-forme informatique EC2/sur site gèrent la manière dont le trafic est dirigé vers les instances en utilisant un type de déploiement sur place ou bleu/vert. Pour de plus amples informations, veuillez consulter [Vue d'ensemble des types de CodeDeploy déploiement](#welcome-deployment-overview).
+ **AWS Lambda** : utilisé pour déployer des applications qui consistent en une version mise à jour d'une fonction Lambda. AWS Lambda gère la fonction Lambda dans un environnement de calcul sans serveur composé d'une structure de calcul à haute disponibilité. Toute l'administration des ressources informatiques est effectuée par AWS Lambda. Pour plus d'informations, consultez la section [Informatique et applications sans serveur](https://aws.amazon.com/serverless/). Pour plus d'informations sur AWS Lambda les fonctions Lambda, consultez. [AWS Lambda](https://aws.amazon.com/lambda/)

  Vous pouvez gérer la manière dont le trafic est transféré vers les versions mises à jour des fonctions Lambda lors d'un déploiement en choisissant une option Canary, une configuration linéaire ou all-at-once une configuration. 
+ **Amazon ECS** : utilisé pour déployer une application conteneurisée Amazon ECS sous forme d'ensemble de tâches. CodeDeploy effectue un blue/green déploiement en installant une version mise à jour de l'application en tant que nouvel ensemble de tâches de remplacement. CodeDeploy redirige le trafic de production de l'ensemble de tâches d'application d'origine vers le jeu de tâches de remplacement. L'ensemble de tâches d'origine est arrêté après un déploiement réussi. Pour plus d'informations sur Amazon ECS, consultez [Amazon Elastic Container Service](https://aws.amazon.com/ecs/).

  Vous pouvez gérer la manière dont le trafic est transféré vers l'ensemble de tâches mis à jour au cours d'un déploiement en choisissant une configuration Canary, Linear ou une all-at-once configuration.
**Note**  
Les blue/green déploiements Amazon ECS sont pris en charge en utilisant à la fois CodeDeploy et CloudFormation. Les détails de ces déploiements sont décrits dans les sections suivantes.

Le tableau suivant décrit comment CodeDeploy les composants sont utilisés avec chaque plate-forme de calcul. Pour en savoir plus, consultez : 
+  [Utilisation de groupes de déploiement dans CodeDeploy](deployment-groups.md) 
+  [Travailler avec des déploiements dans CodeDeploy](deployments.md) 
+  [Utilisation des configurations de déploiement dans CodeDeploy](deployment-configurations.md) 
+  [Travailler avec les révisions d'applications pour CodeDeploy](application-revisions.md) 
+  [Utilisation d'applications dans CodeDeploy](applications.md) 


| CodeDeploy composant | EC2/Solutions sur site | AWS Lambda | Amazon ECS | 
| --- | --- | --- | --- | 
| Groupe de déploiement | Déploie une révision sur un ensemble d'instances. | Déploie une nouvelle version d'une fonction Lambda sans serveur sur une infrastructure informatique à haute disponibilité. | Spécifie le service Amazon ECS avec l'application conteneurisée à déployer sous forme d'ensemble de tâches, un écouteur de production et de test facultatif utilisé pour acheminer le trafic vers l'application déployée, le moment où il convient de rediriger le trafic et de mettre fin à l'ensemble de tâches initial de l'application déployée, ainsi que les paramètres de déclenchement, d'alarme et de restauration facultatifs. | 
| Déploiement | Déploie une nouvelle révision composée d'une application et d'un AppSpec fichier. AppSpec Spécifie comment déployer l'application sur les instances d'un groupe de déploiement. | Déplace le trafic de production d'une version d'une fonction Lambda vers une nouvelle version de la même fonction. Le AppSpec fichier indique la version de la fonction Lambda à déployer. | Déploie une version mise à jour d'une application conteneurisée Amazon ECS en tant que nouvel ensemble de tâches de remplacement. CodeDeploy redirige le trafic de production de l'ensemble de tâches avec la version d'origine vers le nouvel ensemble de tâches de remplacement avec la version mise à jour. Lorsque le déploiement est terminé, l'ensemble de tâches d'origine est supprimé. | 
| Configuration de déploiement | Les paramètres déterminant la vitesse de déploiement et le nombre minimum d'instances devant être sains à tout moment d'un déploiement. | Paramètres qui déterminent la manière dont le trafic est transféré vers les versions mises à jour de la fonction Lambda. | Paramètres qui déterminent la manière dont le trafic est transféré vers l'ensemble de tâches Amazon ECS mis à jour. | 
| Revision | Combinaison d'un AppSpec fichier et de fichiers d'application, tels que des exécutables, des fichiers de configuration, etc. |  AppSpec Fichier qui spécifie la fonction Lambda à déployer et les fonctions Lambda qui peuvent exécuter des tests de validation lors des accroches d'événements du cycle de vie du déploiement. |  Un AppSpec fichier qui spécifie : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/welcome.html)  | 
| Application | Une collection de groupes de déploiement et de révisions. Une application EC2/sur site utilise la plate-forme de calcul EC2/sur site. | Une collection de groupes de déploiement et de révisions. Une application utilisée pour un AWS Lambda déploiement utilise la plate-forme de calcul AWS Lambda sans serveur. | Une collection de groupes de déploiement et de révisions. Une application utilisée pour un déploiement Amazon ECS utilise la plateforme de calcul Amazon ECS. | 

## Vue d'ensemble des types de CodeDeploy déploiement
<a name="welcome-deployment-overview"></a>

CodeDeploy propose deux options de type de déploiement :
+ **Déploiement sur place** : l'application de chaque instance du groupe de déploiement est arrêtée, la dernière révision de l'application est installée et la nouvelle version de l'application est démarrée et validée. Vous pouvez utiliser un équilibreur de charge afin que chaque instance soit désenregistrée pendant son déploiement, puis remise en service une fois le déploiement terminé. Seuls les déploiements qui utilisent la plate-forme informatique EC2/sur site peuvent utiliser des déploiements sur place. Pour plus d'informations sur les déploiements sur place, consultez [Vue d'ensemble d'un déploiement sur place](#welcome-deployment-overview-in-place).
**Note**  
AWS Les déploiements Lambda et Amazon ECS ne peuvent pas utiliser un type de déploiement sur place.
+ **Déploiement bleu/vert** : le comportement de votre déploiement dépend de la plateforme informatique que vous utilisez :
  + **Blue/green on an EC2/On-Plateforme de calcul sur site** : les instances d'un groupe de déploiement (l'environnement d'origine) sont remplacées par un ensemble d'instances différent (l'environnement de remplacement) en suivant les étapes suivantes :
    + Les instances sont provisionnées pour l'environnement de remplacement.
    + La dernière version de l'application est installée sur les instances de remplacement.
    + Un temps d'attente facultatif se produit pour des activités telles que les tests d'applications et la vérification du système.
    + Les instances de l'environnement de remplacement sont enregistrées auprès d'un ou de plusieurs équilibreurs de charge Elastic Load Balancing, ce qui entraîne le reroutage du trafic vers celles-ci. Les instances de l'environnement d'origine sont annulées et peuvent être résiliées ou maintenues en cours d'exécution pour d'autres utilisations.
**Note**  
Si vous utilisez une plate-forme de calcul EC2/sur site, sachez que les blue/green déploiements fonctionnent uniquement avec les instances Amazon EC2.
  + **Bleu/vert sur une plateforme de calcul AWS Lambda Amazon ECS** ou Amazon ECS : le trafic est décalé par incréments en fonction d'une configuration **canarienne**, **linéaire** ou **all-at-once**de déploiement.
  + **Déploiements bleu/vert via CloudFormation : le** trafic est transféré de vos ressources actuelles vers vos ressources mises à jour dans le cadre d'une CloudFormation mise à jour de la pile. Actuellement, seuls les blue/green déploiements ECS sont pris en charge. 

  Pour plus d'informations sur les blue/green déploiements, consultez[Vue d'ensemble d'un blue/green déploiement](#welcome-deployment-overview-blue-green).

**Note**  
À l'aide de l' CodeDeploy agent, vous pouvez effectuer un déploiement sur une instance à laquelle vous êtes connecté sans avoir besoin d'une application, d'un groupe de déploiement ou même d'un AWS compte. Pour plus d'informations, consultez [Utiliser l' CodeDeploy agent pour valider un package de déploiement sur une machine locale](deployments-local.md).

**Topics**
+ [

### Vue d'ensemble d'un déploiement sur place
](#welcome-deployment-overview-in-place)
+ [

### Vue d'ensemble d'un blue/green déploiement
](#welcome-deployment-overview-blue-green)

### Vue d'ensemble d'un déploiement sur place
<a name="welcome-deployment-overview-in-place"></a>

**Note**  
AWS Les déploiements Lambda et Amazon ECS ne peuvent pas utiliser un type de déploiement sur place.

Voici comment fonctionne un déploiement sur place :

1. Tout d'abord, vous créez du contenu déployable sur votre machine de développement locale ou dans un environnement similaire, puis vous ajoutez un fichier de *spécification d'application (AppSpec fichier*). Le AppSpec fichier est unique à CodeDeploy. Il définit les actions de déploiement que vous CodeDeploy souhaitez exécuter. Vous regroupez votre contenu déployable et le AppSpec fichier dans un fichier d'archive, puis vous le chargez dans un compartiment ou un GitHub référentiel Amazon S3. Ce fichier d'archive est appelé une *révision d'application* (ou simplement une *révision*).

1. Ensuite, vous fournissez CodeDeploy des informations sur votre déploiement, telles que le compartiment ou le GitHub référentiel Amazon S3 d'où vous souhaitez extraire la révision et vers quel ensemble d'instances Amazon EC2 déployer son contenu. CodeDeploy appelle un ensemble d'instances Amazon EC2 un groupe de *déploiement*. Un groupe de déploiement contient des instances Amazon EC2 étiquetées individuellement, des instances Amazon EC2 appartenant à des groupes Amazon EC2 Auto Scaling, ou les deux.

   Chaque fois que vous chargez avec succès une nouvelle révision d'application que vous souhaitez déployer dans le groupe de déploiement, ce paquet est défini comme la *révision cible* pour le groupe de déploiement. En d'autres termes, il s'agit de la révision d'application actuellement ciblée pour le déploiement. C'est également la révision utilisée pour les déploiements automatiques.

1. Ensuite, l' CodeDeploy agent de chaque instance interroge CodeDeploy pour déterminer ce qu'il faut extraire du compartiment ou du GitHub référentiel Amazon S3 spécifié et à quel moment.

1. Enfin, l' CodeDeploy agent de chaque instance extrait la révision cible du compartiment ou du GitHub référentiel Amazon S3 et, à l'aide des instructions du AppSpec fichier, déploie le contenu sur l'instance.

 CodeDeploy conserve un enregistrement de vos déploiements afin que vous puissiez obtenir l'état du déploiement, les paramètres de configuration du déploiement, l'état de santé de l'instance, etc.

### Vue d'ensemble d'un blue/green déploiement
<a name="welcome-deployment-overview-blue-green"></a>

Un blue/green déploiement permet de mettre à jour vos applications tout en minimisant les interruptions causées par les modifications apportées à une nouvelle version de l'application. CodeDeploy approvisionne la nouvelle version de votre application en même temps que l'ancienne version avant de rediriger votre trafic de production. 
+  **AWS Lambda** : le trafic est transféré d'une version d'une fonction Lambda à une nouvelle version de la même fonction Lambda. 
+  **Amazon ECS** : le trafic est transféré d'un ensemble de tâches de votre service Amazon ECS à un ensemble de tâches de remplacement mis à jour dans le même service Amazon ECS. 
+  **EC2/sur site** : le trafic est transféré d'un ensemble d'instances de l'environnement d'origine vers un ensemble d'instances de remplacement. 

Tous les déploiements AWS Lambda et Amazon ECS offrent de nombreux avantages par rapport à un blue/green. An EC2/On-Premises deployment can be in-place or blue/green. A blue/green déploiement sur place :
+ Vous pouvez installer et tester une application dans le nouvel environnement de remplacement et la déployer en production simplement en réacheminant le trafic.
+  Si vous utilisez la plate-forme informatique EC2/on-premises, le retour à la version la plus récente d'une application est plus rapide et plus fiable. En effet, le trafic peut être réacheminé vers les instances d'origine tant qu'elles n'ont pas été mises hors service. Avec un déploiement sur place, les versions doivent être restaurées en redéployant la version précédente de l'application.
+ Si vous utilisez la plate-forme de calcul EC2/on-premises, les nouvelles instances sont provisionnées pour un blue/green déploiement et reflètent la plupart des configurations de serveur. up-to-date Cela vous aide à éviter le genre de problèmes se produisant parfois sur des instances à longue opération.
+ Si vous utilisez la plate-forme de calcul AWS Lambda, vous contrôlez la manière dont le trafic est transféré de la version d'origine de votre fonction AWS Lambda à votre nouvelle version de fonction AWS Lambda.
+ Si vous utilisez la plate-forme de calcul Amazon ECS, vous contrôlez la manière dont le trafic est transféré de votre ensemble de tâches d'origine vers votre nouvel ensemble de tâches.

Un blue/green déploiement avec CloudFormation peut utiliser l'une des méthodes suivantes :
+ **CloudFormation modèles pour les déploiements** : lorsque vous configurez des déploiements à l'aide de CloudFormation modèles, vos déploiements sont déclenchés par des mises à jour. CloudFormation Lorsque vous modifiez une ressource et que vous téléchargez une modification de modèle, une mise à jour de la pile CloudFormation initie le nouveau déploiement. Pour obtenir la liste des ressources que vous pouvez utiliser dans les CloudFormation modèles, consultez[CloudFormation modèles de CodeDeploy référence](reference-cloudformation-templates.md).
+ Déploiements **bleu/vert via CloudFormation : vous pouvez les utiliser CloudFormation pour gérer vos blue/green déploiements** par le biais de mises à jour de la pile. Vous définissez vos ressources bleues et vertes, en plus de spécifier les paramètres de routage et de stabilisation du trafic, dans le modèle de pile. Ensuite, si vous mettez à jour les ressources sélectionnées lors d'une mise à jour de la pile, que vous CloudFormation générez toutes les ressources vertes nécessaires, que vous déplacez le trafic en fonction des paramètres de routage du trafic spécifiés et que vous supprimez les ressources bleues. Pour plus d'informations, consultez [Automatiser les blue/green déploiements d'Amazon ECS en les CodeDeploy utilisant CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/blue-green.html) dans le *Guide de l'AWS CloudFormation utilisateur*.
**Note**  
Pris en charge uniquement pour les blue/green déploiements Amazon ECS.

La façon dont vous configurez un blue/green déploiement dépend de la plate-forme informatique utilisée par votre déploiement.



#### Déploiement bleu/vert sur une plateforme AWS Lambda informatique ou Amazon ECS
<a name="blue-green-lambda-compute-type"></a>

Si vous utilisez la plateforme de calcul Amazon ECS AWS Lambda ou Amazon ECS, vous devez indiquer comment le trafic est transféré de la AWS Lambda fonction ou de l'ensemble de tâches Amazon ECS d'origine vers la nouvelle fonction ou le nouvel ensemble de tâches. Pour indiquer comment le trafic est transféré, vous devez spécifier l'une des configurations de déploiement suivantes :
+ **canari**
+ **linéaire**
+ **all-at-once**

Pour plus d'informations sur la manière dont le trafic est déplacé dans une configuration Canary, linéaire ou de all-at-once déploiement, consultez[Configuration de déploiement](primary-components.md#primary-components-deployment-configuration).

Pour plus de détails sur la configuration de déploiement Lambda, consultez. [Configurations de déploiement sur une plateforme AWS Lambda informatique](deployment-configurations.md#deployment-configuration-lambda)

Pour plus de détails sur la configuration de déploiement d'Amazon ECS, consultez[Configurations de déploiement sur une plateforme de calcul Amazon ECS](deployment-configurations.md#deployment-configuration-ecs).

#### Blue/Green deployment on an EC2/onplate-forme informatique sur site
<a name="blue-green-server-compute-type"></a>

**Note**  
Vous devez utiliser des instances Amazon EC2 pour les blue/green déploiements sur la plate-forme de calcul EC2/sur site. Les instances locales ne sont pas prises en charge pour le type de blue/green déploiement.

Si vous utilisez la plate-forme de calcul EC2/sur site, les règles suivantes s'appliquent :

 Vous devez disposer d'une ou de plusieurs instances Amazon EC2 avec des balises Amazon EC2 d'identification ou d'un groupe Amazon EC2 Auto Scaling. Les instances doivent répondre à ces exigences supplémentaires :
+ Le profil d'instance IAM approprié doit être attaché à chaque instance Amazon EC2.
+ L' CodeDeploy agent doit être installé et exécuté sur chaque instance.

**Note**  
En général, une révision d'application est également exécutée sur les instances de votre environnement d'origine, mais cela n'est pas obligatoire pour un blue/green déploiement.

Lorsque vous créez un groupe de déploiement utilisé dans les blue/green déploiements, vous pouvez choisir la manière dont votre environnement de remplacement est spécifié :

**Copiez un groupe Amazon EC2 Auto Scaling existant** : pendant blue/green le déploiement CodeDeploy , crée les instances pour votre environnement de remplacement pendant le déploiement. Avec cette option, CodeDeploy utilise le groupe Amazon EC2 Auto Scaling que vous spécifiez comme modèle pour l'environnement de remplacement, y compris le même nombre d'instances en cours d'exécution et de nombreuses autres options de configuration.

**Choisissez les instances manuellement** : vous pouvez spécifier les instances à considérer comme des instances de remplacement à l'aide des balises d'instance Amazon EC2, des noms de groupes Amazon EC2 Auto Scaling, ou des deux. Si vous sélectionnez cette option, vous n'avez pas besoin de spécifier les instances de l'environnement de remplacement jusqu'à la création d'un déploiement.

Voici comment cela fonctionne :

1. Vous possédez déjà des instances ou un groupe Amazon EC2 Auto Scaling qui constitue votre environnement d'origine. La première fois que vous exécutez un blue/green déploiement, vous utilisez généralement des instances déjà utilisées dans le cadre d'un déploiement sur place.

1. Dans une CodeDeploy application existante, vous créez un groupe de blue/green déploiement dans lequel, outre les options requises pour un déploiement sur place, vous spécifiez les éléments suivants :
   + Le ou les équilibreurs de charge qui acheminent le trafic de votre environnement d'origine vers votre environnement de remplacement pendant le processus de blue/green déploiement.
   + Réacheminement immédiat du trafic vers l'environnement de remplacement ou attente pour le réacheminer manuellement. 
   + Débit auquel le trafic est acheminé vers les instances de remplacement.
   + Si les instances remplacées sont mises hors service ou si elles continuent de s'exécuter.

1. Vous créez un déploiement pour ce groupe de déploiement au cours duquel se produisent les événements suivants :

   1. Si vous avez choisi de copier un groupe Amazon EC2 Auto Scaling, des instances sont mises en service pour votre environnement de remplacement.

   1. La révision d'application que vous spécifiez pour le déploiement est installée sur les instances de remplacement.

   1. Si vous avez spécifié un temps d'attente dans les paramètres de groupe de déploiement, le déploiement est interrompu. C'est le moment où vous pouvez exécuter les tests et vérifications dans votre environnement de remplacement. Si vous ne réacheminez pas manuellement le trafic avant la fin du délai d'attente, le déploiement est arrêté.

   1. Les instances de l'environnement de remplacement sont enregistrées auprès d'un équilibreur de charge Elastic Load Balancing et le trafic commence à y être acheminé.

   1. L'enregistrement des instances de l'environnement d'origine est annulé et elles sont traitées selon vos spécifications dans le groupe de déploiement. Soit elles sont mises hors service, soit elles continuent de s'exécuter.

#### Déploiement bleu/vert via CloudFormation
<a name="blue-green-cfn-config-type"></a>

Vous pouvez gérer les déploiements CodeDeploy bleu/vert en modélisant vos ressources à l'aide d'un modèle. CloudFormation 

Lorsque vous modélisez vos blue/green ressources à l'aide d'un CloudFormation modèle, vous créez une mise à jour de la pile CloudFormation qui met à jour votre ensemble de tâches. Le trafic de production passe de l'ensemble de tâches d'origine de votre service à un ensemble de tâches de remplacement soit en une seule fois, avec des déploiements linéaires et des temps d'attente, soit avec des déploiements de type Canary. La mise à jour de la pile lance un déploiement dans CodeDeploy. Vous pouvez consulter l'état et l'historique du déploiement dans le modèle CodeDeploy, mais vous ne devez pas créer ni gérer de CodeDeploy ressources en dehors du CloudFormation modèle.

**Note**  
Pour les blue/green déploiements via CloudFormation, vous ne créez pas d' CodeDeploy application ou de groupe de déploiement.

Cette méthode prend uniquement en charge les blue/green déploiements Amazon ECS. Pour plus d'informations sur les blue/green déploiements via CloudFormation, consultez[Créez un blue/green déploiement Amazon ECS via CloudFormation](deployments-create-ecs-cfn.md).

## Nous voulons entendre parler de vous
<a name="welcome-contact-us"></a>

Nous apprécions vos commentaires. Pour nous contacter, rendez-vous [ CodeDeploy sur le forum](https://forums.aws.amazon.com/forum.jspa?forumID=179).

**Rubriques**
+ [Primary Components](primary-components.md)
+ [Deployments](deployment-steps.md)
+ [Application Specification Files](application-specification-files.md)

# CodeDeploy composants principaux
<a name="primary-components"></a>

Avant de commencer à utiliser le service, vous devez vous familiariser avec les principaux composants du processus de CodeDeploy déploiement.

**Topics**
+ [

## Application
](#primary-components-application)
+ [

## Plateforme de calcul
](#primary-components-compute-platform)
+ [

## Configuration de déploiement
](#primary-components-deployment-configuration)
+ [

## Groupe de déploiement
](#primary-components-deployment-group)
+ [

## Type de déploiement
](#primary-components-deployment-type)
+ [

## Profil d'instance IAM
](#primary-components-iam-instance-profile)
+ [

## Revision
](#primary-components-revision)
+ [

## Rôle de service
](#primary-components-service-role)
+ [

## Révision cible
](#primary-components-target-revision)
+ [

## Autres composants
](#primary-components-other-components)

## Application
<a name="primary-components-application"></a>

Une *application* est un nom qui identifie de manière unique l'application que vous souhaitez déployer. CodeDeploy utilise ce nom, qui fonctionne comme un conteneur, pour garantir que la combinaison correcte de révision, de configuration de déploiement et de groupe de déploiement est référencée lors d'un déploiement.

## Plateforme de calcul
<a name="primary-components-compute-platform"></a>

Une *plateforme de calcul* est une plateforme sur laquelle est CodeDeploy déployée une application. Il existe trois plateformes de calcul :
+ **EC2/On-Premises** : décrit les instances de serveurs physiques qui peuvent être des instances EC2 cloud Amazon, des serveurs sur site ou les deux. Les applications créées à l'aide de la plate-forme EC2 de calcul /On-Premises peuvent être composées de fichiers exécutables, de fichiers de configuration, d'images, etc.

  Les déploiements qui utilisent la plate-forme de calcul EC2 /On-Premises gèrent la manière dont le trafic est dirigé vers les instances en utilisant un type de déploiement sur place ou bleu/vert. Pour de plus amples informations, veuillez consulter [Vue d'ensemble des types de CodeDeploy déploiement](welcome.md#welcome-deployment-overview).
+ **AWS Lambda** : utilisé pour déployer des applications qui consistent en une version mise à jour d'une fonction Lambda. AWS Lambda gère la fonction Lambda dans un environnement de calcul sans serveur composé d'une structure de calcul à haute disponibilité. Toute l'administration des ressources informatiques est effectuée par AWS Lambda. Pour plus d'informations, consultez la section [Informatique et applications sans serveur](https://aws.amazon.com/serverless/). Pour plus d'informations sur AWS Lambda les fonctions Lambda, consultez. [AWS Lambda](https://aws.amazon.com/lambda/)

  Vous pouvez gérer la manière dont le trafic est transféré vers les versions mises à jour des fonctions Lambda lors d'un déploiement en choisissant une option Canary, une configuration linéaire ou all-at-once une configuration. 
+ **Amazon ECS** : utilisé pour déployer une application conteneurisée Amazon ECS sous forme d'ensemble de tâches. CodeDeploy effectue un blue/green déploiement en installant une version mise à jour de l'application en tant que nouvel ensemble de tâches de remplacement. CodeDeploy redirige le trafic de production de l'ensemble de tâches d'application d'origine vers le jeu de tâches de remplacement. L'ensemble de tâches d'origine est arrêté après un déploiement réussi. Pour plus d'informations sur Amazon ECS, consultez [Amazon Elastic Container Service](https://aws.amazon.com/ecs/).

  Vous pouvez gérer la manière dont le trafic est transféré vers l'ensemble de tâches mis à jour au cours d'un déploiement en choisissant une configuration Canary, Linear ou une all-at-once configuration.

**Note**  
Les blue/green déploiements Amazon ECS sont pris en charge à la fois par CodeDeploy et CloudFormation. Les détails de ces déploiements sont décrits dans les sections suivantes.

## Configuration de déploiement
<a name="primary-components-deployment-configuration"></a>

Une *configuration de déploiement* est un ensemble de règles de déploiement et de conditions de réussite et d'échec du déploiement utilisées CodeDeploy lors d'un déploiement. Si votre déploiement utilise la plate-forme de calcul EC2 /On-Premises, vous pouvez spécifier le nombre minimum d'instances saines pour le déploiement. Si votre déploiement utilise la plateforme de calcul Amazon ECS AWS Lambda ou la plateforme de calcul Amazon ECS, vous pouvez spécifier la manière dont le trafic est acheminé vers votre fonction Lambda ou votre ensemble de tâches ECS mis à jour.

Pour plus d'informations sur la spécification du nombre minimum d'hôtes sains pour un déploiement utilisant la plate-forme de calcul EC2 /On-Premises, consultez. [À propos du nombre minimum d'instances saines](instances-health.md#minimum-healthy-hosts)

Les configurations de déploiement suivantes spécifient la manière dont le trafic est acheminé lors d'un déploiement utilisant la plate-forme de calcul Lambda ou ECS :
+ **Canary** : le trafic est déplacé en deux incréments. Vous pouvez choisir parmi les options Canary prédéfinies qui spécifient le pourcentage de trafic transféré vers votre fonction Lambda ou votre ensemble de tâches ECS mis à jour dans le premier incrément et l'intervalle, en minutes, avant que le trafic restant ne soit transféré dans le second incrément. 
+ **Linéaire** : le trafic est déplacé en incréments égaux, avec un nombre de minutes égal entre chaque incrément. Vous pouvez choisir parmi les options linéaires prédéfinies qui définissent le pourcentage de trafic déplacé pour chaque incrément et le nombre de minutes entre chaque incrément.
+ **R ll-at-once** : Tout le trafic est transféré de la fonction Lambda ou de l'ensemble de tâches ECS d'origine vers la fonction ou l'ensemble de tâches mis à jour en une seule fois.

## Groupe de déploiement
<a name="primary-components-deployment-group"></a>

Un *groupe de déploiement* est un ensemble d'instances individuelles. Un groupe de déploiement contient des instances étiquetées individuellement, des EC2 instances Amazon dans des groupes Amazon EC2 Auto Scaling, ou les deux. Pour plus d'informations sur les balises d' EC2 instance Amazon, consultez la section [Utilisation des balises à l'aide de la console](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#Using_Tags_Console). Pour en savoir plus sur les instances sur site, consultez la rubrique [Utilisation d'instances locales pour CodeDeploy](instances-on-premises.md). Pour plus d'informations sur Amazon EC2 Auto Scaling, consultez[Intégration CodeDeploy à Amazon EC2 Auto Scaling](integrations-aws-auto-scaling.md).

## Type de déploiement
<a name="primary-components-deployment-type"></a>

Un *type de déploiement* est une méthode utilisée pour rendre la dernière révision de l'application disponible sur les instances d'un groupe de déploiement. Il existe deux types de déploiement :
+ **Déploiement sur place** : l'application de chaque instance du groupe de déploiement est arrêtée, la dernière révision de l'application est installée et la nouvelle version de l'application est démarrée et validée. Vous pouvez utiliser un équilibreur de charge afin que chaque instance soit désenregistrée pendant son déploiement, puis remise en service une fois le déploiement terminé. Seuls les déploiements qui utilisent la plate-forme de calcul EC2 /On-Premises peuvent utiliser des déploiements sur place. Pour plus d'informations sur les déploiements sur place, consultez [Vue d'ensemble d'un déploiement sur place](welcome.md#welcome-deployment-overview-in-place).
+ **Déploiement bleu/vert** : le comportement de votre déploiement dépend de la plateforme informatique que vous utilisez :
  + **Blue/green on an EC2/On-Plateforme de calcul sur site** : les instances d'un groupe de déploiement (l'environnement d'origine) sont remplacées par un ensemble d'instances différent (l'environnement de remplacement) en suivant les étapes suivantes :
    + Les instances sont provisionnées pour l'environnement de remplacement.
    + La dernière version de l'application est installée sur les instances de remplacement.
    + Un temps d'attente facultatif se produit pour des activités telles que les tests d'applications et la vérification du système.
    + Les instances de l'environnement de remplacement sont enregistrées auprès d'un ou de plusieurs équilibreurs de charge Elastic Load Balancing, ce qui entraîne le reroutage du trafic vers celles-ci. Les instances de l'environnement d'origine sont désenregistrées et peuvent être résiliées ou maintenues en cours d'exécution pour d'autres utilisations.
**Note**  
Si vous utilisez une plateforme de calcul EC2 /On-Premises, sachez que les blue/green déploiements fonctionnent uniquement avec les instances Amazon EC2 .
  + **Bleu/vert sur une plateforme de calcul AWS Lambda Amazon ECS** ou Amazon ECS : le trafic est décalé par incréments en fonction d'une configuration **canarienne**, **linéaire** ou **all-at-once**de déploiement.
  + **Déploiements bleu/vert via CloudFormation : le** trafic est transféré de vos ressources actuelles vers vos ressources mises à jour dans le cadre d'une CloudFormation mise à jour de la pile. Actuellement, seuls les blue/green déploiements ECS sont pris en charge. 

  Pour plus d'informations sur les blue/green déploiements, consultez[Vue d'ensemble d'un blue/green déploiement](welcome.md#welcome-deployment-overview-blue-green).

**Note**  
Les blue/green déploiements Amazon ECS sont pris en charge en utilisant à la fois CodeDeploy et CloudFormation. Les détails de ces déploiements sont décrits dans les sections suivantes.

## Profil d'instance IAM
<a name="primary-components-iam-instance-profile"></a>

Un *profil d'instance IAM* est un rôle IAM que vous associez à vos instances Amazon EC2 . Ce profil inclut les autorisations requises pour accéder aux compartiments ou aux GitHub référentiels Amazon S3 dans lesquels les applications sont stockées. Pour de plus amples informations, veuillez consulter [Étape 4 : Création d'un profil d'instance IAM pour vos instances Amazon EC2](getting-started-create-iam-instance-profile.md).

## Revision
<a name="primary-components-revision"></a>

Une *révision* est une version de votre application. Une révision de déploiement AWS Lambda est un fichier au format YAML ou JSON qui spécifie des informations sur la fonction Lambda à déployer. Une révision de déploiement EC2 /On-Premises est un fichier d'archive qui contient le contenu source (code source, pages Web, fichiers exécutables et scripts de déploiement) et un fichier de spécification d'application (AppSpec fichier). AWS Les révisions Lambda peuvent être stockées dans des compartiments Amazon S3. EC2Les révisions /On-Premises sont stockées dans des compartiments ou des référentiels Amazon S3. GitHub Pour Amazon S3, une révision est identifiée de manière unique par sa clé d'objet Amazon S3 et sa version ETag, ou les deux. En GitHub effet, une révision est identifiée de manière unique par son ID de validation.

## Rôle de service
<a name="primary-components-service-role"></a>

Un *rôle de service* est un rôle IAM qui accorde des autorisations à un AWS service afin qu'il puisse accéder aux AWS ressources. Les politiques que vous attachez au rôle de service déterminent les AWS ressources auxquelles le service peut accéder et les actions qu'il peut effectuer avec ces ressources. En CodeDeploy effet, un rôle de service est utilisé pour les opérations suivantes :
+ Pour lire les balises appliquées aux instances ou les noms de groupes Amazon EC2 Auto Scaling associés aux instances. Cela permet d' CodeDeploy identifier les instances sur lesquelles il peut déployer des applications.
+ Pour effectuer des opérations sur des instances, des groupes Amazon EC2 Auto Scaling et des équilibreurs de charge Elastic Load Balancing.
+ Publier des informations dans les rubriques Amazon SNS afin que des notifications puissent être envoyées lorsque des événements de déploiement ou d'instance spécifiés se produisent.
+ Pour récupérer des informations sur les CloudWatch alarmes afin de configurer la surveillance des alarmes pour les déploiements.

Pour de plus amples informations, veuillez consulter [Étape 2 : créer un rôle de service pour CodeDeploy](getting-started-create-service-role.md).

## Révision cible
<a name="primary-components-target-revision"></a>

Une *révision cible* est la version la plus récente de la révision de l'application que vous avez téléchargée dans votre référentiel et que vous souhaitez déployer sur les instances d'un groupe de déploiement. En d'autres termes, il s'agit de la révision d'application actuellement ciblée pour le déploiement. C'est également la révision utilisée pour les déploiements automatiques.

## Autres composants
<a name="primary-components-other-components"></a>

Pour plus d'informations sur les autres composants du CodeDeploy flux de travail, consultez les rubriques suivantes :
+ [Choisissez un type de CodeDeploy référentiel](application-revisions-repository-type.md)
+  [CodeDeploy déploiements](deployment-steps.md)
+  [CodeDeploy fichiers de spécification de l'application (AppSpec)](application-specification-files.md)
+  [CodeDeploy santé de l'instance](instances-health.md)
+  [Travailler avec l' CodeDeploy agent](codedeploy-agent.md)
+  [Utilisation d'instances locales pour CodeDeploy](instances-on-premises.md)

# CodeDeploy déploiements
<a name="deployment-steps"></a>

Cette rubrique fournit des informations sur les composants et le flux de travail des déploiements dans CodeDeploy. Le processus de déploiement varie en fonction de la plateforme de calcul ou de la méthode de déploiement (Lambda, Amazon ECS, EC2/on-premises ou via AWS CloudFormation) que vous utilisez pour vos déploiements.

**Topics**
+ [

# Déploiements sur une plateforme de calcul AWS Lambda
](deployment-steps-lambda.md)
+ [

# Déploiements sur une plateforme de calcul Amazon ECS
](deployment-steps-ecs.md)
+ [

# Déploiements sur une plateforme informatique EC2/sur site
](deployment-steps-server.md)

# Déploiements sur une plateforme de calcul AWS Lambda
<a name="deployment-steps-lambda"></a>

Cette rubrique fournit des informations sur les composants et le flux de travail des CodeDeploy déploiements qui utilisent la plate-forme de calcul AWS Lambda. 

**Topics**
+ [

## Flux de travail de déploiement sur une plateforme AWS Lambda informatique
](#deployment-process-workflow-lambda)
+ [

## Téléchargement de la version révisée de votre application
](#deployment-steps-uploading-your-app-lambda)
+ [

## Création de vos groupes d'applications et de déploiement
](#deployment-steps-registering-app-deployment-groups-lambda)
+ [

## Déploiement de la révision de votre application
](#deployment-steps-deploy-lambda)
+ [

## Mettre à jour votre application
](#deployment-steps-updating-your-app-lambda)
+ [

## Déploiements interrompus ou échoués
](#deployment-stop-fail-lambda)
+ [

## Redéploiements et annulations de déploiements
](#deployment-rollback-lambda)

## Flux de travail de déploiement sur une plateforme AWS Lambda informatique
<a name="deployment-process-workflow-lambda"></a>

Le schéma suivant illustre les principales étapes du déploiement de fonctions AWS Lambda nouvelles et mises à jour.

![\[Comment CodeDeploy déploie une AWS Lambda fonction nouvelle ou mise à jour.\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/images/deployment-process-lambda.png)


Les étapes sont les suivantes :

1. Créez une application et attribuez-lui un nom qui identifie de façon unique les révisions d'application que vous souhaitez déployer. Pour déployer des fonctions Lambda, choisissez la plateforme de calcul AWS Lambda lorsque vous créez votre application. CodeDeploy utilise ce nom lors d'un déploiement pour s'assurer qu'il fait référence aux composants de déploiement appropriés, tels que le groupe de déploiement, la configuration du déploiement et la révision de l'application. Pour de plus amples informations, veuillez consulter [Créez une application avec CodeDeploy](applications-create.md). 

1. Configurez un groupe de déploiement en spécifiant votre nom de groupe de déploiement.

1. Choisissez une configuration de déploiement pour spécifier la manière dont le trafic est transféré de votre version de AWS Lambda fonction d'origine à votre nouvelle version de fonction Lambda. Pour de plus amples informations, veuillez consulter [Consultez les détails de configuration du déploiement avec CodeDeploy](deployment-configurations-view-details.md).

1. Chargement d'un *fichier de spécification d'application* (AppSpec fichier) sur Amazon S3. Le AppSpec fichier indique la version de la fonction Lambda et les fonctions Lambda utilisées pour valider votre déploiement. Si vous ne souhaitez pas créer de AppSpec fichier, vous pouvez spécifier une version de fonction Lambda et des fonctions de validation du déploiement Lambda directement dans la console à l'aide de YAML ou JSON. Pour de plus amples informations, veuillez consulter [Travailler avec les révisions d'applications pour CodeDeploy](application-revisions.md).

1. Déployez la révision de votre application dans le groupe de déploiement. AWS CodeDeploy déploie la révision de la fonction Lambda que vous avez spécifiée. Le trafic est transféré vers votre version de fonction Lambda à l'aide du AppSpec fichier de déploiement que vous avez choisi lors de la création de votre application. Pour de plus amples informations, veuillez consulter [Créez un déploiement avec CodeDeploy](deployments-create.md).

1. Vérifiez les résultats du déploiement. Pour de plus amples informations, veuillez consulter [Surveillance des déploiements dans CodeDeploy](monitoring.md).

## Téléchargement de la version révisée de votre application
<a name="deployment-steps-uploading-your-app-lambda"></a>

Placez un AppSpec fichier dans Amazon S3 ou saisissez-le directement dans la console ou AWS CLI. Pour de plus amples informations, veuillez consulter [CodeDeploy fichiers de spécification de l'application (AppSpec)](application-specification-files.md).

## Création de vos groupes d'applications et de déploiement
<a name="deployment-steps-registering-app-deployment-groups-lambda"></a>

Un groupe CodeDeploy de déploiement sur une plate-forme de calcul AWS Lambda identifie un ensemble d'un ou de plusieurs AppSpec fichiers. Chaque AppSpec fichier peut déployer une version de fonction Lambda. Un groupe de déploiement définit également un ensemble d'options de configuration pour les déploiements futurs, telles des alarmes et des configurations de rétrogradation.

## Déploiement de la révision de votre application
<a name="deployment-steps-deploy-lambda"></a>

Vous êtes maintenant prêt à déployer la révision de fonction spécifiée dans le AppSpec fichier vers le groupe de déploiement. Vous pouvez utiliser la CodeDeploy console ou la commande [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html). Vous pouvez spécifier certains paramètres pour contrôler votre déploiement, y compris la révision, le groupe de déploiement et la configuration de déploiement.

## Mettre à jour votre application
<a name="deployment-steps-updating-your-app-lambda"></a>

Vous pouvez mettre à jour votre application, puis utiliser la CodeDeploy console ou appeler la commande [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html) pour envoyer une révision. 

## Déploiements interrompus ou échoués
<a name="deployment-stop-fail-lambda"></a>

Vous pouvez utiliser la CodeDeploy console ou la commande [stop-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/stop-deployment.html) pour arrêter un déploiement. Lorsque vous essayez d'arrêter le déploiement, trois choses peuvent se produire :
+ Le déploiement s'arrête et l'opération renvoie un statut de réussite. Dans ce cas, aucun événement de cycle de vie de déploiement supplémentaire ne se déroule sur le groupe de déploiement pour le déploiement arrêté. 
+ Le déploiement ne s'arrête pas immédiatement et l'opération renvoie un statut d'attente. Dans ce cas, certains événements de cycle de vie de déploiement peuvent encore se dérouler sur le groupe de déploiement. Une fois l'opération en attente terminée, les appels suivants visant à arrêter le déploiement renvoient un statut de réussite.
+ Le déploiement ne peut pas s'arrêter et l'opération renvoie une erreur. Pour plus d'informations, consultez [ErrorInformation](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ErrorInformation.html)la section [Erreurs courantes](https://docs.aws.amazon.com/codedeploy/latest/APIReference/CommonErrors.html) dans la référence AWS CodeDeploy d'API.

Comme les déploiements arrêtés, les déploiements échoués peuvent se traduire par des événements de cycle de vie de déploiement ayant déjà été exécutés. Pour découvrir les raisons d'un déploiement échoué, vous pouvez utiliser la console CodeDeploy ou analyser les données du fichier journal à partir du déploiement ayant échoué. Pour plus d’informations, consultez [Révision de l'application et nettoyage des fichiers journaux](codedeploy-agent.md#codedeploy-agent-revisions-logs-cleanup) et [Afficher les données du journal pour les déploiements CodeDeploy EC2/sur site](deployments-view-logs.md).

## Redéploiements et annulations de déploiements
<a name="deployment-rollback-lambda"></a>

CodeDeploy implémente les annulations en redéployant, en tant que nouveau déploiement, une révision précédemment déployée. 

Vous pouvez configurer un groupe de déploiement pour restaurer automatiquement les déploiements lorsque certaines conditions sont remplies, y compris lorsqu'un déploiement échoue, ou si un seuil de surveillance d'alarme est atteint. Vous pouvez également remplacer les paramètres de restauration spécifiés pour un groupe de déploiement dans un déploiement individuel.

Vous pouvez également choisir de restaurer un déploiement ayant échoué en redéployant manuellement une révision précédemment déployée. 

Dans tous les cas, un déploiement nouveau ou annulé est attribué à son propre identifiant de déploiement. La liste des déploiements que vous pouvez consulter dans la CodeDeploy console indique ceux qui sont le résultat d'un déploiement automatique. 

Pour de plus amples informations, veuillez consulter [Redéployez et annulez un déploiement avec CodeDeploy](deployments-rollback-and-redeploy.md).

# Déploiements sur une plateforme de calcul Amazon ECS
<a name="deployment-steps-ecs"></a>

Cette rubrique fournit des informations sur les composants et le flux de travail des CodeDeploy déploiements qui utilisent la plateforme de calcul Amazon ECS. 

**Topics**
+ [

## Avant de commencer un déploiement Amazon ECS
](#deployment-steps-prerequisites-ecs)
+ [

## Flux de travail de déploiement (haut niveau) sur une plateforme de calcul Amazon ECS
](#deployment-process-workflow-ecs)
+ [

## Que se passe-t-il lors d'un déploiement d'Amazon ECS
](#deployment-steps-what-happens)
+ [

## Téléchargement de la version révisée de votre application
](#deployment-steps-uploading-your-app-ecs)
+ [

## Création de vos groupes d'applications et de déploiement
](#deployment-steps-registering-app-deployment-groups-ecs)
+ [

## Déploiement de la révision de votre application
](#deployment-steps-deploy-ecs)
+ [

## Mettre à jour votre application
](#deployment-steps-updating-your-app-ecs)
+ [

## Déploiements interrompus ou échoués
](#deployment-stop-fail-ecs)
+ [

## Redéploiements et annulations de déploiements
](#deployment-rollback-ecs)
+ [

## blue/green Déploiements Amazon ECS via AWS CloudFormation
](#deployment-steps-ecs-cf)

## Avant de commencer un déploiement Amazon ECS
<a name="deployment-steps-prerequisites-ecs"></a>

 Avant de commencer le déploiement d'une application Amazon ECS, vous devez disposer des éléments suivants. Certaines exigences sont spécifiées lorsque vous créez votre groupe de déploiement, tandis que d'autres sont spécifiées dans le AppSpec fichier.


****  

| Exigence | Mention | 
| --- | --- | 
| Cluster Amazon ECS | Groupe de déploiement | 
| Amazon ECS service | Groupe de déploiement | 
| Application Load Balancer ou Network Load Balancer | Groupe de déploiement | 
| Écouteur de production | Groupe de déploiement | 
| Écouteur de test (facultatif) | Groupe de déploiement | 
| Deux groupes cibles | Groupe de déploiement | 
| Définition de tâche Amazon ECS | AppSpec fichier | 
| Nom du conteneur | AppSpec fichier | 
| Port du conteneur | AppSpec fichier | 

**Cluster Amazon ECS**  
Un *cluster* Amazon ECS est un regroupement logique de tâches ou de services. Vous spécifiez le cluster Amazon ECS qui contient votre service Amazon ECS lorsque vous créez le groupe de déploiement de votre CodeDeploy application. Pour plus d'informations, consultez les [clusters Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_clusters.html) dans le *guide de l'utilisateur d'Amazon Elastic Container Service*.

**Service Amazon ECS**  
Un *service* Amazon ECS gère et exécute des instances spécifiées d'une définition de tâche dans un cluster Amazon ECS. Votre service Amazon ECS doit être activé pour CodeDeploy. Par défaut, un service Amazon ECS est activé pour les déploiements Amazon ECS. Lorsque vous créez votre groupe de déploiement, vous choisissez de déployer un service Amazon ECS qui se trouve dans votre cluster Amazon ECS. Pour plus d'informations, consultez les [services Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html) dans le *guide de l'utilisateur d'Amazon Elastic Container Service*.

**Application Load Balancer ou Network Load Balancer**  
 Vous devez utiliser Elastic Load Balancing avec le service Amazon ECS que vous souhaitez mettre à jour avec un déploiement Amazon ECS. Vous pouvez utiliser un Application Load Balancer ou un Network Load Balancer. Nous recommandons un Application Load Balancer afin que vous puissiez tirer parti de fonctionnalités telles que le mappage dynamique des ports, le routage basé sur le chemin et les règles de priorité. Vous spécifiez l'équilibreur de charge lorsque vous créez le groupe de déploiement de votre CodeDeploy application. Pour plus d'informations, consultez la section [Création [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) d'un équilibreur de charge](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-load-balancer.html) dans le *guide de l'utilisateur d'Amazon Elastic Container Service*. 

**Un ou deux auditeurs**  
Un *écouteur* est utilisé par votre équilibreur de charge pour diriger le trafic vers vos groupes cibles. Un écouteur de production est obligatoire. Vous pouvez spécifier un deuxième écouteur de test facultatif qui dirige le trafic vers votre ensemble de tâches de remplacement lors de l'exécution des tests de validation. Vous spécifiez un écouteur ou les deux lors de la création de votre groupe de déploiement. Si vous utilisez la console Amazon ECS pour créer votre service Amazon ECS, vos écouteurs sont créés pour vous. Pour plus d'informations, consultez les sections [Listeners for your application load balancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listener.html) dans le guide de l'*utilisateur d'Elastic Load Balancing et [Creating a service](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-service.html) dans le guide* de l'*utilisateur d'Amazon Elastic Container Service*.

**Deux groupes cibles Amazon ECS**  
 Un *groupe cible* est utilisé pour acheminer le trafic vers une cible enregistrée. Un déploiement Amazon ECS nécessite deux groupes cibles : un pour l'ensemble de tâches d'origine de votre application Amazon ECS et un pour son ensemble de tâches de remplacement. Au cours du déploiement, CodeDeploy crée un ensemble de tâches de remplacement et redirige le trafic de l'ensemble de tâches d'origine vers le nouveau. Vous spécifiez les groupes cibles lors de la création du groupe de déploiement de votre application CodeDeploy .   
 Au cours d'un déploiement, CodeDeploy déterminez quel groupe cible est associé à l'ensemble de tâches de votre service Amazon ECS qui possède le statut `PRIMARY` (il s'agit de l'ensemble de tâches d'origine) et associe un groupe cible à celui-ci, puis associe l'autre groupe cible à l'ensemble de tâches de remplacement. Si vous effectuez un autre déploiement, le groupe cible associé à l'ensemble de tâches d'origine du déploiement actuel est associé à l'ensemble de tâches de remplacement du déploiement suivant. Pour plus d'informations, consultez la section [Groupes cibles pour les équilibreurs de charge de votre application dans le *guide de l'utilisateur d'Elastic Load Balancing*](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html). 

**Une définition de tâche Amazon ECS**  
 Une *définition de tâche* est requise pour exécuter le conteneur Docker qui contient votre application Amazon ECS. Vous spécifiez l'ARN de votre définition de tâche dans le AppSpec fichier de votre CodeDeploy application. Pour plus d'informations, consultez les [définitions des tâches Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html) dans le *guide de l'utilisateur d'Amazon Elastic Container Service* et[AppSpec section « ressources » pour les déploiements Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs). 

**Un conteneur pour votre application Amazon ECS**  
 Un *conteneur* Docker est une unité de logiciel qui regroupe le code et ses dépendances afin que votre application puisse s'exécuter. Un conteneur isole votre application afin qu'elle s'exécute dans différents environnements informatiques. Votre équilibreur de charge dirige le trafic vers un conteneur dans l'ensemble de tâches de votre application Amazon ECS. Vous spécifiez le nom de votre conteneur dans le AppSpec fichier de votre CodeDeploy application. Le conteneur spécifié dans votre AppSpec fichier doit être l'un des conteneurs spécifiés dans votre définition de tâche Amazon ECS. Pour plus d'informations, consultez [Qu'est-ce qu'Amazon Elastic Container Service ?](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) dans le *guide de l'utilisateur d'Amazon Elastic Container Service* et[AppSpec section « ressources » pour les déploiements Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs). 

**Un port pour votre ensemble de tâches de remplacement**  
 Lors de votre déploiement Amazon ECS, votre équilibreur de charge dirige le trafic vers ce *port* sur le conteneur spécifié dans le AppSpec fichier de votre CodeDeploy application. Vous spécifiez le port dans le AppSpec fichier de votre CodeDeploy application. Pour de plus amples informations, veuillez consulter [AppSpec section « ressources » pour les déploiements Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs). 

## Flux de travail de déploiement (haut niveau) sur une plateforme de calcul Amazon ECS
<a name="deployment-process-workflow-ecs"></a>

Le schéma suivant montre les principales étapes du déploiement des services Amazon ECS mis à jour.

![\[Comment CodeDeploy déploie une application en tant qu'ensemble de tâches dans Amazon ECS.\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/images/deployment-process-ecs.png)


Les étapes sont les suivantes :

1. Créez une AWS CodeDeploy application en spécifiant un nom qui représente de manière unique ce que vous souhaitez déployer. Pour déployer une application Amazon ECS, dans votre AWS CodeDeploy application, choisissez la plateforme de calcul Amazon ECS. CodeDeploy utilise une application lors d'un déploiement pour référencer les composants de déploiement appropriés, tels que le groupe de déploiement, les groupes cibles, les écouteurs, le comportement de réacheminement du trafic et la révision de l'application. Pour de plus amples informations, veuillez consulter [Créez une application avec CodeDeploy](applications-create.md). 

1. Configurez un groupe de déploiement en spécifiant les éléments suivants :
   +  Le nom du groupe de déploiement. 
   +  Votre cluster Amazon ECS et le nom de votre service. Le contrôleur de déploiement du service Amazon ECS doit être configuré sur CodeDeploy. 
   +  L'écouteur de production, un écouteur de test facultatif et les groupes cibles utilisés au cours d'un déploiement. 
   +  Les paramètres de déploiement, tels que le moment où le trafic de production doit être redirigé vers le jeu de tâches Amazon ECS de remplacement dans votre service Amazon ECS et le moment où vous devez mettre fin à l'ensemble de tâches Amazon ECS d'origine dans votre service Amazon ECS. 
   +  Des paramètres facultatifs, tels que les déclencheurs, les alarmes et le comportement de restauration. 

1. Spécifiez un *fichier de spécification d'application* (AppSpec fichier). Vous pouvez le télécharger sur Amazon S3, le saisir dans la console au format YAML ou JSON, ou le spécifier à l'aide du AWS CLI SDK. Le AppSpec fichier spécifie une définition de tâche Amazon ECS pour le déploiement, le nom du conteneur et le mappage des ports utilisés pour acheminer le trafic, ainsi que les fonctions Lambda exécutées après les hooks du cycle de vie du déploiement. Le nom du conteneur doit être un conteneur dans votre définition de tâche Amazon ECS. Pour de plus amples informations, veuillez consulter [Travailler avec les révisions d'applications pour CodeDeploy](application-revisions.md).

1. Déployez la révision de votre application. AWS CodeDeploy redirige le trafic de la version d'origine d'un ensemble de tâches de votre service Amazon ECS vers un nouvel ensemble de tâches de remplacement. Les groupes cibles spécifiés dans le groupe de déploiement sont utilisés pour diriger le trafic vers les ensembles de tâches d'origine et de remplacement. Lorsque le déploiement est terminé, l'ensemble de tâches d'origine est arrêté. Vous pouvez spécifier un écouteur de test facultatif pour diriger le trafic de test vers votre version de remplacement avant que le trafic soir réacheminé vers celle-ci. Pour de plus amples informations, veuillez consulter [Créez un déploiement avec CodeDeploy](deployments-create.md).

1. Vérifiez les résultats du déploiement. Pour de plus amples informations, veuillez consulter [Surveillance des déploiements dans CodeDeploy](monitoring.md).

## Que se passe-t-il lors d'un déploiement d'Amazon ECS
<a name="deployment-steps-what-happens"></a>

Avant de démarrer un déploiement Amazon ECS avec un écouteur de test, vous devez configurer ses composants. Pour de plus amples informations, veuillez consulter [Avant de commencer un déploiement Amazon ECS](#deployment-steps-prerequisites-ecs).

 Le schéma suivant montre la relation entre ces composants lorsqu'un déploiement Amazon ECS est prêt à démarrer. 

![\[La relation entre l'équilibreur de charge, les écouteurs, les groupes cibles et l'ensemble de tâches lorsqu'un déploiement Amazon ECS est prêt à démarrer.\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-1.png)


Lorsque le déploiement démarre, les événements de cycle de vie du déploiement s’exécutent les uns après les autres. Certains événements du cycle de vie sont des hooks qui exécutent uniquement les fonctions Lambda spécifiées dans le AppSpec fichier. Dans le tableau suivant, les événements de cycle de vie du déploiement sont répertoriés dans leur ordre d’exécution. Pour de plus amples informations, veuillez consulter [AppSpec section « hooks » pour un déploiement Amazon ECS](reference-appspec-file-structure-hooks.md#appspec-hooks-ecs).


| Événement lié au cycle | Action liée aux événements liés au cycle | 
| --- | --- | 
| BeforeInstall(un crochet pour les fonctions Lambda) | Exécutez les fonctions Lambda. | 
| Installation | Configuration de l’ensemble de tâches de remplacement. | 
| AfterInstall(un crochet pour les fonctions Lambda) | Exécutez les fonctions Lambda. | 
| AllowTestTraffic | Acheminement du trafic de l'écouteur de test au groupe cible 2. | 
| AfterAllowTestTraffic(un crochet pour les fonctions Lambda) | Exécutez les fonctions Lambda. | 
| BeforeAllowTraffic(un crochet pour les fonctions Lambda) | Exécutez les fonctions Lambda. | 
| AllowTraffic | Acheminement du trafic de l'écouteur de production au groupe cible 2. | 
| AfterAllowTraffic | Exécutez les fonctions Lambda. | 



**Note**  
Les fonctions Lambda d'un hook sont facultatives.

1. <a name="ecs-before-install"></a>

****

   Exécute toutes les fonctions Lambda spécifiées dans le `BeforeInstall` hook du fichier. AppSpec 

1. <a name="ecs-install"></a>

****

   Au cours de l'événement de cycle de vie `Install` :

   1.  Un ensemble de tâches de remplacement est créé dans votre service Amazon ECS. 

   1.  L’application conteneurisée mise à jour est installée dans l’ensemble de tâches de remplacement. 

   1.  Le deuxième groupe cible est associé à l’ensemble de tâches de remplacement. 

    Ce schéma présente les composants de déploiement avec le nouvel ensemble de tâches de remplacement. L'application conteneurisée est à l'intérieur de cet ensemble de tâches. L’ensemble de tâches se compose de trois tâches. (Une application peut comporter n’importe quel nombre de tâches.) Le deuxième groupe cible est désormais associé à l’ensemble de tâches de remplacement.   
![\[Les composants de déploiement avec le nouvel ensemble de tâches de remplacement. L'application conteneurisée est à l'intérieur de cet ensemble de tâches. L’ensemble de tâches se compose de trois tâches. Le deuxième groupe cible est désormais associé à l’ensemble de tâches de remplacement.\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-2.png)

1. <a name="ecs-after-install"></a>

****

   Exécute toutes les fonctions Lambda spécifiées dans le `AfterInstall` hook du fichier. AppSpec 

1. <a name="ecs-allow-test-traffic"></a>

****

   L'événement `AllowTestTraffic` est appelé. Durant cet événement de cycle de vie, l’écouteur de test achemine le trafic vers l'application conteneurisée mise à jour.  
![\[L'écouteur de test achemine le trafic vers l'application conteneurisée mise à jour.\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-3.png)

1. <a name="ecs-after-allow-test-traffic"></a>

****

   Exécute toutes les fonctions Lambda spécifiées dans le `AfterAllowTestTraffic` hook du fichier. AppSpec Les fonctions Lambda peuvent valider le déploiement à l'aide du trafic de test. Par exemple, une fonction Lambda peut diriger le trafic vers l'écouteur de test et suivre les métriques de l’ensemble de tâches de remplacement. Si des annulations sont configurées, vous pouvez configurer une CloudWatch alarme qui déclenche une annulation lorsque le test de validation de votre fonction Lambda échoue.

    Une fois les tests de validation terminés, l'une des actions suivantes se produit : 
   +  Si la validation échoue et que des restaurations sont configurées, le statut du déploiement est défini sur `Failed` et les composants reviennent à l’état dans lequel ils étaient au démarrage du déploiement. 
   +  Si la validation échoue et qu’aucune restauration n’est configurée, le statut du déploiement est défini sur `Failed` et les composants restent dans leur état actuel.
   +  Si la validation aboutit, le déploiement se poursuit avec le hook `BeforeAllowTraffic`.

    Pour plus d’informations, consultez [Surveillance des déploiements avec des CloudWatch alarmes dans CodeDeploy](monitoring-create-alarms.md), [Annulations automatiques](deployments-rollback-and-redeploy.md#deployments-rollback-and-redeploy-automatic-rollbacks) et [Configuration des options avancées d'un groupe de déploiement](deployment-groups-configure-advanced-options.md). 

1. <a name="ecs-before-allow-traffic"></a>

****

   Exécute toutes les fonctions Lambda spécifiées dans le `BeforeAllowTraffic` hook du fichier. AppSpec 

1. <a name="ecs-allow-traffic"></a>

****

   L'événement `AllowTraffic` est appelé. Le trafic de production est redirigé de l’ensemble de tâches d'origine vers l'ensemble de tâches de remplacement. Sur le schéma suivant, l’ensemble de tâches de remplacement reçoit du trafic de production.   
![\[L'ensemble de tâches de remplacement reçoit le trafic de production.\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-4.png)

1. <a name="ecs-after-allow-traffic"></a>

****

   Exécute toutes les fonctions Lambda spécifiées dans le `AfterAllowTraffic` hook du fichier. AppSpec 

1. 

****

   Une fois tous les événements réussis, le statut du déploiement est défini sur `Succeeded` et l’ensemble de tâches d'origine est supprimé.   
![\[Tous les événements sont réussis.\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-6.png)

## Téléchargement de la version révisée de votre application
<a name="deployment-steps-uploading-your-app-ecs"></a>

Placez un AppSpec fichier dans Amazon S3 ou saisissez-le directement dans la console ou AWS CLI. Pour de plus amples informations, veuillez consulter [CodeDeploy fichiers de spécification de l'application (AppSpec)](application-specification-files.md).

## Création de vos groupes d'applications et de déploiement
<a name="deployment-steps-registering-app-deployment-groups-ecs"></a>

Un groupe de CodeDeploy déploiement sur une plate-forme de calcul Amazon ECS identifie les écouteurs destinés à acheminer le trafic vers votre application Amazon ECS mise à jour et les deux groupes cibles utilisés lors de votre déploiement. Un groupe de déploiement définit également un ensemble d'options de configuration, notamment les alarmes et les configurations de restauration.

## Déploiement de la révision de votre application
<a name="deployment-steps-deploy-ecs"></a>

Vous êtes maintenant prêt à déployer le service Amazon ECS mis à jour spécifié dans votre groupe de déploiement. Vous pouvez utiliser la CodeDeploy console ou la commande [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html). Vous pouvez spécifier certains paramètres pour contrôler votre déploiement, y compris la révision et le groupe de déploiement.

## Mettre à jour votre application
<a name="deployment-steps-updating-your-app-ecs"></a>

Vous pouvez mettre à jour votre application, puis utiliser la CodeDeploy console ou appeler la commande [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html) pour envoyer une révision. 

## Déploiements interrompus ou échoués
<a name="deployment-stop-fail-ecs"></a>

Vous pouvez utiliser la CodeDeploy console ou la commande [stop-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/stop-deployment.html) pour arrêter un déploiement. Lorsque vous essayez d'arrêter le déploiement, trois choses peuvent se produire :
+ Le déploiement s'arrête et l'opération renvoie un statut de réussite. Dans ce cas, aucun événement de cycle de vie de déploiement supplémentaire ne se déroule sur le groupe de déploiement pour le déploiement arrêté. 
+ Le déploiement ne s'arrête pas immédiatement et l'opération renvoie un statut d'attente. Dans ce cas, certains événements de cycle de vie de déploiement peuvent encore se dérouler sur le groupe de déploiement. Une fois l'opération en attente terminée, les appels suivants visant à arrêter le déploiement renvoient un statut de réussite.
+ Le déploiement ne peut pas s'arrêter et l'opération renvoie une erreur. Pour plus d'informations, consultez les sections [Informations sur les erreurs](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ErrorInformation.html) et [Erreurs courantes](https://docs.aws.amazon.com/codedeploy/latest/APIReference/CommonErrors.html) dans le Guide de référence de l' AWS CodeDeploy API.

## Redéploiements et annulations de déploiements
<a name="deployment-rollback-ecs"></a>

CodeDeploy implémente les annulations en redirigeant le trafic de l'ensemble de tâches de remplacement vers l'ensemble de tâches d'origine. 

Vous pouvez configurer un groupe de déploiement pour restaurer automatiquement les déploiements lorsque certaines conditions sont remplies, y compris lorsqu'un déploiement échoue, ou si un seuil de surveillance d'alarme est atteint. Vous pouvez également remplacer les paramètres de restauration spécifiés pour un groupe de déploiement dans un déploiement individuel.

Vous pouvez également choisir de restaurer un déploiement ayant échoué en redéployant manuellement une révision précédemment déployée. 

Dans tous les cas, un déploiement nouveau ou annulé est attribué à son propre identifiant de déploiement. La console CodeDeploy affiche une liste des déploiements qui résultent d'un déploiement automatique. 

Si vous effectuez un autre déploiement, le groupe cible associé à l'ensemble de tâches d'origine du déploiement actuel est associé à l'ensemble de tâches de remplacement du déploiement.

Pour de plus amples informations, veuillez consulter [Redéployez et annulez un déploiement avec CodeDeploy](deployments-rollback-and-redeploy.md).

## blue/green Déploiements Amazon ECS via AWS CloudFormation
<a name="deployment-steps-ecs-cf"></a>

Vous pouvez l'utiliser AWS CloudFormation pour gérer les blue/green déploiements Amazon ECS via CodeDeploy. Pour de plus amples informations, veuillez consulter [Créez un blue/green déploiement Amazon ECS via CloudFormation](deployments-create-ecs-cfn.md).

**Note**  
La gestion des blue/green déploiements Amazon ECS avec n' CloudFormation est pas disponible dans la région Asie-Pacifique (Osaka).

# Déploiements sur une plateforme informatique EC2/sur site
<a name="deployment-steps-server"></a>

Cette rubrique fournit des informations sur les composants et le flux de travail des CodeDeploy déploiements qui utilisent la plate-forme de calcul EC2/on-premises. Pour plus d'informations sur blue/green les déploiements, consultez[Vue d'ensemble d'un blue/green déploiement](welcome.md#welcome-deployment-overview-blue-green).

**Topics**
+ [

## Composants de déploiement sur une plate-forme informatique EC2/sur site
](#deployment-steps-components-server)
+ [

## Flux de travail de déploiement sur une plate-forme informatique EC2/sur site
](#deployment-steps-workflow)
+ [

## Configuration des instances
](#deployment-steps-setting-up-instances)
+ [

## Téléchargement de la version révisée de votre application
](#deployment-steps-uploading-your-app)
+ [

## Création de vos groupes d'applications et de déploiement
](#deployment-steps-registering-app-deployment-groups)
+ [

## Déploiement de la révision de votre application
](#deployment-steps-deploy)
+ [

## Mettre à jour votre application
](#deployment-steps-updating-your-app)
+ [

## Déploiements interrompus ou échoués
](#deployment-stop-fail)
+ [

## Redéploiements et annulations de déploiements
](#deployment-rollback)

## Composants de déploiement sur une plate-forme informatique EC2/sur site
<a name="deployment-steps-components-server"></a>

Le schéma suivant montre les composants d'un CodeDeploy déploiement sur une plate-forme informatique EC2/sur site. 

![\[Les composants d'un CodeDeploy déploiement sur une plate-forme informatique EC2/sur site.\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/images/deployment-components-workflow.png)


## Flux de travail de déploiement sur une plate-forme informatique EC2/sur site
<a name="deployment-steps-workflow"></a>

Le schéma ci-dessous illustre les principales étapes du déploiement de révisions d'application :

![\[Les principales étapes du déploiement des révisions d'applications.\]](http://docs.aws.amazon.com/fr_fr/codedeploy/latest/userguide/images/deployment-process.png)


Les étapes sont les suivantes :

1. Créez une application et donnez-lui un nom qui identifie de manière unique les révisions de l'application que vous souhaitez déployer et la plate-forme de calcul de votre application. CodeDeploy utilise ce nom lors d'un déploiement pour s'assurer qu'il fait référence aux composants de déploiement appropriés, tels que le groupe de déploiement, la configuration du déploiement et la révision de l'application. Pour de plus amples informations, veuillez consulter [Créez une application avec CodeDeploy](applications-create.md).

1. Configurez un groupe de déploiement en spécifiant un type de déploiement et les instances sur lesquelles vous souhaitez déployer vos révisions d'application. Un déploiement sur place met à jour les instances avec la révision d'application la plus récente. Un blue/green déploiement enregistre un ensemble d'instances de remplacement pour le groupe de déploiement auprès d'un équilibreur de charge et annule l'enregistrement des instances d'origine. 

   Vous pouvez spécifier les balises appliquées aux instances, les noms des groupes Amazon EC2 Auto Scaling, ou les deux.

   Si vous spécifiez un groupe de balises dans un groupe de déploiement, il est CodeDeploy déployé sur les instances auxquelles au moins une des balises spécifiées est appliquée. Si vous spécifiez au moins deux groupes de balises, le CodeDeploy déploiement s'effectue uniquement sur les instances qui répondent aux critères de chacun des groupes de balises. Pour de plus amples informations, veuillez consulter [Marquage des instances pour les groupes de déploiement dans CodeDeploy](instances-tagging.md).

   Dans tous les cas, les instances doivent être configurées pour être utilisées dans un déploiement (c'est-à-dire qu'elles doivent être étiquetées ou appartenir à un groupe Amazon EC2 Auto Scaling) et que CodeDeploy l'agent doit être installé et exécuté. 

   Nous vous fournissons un CloudFormation modèle que vous pouvez utiliser pour configurer rapidement une instance Amazon EC2 basée sur Amazon Linux ou Windows Server. Nous vous fournissons également l' CodeDeploy agent autonome afin que vous puissiez l'installer sur des instances Amazon Linux, Ubuntu Server, Red Hat Enterprise Linux (RHEL) ou Windows Server. Pour de plus amples informations, veuillez consulter [Créez un groupe de déploiement avec CodeDeploy](deployment-groups-create.md).

   Vous pouvez également spécifier les options suivantes : 
   + **Notifications Amazon SNS.** Créez des déclencheurs qui envoient des notifications aux abonnés d'une rubrique Amazon SNS lorsque des événements spécifiques, tels que des événements de réussite ou d'échec, se produisent dans les déploiements et les instances. Pour de plus amples informations, veuillez consulter [Surveillance des déploiements à l'aide des notifications d'événements Amazon SNS](monitoring-sns-event-notifications.md).
   + **Gestion de déploiement basée sur des alarmes**. Mettez en œuvre la surveillance des CloudWatch alarmes Amazon pour arrêter les déploiements lorsque vos indicateurs dépassent ou tombent en CloudWatch dessous des seuils définis.
   + **Restaurations de déploiement automatiques**. Configurez un déploiement pour que la dernière révision correcte connue soit restaurée automatiquement lorsqu'un déploiement échoue ou si un seuil d'alarme est atteint.

1. Spécifiez une configuration de déploiement pour indiquer le nombre d'instances sur lesquelles déployer simultanément vos révisions d'application et en décrivant les conditions de réussite et d'échec du déploiement. Pour de plus amples informations, veuillez consulter [Consultez les détails de configuration du déploiement avec CodeDeploy](deployment-configurations-view-details.md).

1. Téléchargez une révision de l'application sur Amazon S3 ou GitHub. Outre les fichiers que vous souhaitez déployer et les scripts que vous souhaitez exécuter pendant le déploiement, vous devez inclure un fichier de *spécification de l'application (AppSpec fichier*). Ce fichier contient les instructions de déploiement, indiquant par exemple où copier les fichiers sur chaque instance et à quel moment exécuter les scripts de déploiement. Pour de plus amples informations, veuillez consulter [Travailler avec les révisions d'applications pour CodeDeploy](application-revisions.md).

1. Déployez votre révision d'application dans le groupe de déploiement. L' CodeDeploy agent de chaque instance du groupe de déploiement copie la révision de votre application depuis Amazon S3 ou GitHub vers l'instance. L' CodeDeploy agent déregroupe ensuite la révision et, à l'aide du AppSpec fichier, copie les fichiers dans les emplacements spécifiés et exécute tous les scripts de déploiement. Pour de plus amples informations, veuillez consulter [Créez un déploiement avec CodeDeploy](deployments-create.md).

1. Vérifiez les résultats du déploiement. Pour de plus amples informations, veuillez consulter [Surveillance des déploiements dans CodeDeploy](monitoring.md).

1. Redéployez une révision. Vous pouvez effectuer cette opération si vous avez besoin de corriger un bogue dans le contenu source ou d'exécuter les scripts de déploiement dans un ordre différent, ou encore de réagir à un échec de déploiement. Pour ce faire, regroupez votre contenu source révisé, tous les scripts de déploiement et le AppSpec fichier dans une nouvelle révision, puis chargez la révision dans le compartiment ou le GitHub référentiel Amazon S3. Vous exécutez alors un nouveau déploiement dans le même groupe de déploiement avec la nouvelle révision. Pour de plus amples informations, veuillez consulter [Créez un déploiement avec CodeDeploy](deployments-create.md).

## Configuration des instances
<a name="deployment-steps-setting-up-instances"></a>

 Vous devez configurer les instances avant de déployer des révisions d'application pour la première fois. Si une révision d'application a besoin de trois serveurs de production et de deux serveurs de sauvegarde, vous devez lancer ou utiliser cinq instances. 

Pour mettre en service manuellement les instances :

1. Installez l' CodeDeploy agent sur les instances. L' CodeDeploy agent peut être installé sur des instances Amazon Linux, Ubuntu Server, RHEL et Windows Server.

1. Activez le balisage si vous utilisez des balises pour identifier les instances d'un groupe de déploiement. CodeDeploy s'appuie sur des balises pour identifier et regrouper les instances dans des groupes CodeDeploy de déploiement. Les didacticiels de mise en route utilisaient les deux, mais vous pouvez utiliser simplement une clé ou une valeur pour définir une balise pour un groupe de déploiement.

1. Lancez des instances Amazon EC2 associées à un profil d'instance IAM. Le profil d'instance IAM doit être attaché à une instance Amazon EC2 lors de son lancement pour que CodeDeploy l'agent vérifie l'identité de l'instance.

1. Créez un rôle de service. Fournissez un accès au service CodeDeploy afin d'étendre le nombre de balises de votre AWS compte.

Pour un déploiement initial, le CloudFormation modèle fait tout cela pour vous. Il crée et configure de nouvelles instances Amazon EC2 uniques basées sur Amazon Linux ou Windows Server avec CodeDeploy l'agent déjà installé. Pour de plus amples informations, veuillez consulter [Utilisation d'instances pour CodeDeploy](instances.md). 

**Note**  
Pour un blue/green déploiement, vous pouvez choisir entre utiliser les instances dont vous disposez déjà pour l'environnement de remplacement ou laisser de CodeDeploy nouvelles instances vous être fournies dans le cadre du processus de déploiement. 

## Téléchargement de la version révisée de votre application
<a name="deployment-steps-uploading-your-app"></a>

Placez un AppSpec fichier sous le dossier racine dans la structure de dossiers de contenu source de votre application. Pour de plus amples informations, veuillez consulter [CodeDeploy fichiers de spécification de l'application (AppSpec)](application-specification-files.md).

Groupez la structure de dossiers de contenu source de l'application dans un format de fichier d'archive tel que zip, tar ou tar compressé. Téléchargez le fichier d'archive (la *révision*) dans un compartiment ou un GitHub référentiel Amazon S3.

**Note**  
Les formats de fichier d'archive tar et tar compressé (.tar et .tar.gz) ne sont pas pris en charge pour les instances Windows Server.

## Création de vos groupes d'applications et de déploiement
<a name="deployment-steps-registering-app-deployment-groups"></a>

Un groupe de CodeDeploy déploiement identifie un ensemble d'instances en fonction de leurs balises, des noms de groupes Amazon EC2 Auto Scaling, ou des deux. Plusieurs révisions d'application peuvent être déployées sur la même instance. Une révision d'application peut être déployée sur plusieurs instances. 

Par exemple, vous pouvez ajouter une balise « Prod » aux trois serveurs de production et une balise « Sauvegarde » aux deux serveurs de sauvegarde. Ces deux balises peuvent être utilisées pour créer deux groupes de déploiement différents dans l' CodeDeploy application, ce qui vous permet de choisir quel ensemble de serveurs (ou les deux) doit participer à un déploiement.

Vous pouvez utiliser plusieurs groupes de balises dans un groupe de déploiement pour restreindre les déploiements à un plus petit ensemble d'instances. Pour plus d'informations, consultez [Marquage des instances pour les groupes de déploiement dans CodeDeploy](instances-tagging.md).

## Déploiement de la révision de votre application
<a name="deployment-steps-deploy"></a>

Vous êtes maintenant prêt à déployer la révision de votre application depuis Amazon S3 ou GitHub vers le groupe de déploiement. Vous pouvez utiliser la CodeDeploy console ou la commande [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html). Vous pouvez spécifier certains paramètres pour contrôler votre déploiement, y compris la révision, le groupe de déploiement et la configuration de déploiement.

## Mettre à jour votre application
<a name="deployment-steps-updating-your-app"></a>

Vous pouvez mettre à jour votre application, puis utiliser la CodeDeploy console ou appeler la commande [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html) pour envoyer une révision. 

## Déploiements interrompus ou échoués
<a name="deployment-stop-fail"></a>

Vous pouvez utiliser la CodeDeploy console ou la commande [stop-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/stop-deployment.html) pour arrêter un déploiement. Lorsque vous essayez d'arrêter le déploiement, trois choses peuvent se produire :
+ Le déploiement s'arrête et l'opération renvoie un statut de réussite. Dans ce cas, aucun événement de cycle de vie de déploiement supplémentaire ne se déroule sur le groupe de déploiement pour le déploiement arrêté. Certains fichiers peuvent déjà avoir été copiés sur une ou plusieurs des instances figurant dans le groupe de déploiement, et certains scripts peuvent déjà y avoir été exécutés.
+ Le déploiement ne s'arrête pas immédiatement et l'opération renvoie un statut d'attente. Dans ce cas, certains événements de cycle de vie de déploiement peuvent encore se dérouler sur le groupe de déploiement. Certains fichiers peuvent déjà avoir été copiés sur une ou plusieurs des instances figurant dans le groupe de déploiement, et certains scripts peuvent déjà y avoir été exécutés. Une fois l'opération en attente terminée, les appels suivants visant à arrêter le déploiement renvoient un statut de réussite.
+ Le déploiement ne peut pas s'arrêter et l'opération renvoie une erreur. Pour plus d'informations, consultez [ErrorInformation](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ErrorInformation.html)la section [Erreurs courantes](https://docs.aws.amazon.com/codedeploy/latest/APIReference/CommonErrors.html) dans la référence AWS CodeDeploy d'API.

Comme les déploiements arrêtés, les déploiements ayant échoué peuvent se traduire par des événements de cycle de vie de déploiement ayant déjà été exécutés sur une ou plusieurs des instances figurant dans le groupe de déploiement. Pour savoir pourquoi un déploiement a échoué, vous pouvez utiliser la CodeDeploy console, appeler la [get-deployment-instance](https://docs.aws.amazon.com/cli/latest/reference/deploy/get-deployment-instance.html)commande ou analyser les données du fichier journal de l'échec du déploiement. Pour plus d’informations, consultez [Révision de l'application et nettoyage des fichiers journaux](codedeploy-agent.md#codedeploy-agent-revisions-logs-cleanup) et [Afficher les données du journal pour les déploiements CodeDeploy EC2/sur site](deployments-view-logs.md).

## Redéploiements et annulations de déploiements
<a name="deployment-rollback"></a>

CodeDeploy implémente les annulations en redéployant, en tant que nouveau déploiement, une révision précédemment déployée. 

Vous pouvez configurer un groupe de déploiement pour restaurer automatiquement les déploiements lorsque certaines conditions sont remplies, y compris lorsqu'un déploiement échoue, ou si un seuil de surveillance d'alarme est atteint. Vous pouvez également remplacer les paramètres de restauration spécifiés pour un groupe de déploiement dans un déploiement individuel.

Vous pouvez également choisir de restaurer un déploiement ayant échoué en redéployant manuellement une révision précédemment déployée. 

Dans tous les cas, un déploiement nouveau ou annulé est attribué à son propre identifiant de déploiement. La liste des déploiements que vous pouvez consulter dans la CodeDeploy console indique ceux qui sont le résultat d'un déploiement automatique. 

Pour de plus amples informations, veuillez consulter [Redéployez et annulez un déploiement avec CodeDeploy](deployments-rollback-and-redeploy.md).

# CodeDeploy fichiers de spécification de l'application (AppSpec)
<a name="application-specification-files"></a>

Un fichier de spécification d'application (AppSpec fichier), unique à CodeDeploy, est un fichier au format [YAML](http://www.yaml.org) ou au format [JSON](http://www.json.org). Le AppSpec fichier est utilisé pour gérer chaque déploiement sous la forme d'une série de hooks d'événements du cycle de vie, définis dans le fichier.

Pour plus d'informations sur la création d'un AppSpec fichier correctement formé, consultez[CodeDeploy AppSpec référence de fichier](reference-appspec-file.md).

**Topics**
+ [

## AppSpec fichiers sur une plateforme de calcul Amazon ECS
](#appspec-files-on-ecs-compute-platform)
+ [

## AppSpec fichiers sur une plate-forme AWS Lambda informatique
](#appspec-files-on-lambda-compute-platform)
+ [

## AppSpec fichiers sur une plate-forme informatique EC2/sur site
](#appspec-files-on-server-compute-platform)
+ [

## Comment l' CodeDeploy agent utilise le AppSpec fichier
](#application-specification-files-agent-usage)

## AppSpec fichiers sur une plateforme de calcul Amazon ECS
<a name="appspec-files-on-ecs-compute-platform"></a>

Si votre application utilise la plate-forme de calcul Amazon ECS, le AppSpec fichier peut être formaté en YAML ou en JSON. Il peut également être directement entré dans un éditeur via la console. Le AppSpec fichier est utilisé pour spécifier :
+ Le nom du service Amazon ECS ainsi que le nom du conteneur et le port utilisés pour diriger le trafic vers le nouvel ensemble de tâches.
+ Les fonctions à utiliser comme tests de validation.

Vous pouvez exécuter des fonctions Lambda de validation après des événements du cycle de vie du déploiement. Pour plus d’informations, consultez [AppSpec section « hooks » pour un déploiement Amazon ECS](reference-appspec-file-structure-hooks.md#appspec-hooks-ecs), [AppSpec structure de fichiers pour les déploiements Amazon ECS](reference-appspec-file-structure.md#ecs-appspec-structure) et [AppSpec Exemple de fichier pour un déploiement Amazon ECS](reference-appspec-file-example.md#appspec-file-example-ecs).

## AppSpec fichiers sur une plate-forme AWS Lambda informatique
<a name="appspec-files-on-lambda-compute-platform"></a>

Si votre application utilise la plate-forme de calcul AWS Lambda, le AppSpec fichier peut être formaté en YAML ou en JSON. Il peut également être directement entré dans un éditeur via la console. Le AppSpec fichier est utilisé pour spécifier :
+ Version de la AWS Lambda fonction à déployer.
+ Les fonctions à utiliser comme tests de validation.

Vous pouvez exécuter des fonctions Lambda de validation après des événements du cycle de vie du déploiement. Pour de plus amples informations, veuillez consulter [AppSpec section « hooks » pour un déploiement AWS Lambda](reference-appspec-file-structure-hooks.md#appspec-hooks-lambda).

## AppSpec fichiers sur une plate-forme informatique EC2/sur site
<a name="appspec-files-on-server-compute-platform"></a>

Si votre application utilise la plate-forme de calcul EC2/on-premises, le AppSpec fichier est toujours au format YAML. Le AppSpec fichier est utilisé pour :
+ mapper les fichiers sources figurant dans votre révision d'application vers leurs destinations sur l'instance ;
+ spécifier des autorisations personnalisées pour les fichiers déployés ;
+ spécifier les scripts à exécuter sur chaque instance à diverses étapes du processus de déploiement.

Vous pouvez exécuter des scripts sur une instance après de nombreux événements du cycle de vie de déploiement individuels. CodeDeploy exécute uniquement les scripts spécifiés dans le fichier, mais ces scripts peuvent appeler d'autres scripts sur l'instance. Vous pouvez exécuter tout type de script tant qu'il est pris en charge par le système d'exploitation en cours d'exécution sur les instances. Pour de plus amples informations, veuillez consulter [AppSpec section « hooks » pour un déploiement EC2/sur site](reference-appspec-file-structure-hooks.md#appspec-hooks-server). 

## Comment l' CodeDeploy agent utilise le AppSpec fichier
<a name="application-specification-files-agent-usage"></a>

Pendant le déploiement, l' CodeDeploy agent recherche le nom de l'événement en cours dans la section **hooks** du AppSpec fichier. Si l'événement est introuvable, l'agent CodeDeploy passe à l'étape suivante. Si l'événement est détecté, l' CodeDeploy agent récupère la liste des scripts à exécuter. Les scripts sont exécutés de manière séquentielle, dans l'ordre dans lequel ils apparaissent dans le fichier. L'état de chaque script est enregistré dans le fichier journal de l' CodeDeploy agent sur l'instance. 

Si un script s'exécute avec succès, il retourne un code de sortie de 0 (zéro).

**Note**  
 L' CodeDeploy agent n'est pas utilisé dans un AWS déploiement Lambda ou Amazon ECS. 

Lors de l'événement d'**installation**, l' CodeDeploy agent utilise les mappages définis dans la section des **fichiers** du AppSpec fichier pour déterminer les dossiers ou les fichiers à copier de la révision vers l'instance.

Si l' CodeDeploy agent installé sur le système d'exploitation ne correspond pas à ce qui est indiqué dans le AppSpec fichier, le déploiement échoue.

Pour plus d'informations sur les fichiers journaux de l' CodeDeploy agent, consultez[Travailler avec l' CodeDeploy agent](codedeploy-agent.md).