Q : Qu'est-ce qu'AWS CodeDeploy ?
AWS CodeDeploy est un service qui automatise les déploiements de codes sur toute instance, notamment les instances Amazon EC2 et celles s'exécutant sur site. AWS CodeDeploy vous permet de lancer rapidement et facilement de nouvelles fonctionnalités et d'éviter les temps d'arrêt pendant le déploiement tout en gérant la complexité de la mise à jour de vos applications. Vous pouvez utiliser AWS CodeDeploy pour automatiser les déploiements, éliminant ainsi le recours à des opérations manuelles qui peuvent être source d'erreurs. De plus, le service s'ajuste à votre infrastructure, permettant un déploiement facile sur une ou des milliers d'instances.

Q : A qui s'adresse AWS CodeDeploy ?
AWS CodeDeploy est conçu pour les développeurs et les administrateurs qui ont besoin de déployer des applications sur n'importe quelle instance, notamment les instances Amazon EC2 et celles s'exécutant sur site. Il est flexible et peut être utilisé par quiconque souhaitant mettre à jour un logiciel ou exécuter des scripts sur des instances.

Q : Quels types d'applications peut-on déployer avec AWS CodeDeploy ?
AWS CodeDeploy peut être utilisé pour déployer n'importe quel type d'application. Pour utiliser AWS CodeDeploy, vous spécifiez les fichiers à copier et les scripts à exécuter pour chaque instance durant le déploiement. AWS CodeDeploy est une plateforme indépendante du langage de programmation et de l'architecture pour que vous puissiez utiliser des scripts dans tous les cas de logique de déploiement personnalisée.

Q : Quels sont les systèmes d'exploitation pris en charge par AWS CodeDeploy ?
AWS CodeDeploy prend en charge un large éventail de systèmes d'exploitation. AWS CodeDeploy fournit des agents qui ont été testés sur Amazon Linux, Red Hat Enterprise Linux, Ubuntu Server et Microsoft Windows Server. Si vous souhaitez utiliser d'autres systèmes d'exploitation, l'agent AWS CodeDeploy est disponible en tant que logiciel à code source libre ici. Pour en savoir plus sur la prise en charge des systèmes d'exploitation, consultez ladocumentation AWS CodeDeploy.

Q : AWS CodeDeploy va-t-il fonctionner avec ma chaîne d'outils existante ?
Oui. AWS CodeDeploy fonctionne avec un large éventail de systèmes de gestion de configuration, de systèmes d'intégration et de déploiement continu, et de systèmes de contrôle du code source. Pour en savoir plus, consultez la page Intégrations de produits.

Q : En quoi AWS CodeDeploy est-il différent d'autres services de déploiement et de gestion tels qu'AWS Elastic Beanstalk et AWS OpsWorks ?
AWS CodeDeploy est un service modulaire destiné à aider les développeurs à déployer et à mettre à jour des logiciels sur toute instance, y compris les instances Amazon EC2 et celles s'exécutant sur site. AWS Elastic Beanstalk et AWS OpsWorks sont des solutions de gestion d'applications de bout en bout.

Q : AWS CodeDeploy prend-il en charge les instances sur site ?
Oui. AWS CodeDeploy prend en charge toutes les instances pouvant installer l'agent CodeDeploy et se connecter aux points de terminaison publics AWS.

 

Q : Qu'est-ce qu'une application  ?
Une application est un ensemble de logiciels et de configurations à déployer sur un groupe d'instances. En règle générale, les instances du groupe exécutent les mêmes logiciels. Par exemple, si vous disposez d'un important système distribué, le niveau Web constituera vraisemblablement une application et le niveau Données une autre application.

Q : Qu'est-ce qu'une révision ?
Une révision est la version spécifique d'un contenu déployable, tel qu'un code source, des artefacts post-développement, des pages Web, des fichiers exécutables, des scripts de déploiement ou encore un fichierAppSpec. L'agent AWS CodeDeploy peut accéder à une révision à partir de GitHub sur un compartiment Amazon S3.

Q : Qu'est-ce qu'un groupe de déploiement ?
Un groupe de déploiement est un ensemble d'instances associé à une application que vous ciblez dans le cadre d'un déploiement. Vous pouvez ajouter des instances à un groupe de déploiement en spécifiant une balise, un nom de groupe Auto Scaling ou les deux. Pour une application, vous pouvez définir plusieurs groupes de déploiement comme la simulation et la production. Pour en savoir plus sur les balises, consultez Travailler avec des balises Amazon EC2 dans la console. Pour en savoir plus sur le déploiement sur des groupes Auto Scaling, consultezIntégration d'Auto Scaling.

Q : Qu'est-ce qu'une configuration de déploiement ?
Une configuration de déploiement est une contrainte qui détermine comment un déploiement progresse au sein des instances dans un groupe de déploiement. Vous pouvez utiliser une configuration de déploiement pour réaliser des déploiements sans temps mort sur des groupes de déploiement multi-instances. Par exemple, si votre application requiert au moins 50 % des instances dans un groupe de déploiement pour pouvoir gérer correctement le trafic, vous pouvez spécifier cela dans votre configuration de déploiement de manière à ce qu'un déploiement ne cause pas de temps mort. Si aucune configuration de déploiement n'est associée au déploiement ou au groupe de déploiement, AWS CodeDeploy se déploiera sur une instance à la fois par défaut. Pour en savoir plus sur la configuration de déploiement, consultezEtat de santé des instances.

Q : Quels paramètres dois-je spécifier dans le cadre d'un déploiement ?
Vous devez spécifier trois paramètres dans le cadre d'un déploiement :

  1. La révision pour spécifier les éléments à déployer.
  2. Le groupe de déploiement pour spécifier l'emplacement du déploiement. 
  3. La configuration de déploiement, paramètre facultatif qui spécifie comment déployer.
Q : Qu'est-ce qu'un fichier AppSpec ?
Un fichier AppSpec est un fichier de configuration qui spécifie les fichiers à copier et les scripts à exécuter. Le fichier AppSpec est au format YAML, et vous l'incluez dans le répertoire racine de votre révision. Le fichier AppSpec est utilisé par l'agent AWS CodeDeploy et comprend deux sections. La section Fichiers spécifie les fichiers sources de votre révision à copier et le dossier de destination sur chaque instance. La section Points d'accroche spécifie l'emplacement (en tant que chemins relatifs partant de la racine de l'offre groupée de révisions) des scripts à exécuter durant chaque phase du déploiement. Chaque phase d'un déploiement se nomme Evénement de cycle de vie du déploiement. Vous trouverez ci-dessous un exemple de fichier AppSpec. Pour en savoir plus sur le fichier AppSpec, y compris toutes les options qu'il est possible de spécifier, consultez la Référence du fichier AppSpec.

version: 0.0

os: linux

files:

# You can specify one or more mappings in the files section.

   – source: /

destination: /var/www/html/WordPress

hooks:

# The lifecycle hooks sections allows you to specify deployment scripts.

ApplicationStop: 

# Step 1: Stop Apache and MySQL if running.

    – location: helper_scripts/stop_server.sh

BeforeInstall:

# Step 2: Install Apache and MySQL.

# You can specify one or more scripts per deployment lifecycle event.

    – location: deploy_hooks/puppet-apply-apache.sh

    – location: deploy_hooks/puppet-apply-mysql.sh

 AfterInstall: 

# Step 3: Set permissions.

  – location: deploy_hooks /change_permissions.sh

    timeout: 30

      runas: root

# Step 4: Start the server.

  – location: helper_scripts/start_server.sh

    timeout: 30

      runas: root

Q : En quoi consistent les événements de cycle de vie du déploiement ?
Un déploiement s'articule autour de phases prédéfinies appelées événements de cycle de vie du déploiement. Un événement de cycle de vie du déploiement vous offre l'opportunité d'exécuter un code en tant que composant du déploiement. Le tableau suivant dresse la liste des différents événements de cycle de vie du déploiement actuellement pris en charge, par ordre d'exécution, et vous indique quand vous pouvez les utiliser.

Evénement de cycle de vie du déploiement Description
ApplicationStop

Il s'agit du premier événement de cycle de vie du déploiement qui se produit avant même le téléchargement de la révision. Le fichier AppSpec et les scripts utilisés lors de cet événement de cycle de vie du déploiement sont ceux de la dernière révision déployée avec succès.  

Vous pouvez utiliser l'événement de cycle de vie du déploiement ApplicationStop si vous souhaitez arrêter l'application sans heurts ou supprimer des packages actuellement installés, en vue d'un déploiement.

DownloadBundle Durant cet événement de cycle de vie du déploiement, l'agent copie les fichiers de révision vers un emplacement temporaire sur l'instance. Cet événement de cycle de vie du déploiement est réservé à l'agent et ne peut être utilisé pour exécuter des scripts utilisateurs.
BeforeInstall Vous pouvez utiliser cet événement de cycle de vie du déploiement pour des tâches préalables à l'installation comme le déchiffrement de fichiers et la création d'une sauvegarde de la version actuelle.
Install Durant cet événement de cycle de vie du déploiement, l'agent copie les fichiers de révision de l'emplacement temporaire vers le dossier de destination finale. Cet événement de cycle de vie du déploiement est réservé à l'agent et ne peut être utilisé pour exécuter des scripts utilisateurs.
AfterInstall Vous pouvez utiliser l'événement de cycle de vie du déploiement AfterInstall dans le cadre de tâches telles que la configuration de votre application ou la modification des autorisations d'accès aux fichiers.
ApplicationStart L'événement de cycle de vie du déploiement ApplicationStart s'utilise généralement pour redémarrer des services interrompus pendant l'événement ApplicationStop.
ValidateService ValidateService est le dernier événement de cycle de vie du déploiement et permet de vérifier que le déploiement s'est terminé avec succès.

Q : Comment démarrer avec AWS CodeDeploy ?
Vous pouvez vous connecter àAWS Management Consoleet commencer à utiliser AWS CodeDeploy. Si vous recherchez une présentation rapide du système, consultez la Mise en route qui vous propose un didacticiel étape par étape.

Q : Existe-t-il des prérequis à l'utilisation d'une instance Amazon EC2 existante avec AWS CodeDeploy ?
L'instance Amazon EC2 doit être associée à unprofil d'instance IAMet doit exécuter un système d'exploitation pris en charge. Pour en savoir plus, consultez Utiliser une instance Amazon EC2 existante.

Q : Quelles sont les étapes classiques du déploiement d'une application à l'aide d'AWS CodeDeploy ?
Le diagramme suivant montre les étapes classiques d'un déploiement. La création d'une application et d'un groupe de déploiement (consultez la section Concepts pour obtenir une explication de ces termes) est en général une tâche unique par application. Les actions récurrentes sont le téléchargement d'une révision et son déploiement. Pour obtenir des explications détaillées et des instructions étape par étape pour chacune de ces tâches, consultezDéploiements.

Q : Comment accéder à AWS CodeDeploy ?
L'accès à AWS CodeDeploy s'effectue à l'aide d'AWS Management Console, de l'interface de ligne de commande AWS, des kits de développement logiciel AWS, et lesAPI AWS CodeDeploy.

Q : Quels changements dois-je apporter à mon code en vue d'un déploiement à l'aide d'AWS CodeDeploy ?
Aucun changement n'est nécessaire. Vous ajoutez tout simplement un fichier de configuration (appelé fichier AppSpec) dans le répertoire racine de votre offre groupée de révisions, qui spécifie les fichiers à copier et les scripts à exécuter.

Q : Comment déployer une application à partir de mon système de contrôle des sources en utilisant AWS CodeDeploy ?
Si vous utilisez GitHub, vous pouvez déployer une révision au format .zip, .tar ou .tar.gz à partir de votre référentiel, directement vers des instances. Pour d'autres systèmes de contrôle de sources, vous pouvez grouper et charger la révision vers un compartiment Amazon S3 au format .zip, .rar ou .tar.gz et spécifier l'emplacement Amazon S3 en cas de déploiement. Si votre application nécessite une étape de développement, assurez-vous que le référentiel GitHub ou que le compartiment Amazon S3 contiennent les artefacts post-développement. Pour en savoir plus sur l'utilisation de GitHub avec AWS CodeDeploy, consultez la page Intégrations de produits. Pour en savoir plus sur l'utilisation d'Amazon S3 pour stocker des révisions, consultez Pousser une révision.

Q : Comment AWS CodeDeploy se comportera-t-il avec mon outil de gestion de la configuration ?
Vous pouvez appeler votre outil de gestion de la configuration à partir de n'importe quel point d'accroche d'un événement de cycle de vie du déploiement dans le fichier AppSpec. Par exemple, si vous souhaitez exécuter une recette Chef en tant que composant du déploiement, vous pouvez le faire en le spécifiant dans le point d'accroche adéquat de l'événement de cycle de vie du déploiement dans le fichier AppSpec. De plus, vous pouvez utiliser votre système de gestion de la configuration pour installer l'agent AWS CodeDeploy sur des instances. Pour visualiser des exemples qui illustrent l'utilisation d'AWS CodeDeploy avec des systèmes de gestion de la configuration tels que Chef, Puppet, Ansible et Saltstack, consultez notre pageIntégration de produits.

Q : Puis-je utiliser AWS CodeDeploy avec des systèmes d'intégration et de déploiement continus ?
Oui. Vous pouvez intégrer AWS CodeDeploy avec vos systèmes d'intégration et de déploiement continus en appelant les API publiques à l'aide de l'interface de ligne de commande AWS ou des kits de développement logiciel AWS. Vous trouverez des intégrations prédéfinies et des exemples sur notre page Intégrations de produits.

Q : Comment puis-je exploiter mon application sur les instances que je viens d'ajouter au groupe de déploiement ?
Déployez la dernière révision sur le groupe de déploiement des instances nouvellement ajoutées pour exploiter votre application. A l'exception des instances Amazon EC2 lancées en tant que composant du groupe Auto Scaling, AWS CodeDeploy ne déploie pas automatiquement la dernière révision sur les instances nouvellement ajoutées.

Q : Comment AWS CodeDeploy fonctionne-t-il avec Auto Scaling ?
Vous pouvez associer un groupe Auto Scaling à un groupe de déploiement pour vous assurer que les instances nouvellement lancées exploitent toujours la dernière version de votre application. A chaque lancement d'une nouvelle instance Amazon EC2 pour ce groupe Auto Scaling, elle sera la première à être placée en attente, et un déploiement de la dernière révision avec succès pour ce groupe de déploiement sera déclenché sur cette instance Amazon EC2. Si le déploiement s'est terminé avec succès, l'état de l'instance Amazon EC2 passe à InService. Si le déploiement échoue, l'instance Amazon EC2 est clôturée, une nouvelle instance Amazon EC2 est lancée avec le statut Pending et un déploiement est déclenché pour l'instance Amazon EC2 nouvellement lancée. Pour en savoir plus sur les événements de cycle de vie des instances d'un groupe Auto Scaling, consultezCycle de vie d'un groupe Auto Scaling.

Q : Comment effectuer le suivi de l'état d'un déploiement ?
Vous pouvez suivre l'état d'un déploiement à l'aide d'AWS Management Console, de l'interface de ligne de commande AWS, des kits de développement logiciel AWSet des API AWS CodeDeploy. Vous pouvez visualiser l'état global d'un déploiement et explorer plus en profondeur pour voir l'état de chaque instance ainsi que celui de chaque événement de cycle de vie du déploiement pour l'instance en question. Vous pouvez également consulter les entrées de journal correspondant aux défaillances, pour faciliter le débogage des problèmes de déploiement sans avoir à vous connecter à l'instance.

Q : Puis-je interrompre un déploiement en vol ?
Oui. Lorsque vous interrompez un déploiement en vol, le service AWS CodeDeploy donnera à l'agent l'instruction d'interrompre l'exécution de scripts supplémentaires sur chaque instance. Pour redonner un statut cohérent à votre application, vous pouvez soit redéployer la révision, soit déployer une autre révision.

Q : Comment retourner à une révision antérieure d'une application ?
Pour revenir à la révision antérieure d'une application, il vous suffit de déployer la révision en question. AWS CodeDeploy garde une trace des fichiers copiés lors de la révision précédente et les supprime avant de démarrer un nouveau déploiement. Il n'existe donc aucune différence entre un redéploiement et un retour en arrière. Vous devez cependant vous assurer que les révisions précédentes sont disponibles pour un retour en arrière.

Q : Puis-je utiliser un compartiment Amazon S3 faisant l'objet d'un contrôle de version pour stocker les révisions ?
Oui. Vous pouvez utiliser un compartiment Amazon S3 faisant l'objet d'un contrôle de version et spécifier l'ID de la version pour identifier la révision de manière unique.

Q : Quelles sont les limites de service lors de l'utilisation de AWS CodeDeploy ?
Pour en savoir plus sur les limites du service, consultez Limites. Pour augmenter vos limites de service, soumettez une demande par le biais du Centre de support AWS.

Q : Puis-je obtenir un historique de tous les appels d'API AWS CodeDeploy effectués sur mon compte à des fins d'analyse de sécurité et de résolution des problèmes opérationnels ?
Oui. Pour obtenir un historique des appels d'API AWS CodeDeploy réalisés sur votre compte, il vous suffit d'activer AWS CloudTrail dans AWS Management Console.

Q : Puis-je utiliser AWS CodeDeploy pour déployer une application sur des instances Amazon EC2 qui s'exécutent sous Amazon Virtual Private Cloud (VPC) ?
Oui, mais l'agent AWS CodeDeploy installé sur les instances Amazon EC2 doit pouvoir accéder aux points de terminaison publics AWS CodeDeploy et Amazon S3. Pour en savoir plus, consultez Points de terminaison AWS CodeDeploy et Points de terminaison Amazon S3.

Q : Puis-je utiliser AWS Identity and Access Management (IAM) pour gérer l'accès à AWS CodeDeploy ?
Oui. AWS CodeDeploy prend en charge les autorisations au niveau des ressources. Pour chaque ressource AWS CodeDeploy, vous pouvez spécifier quel utilisateur a accès à quelle action. Par exemple, vous pouvez définir une politique IAM pour permettre à un utilisateur de déployer une application en particulier, mais seulement de référencer les révisions pour d'autres applications. Ceci vous permet d'éviter que des utilisateurs effectuent des modifications par inadvertance dans la mauvaise application. Pour en savoir plus sur l'utilisation d'IAM avec AWS CodeDeploy, consultez la Référence sur les autorisations d'accès.

Q : Quelles sont les régions prises en charge par AWS CodeDeploy ?
Pour plus d'informations sur la disponibilité de CodeDeploy par région, reportez-vous à la section relative aux produits et services régionaux.

Q : Comment déployer une application AWS CodeDeploy dans plusieurs régions ?
AWS CodeDeploy effectue des déploiements avec des ressources AWS situées dans la même région. Pour déployer une application dans plusieurs régions, définissez l'application dans vos régions cibles, copiez l'offre groupée d'applications vers un compartiment Amazon S3 pour chaque région, puis démarrez les déploiements en utilisant soit un lancement en série, soit un lancement parallèle sur les différentes régions.

Q : Combien coûte AWS CodeDeploy ?
Les déploiements de codes sur des instances Amazon EC2 par l'intermédiaire d'AWS CodeDeploy n'entraînent aucun coût supplémentaire. Chaque mise à jour d'instance sur site à l'aide d'AWS CodeDeploy est facturée 0,02 USD. Pour plus d'informations, consultez la page Tarification.