Déploiements sur une plateforme informatique EC2/sur site - AWS CodeDeploy

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.

Déploiements sur une plateforme informatique EC2/sur site

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 les déploiements bleus/verts, consultez Vue d'ensemble d'un déploiement bleu/vert.

Composants de déploiement sur une plate-forme informatique EC2/sur site

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.

Flux de travail de déploiement sur une plate-forme informatique EC2/sur site

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.

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 plus d’informations, consultez Créez une application avec CodeDeploy.

  2. 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 déploiement bleu/vert 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 plus d’informations, consultez Tagging Instances for Deployments.

    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 l' CodeDeploy agent doit être installé et exécuté.

    Nous vous fournissons un AWS 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 plus d’informations, consultez Créez un groupe de déploiement avec CodeDeploy.

    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 plus d’informations, consultez Monitoring Deployments with Amazon SNS Event Notifications.

    • 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.

  3. 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 plus d’informations, consultez View Deployment Configuration Details.

  4. Téléchargez une révision d'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 plus d’informations, consultez Travailler avec les révisions d'applications pour CodeDeploy.

  5. 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 plus d’informations, consultez Créez un déploiement avec CodeDeploy.

  6. Vérifiez les résultats du déploiement. Pour plus d’informations, consultez Surveillance des déploiements dans CodeDeploy.

  7. 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 plus d’informations, consultez Créez un déploiement avec CodeDeploy.

Configuration des instances

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.

  2. 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.

  3. 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.

  4. 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 AWS 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 plus d’informations, consultez Utilisation d'instances pour CodeDeploy.

Note

Pour un déploiement bleu/vert, vous pouvez choisir entre utiliser les instances que vous possédez déjà pour l'environnement de remplacement ou laisser de nouvelles CodeDeploy instances vous être fournies dans le cadre du processus de déploiement.

Téléchargement de la version révisée de votre application

Placez un AppSpec fichier sous le dossier racine dans la structure de dossiers de contenu source de votre application. Pour plus d’informations, consultez Application Specification Files.

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

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, veuillez consulter Tagging Instances for Deployments.

Déploiement de la révision de votre application

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. 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

Vous pouvez mettre à jour votre application, puis utiliser la CodeDeploy console ou appeler la commande create-deployment pour envoyer une révision.

Déploiements interrompus ou échoués

Vous pouvez utiliser la CodeDeploy console ou la commande stop-deployment 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 ErrorInformationla section Erreurs courantes 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-instancecommande 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 et Afficher les données du journal pour les déploiements CodeDeploy EC2/sur site.

Redéploiements et annulations de déploiement

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 plus d'informations, voir Redéployez et annulez un déploiement avec CodeDeploy.