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.
Présentation des déploiements bleu/vert
Cette rubrique fournit une vue d’ensemble du fonctionnement des déploiements bleu/vert avec CloudFormation. Elle explique également comment préparer votre modèle CloudFormation pour effectuer des déploiements bleu/vert.
Rubriques
Fonctionnement
Lorsque vous utilisez CloudFormation pour réaliser des déploiements bleu/vert ECS via CodeDeploy, vous commencez par créer un modèle de pile définissant les ressources pour vos environnements bleu et vert, y compris les paramètres d’acheminement du trafic et de stabilisation. Ensuite, vous créez une pile à partir de ce modèle. Cela génère votre application bleue (environnement actuel). CloudFormation ne crée que les ressources bleues lors de la création de la pile. Les ressources pour un déploiement vert ne sont pas créées tant qu'elles ne sont pas requises.
Ensuite, si dans une future mise à jour de pile, vous mettez à jour la définition de tâche ou les ressources de jeu de tâches dans votre application bleue, CloudFormation exécute les actions suivantes :
-
Génère toutes les ressources d'environnement d'applications « vertes » nécessaires.
-
Déplace le trafic en fonction des paramètres de routage de trafic spécifiés.
-
Supprime les ressources « bleu »
Si une erreur se produit à un moment quelconque avant que le déploiement vert ne soit réussi et finalisé, CloudFormation rétablit la pile à son état initial avant que le déploiement vert entier ne soit lancé.
Mises à jour de ressources déclenchant un déploiement vert
Lorsque vous mettez à jour une pile et que cette mise à jour modifie certaines propriétés de ressources ECS spécifiques, CloudFormation lance un processus de déploiement vert. Les ressources qui déclenchent ce processus sont les suivantes :
Cependant, si les mises à jour apportées à ces ressources ne concernent pas des propriétés nécessitant un remplacement, aucun déploiement vert n’est déclenché. Pour de plus amples informations, consultez Comprendre les comportements de mise à jour des ressources d’une pile.
Il est important de noter que vous ne pouvez pas combiner une mise à jour portant sur ces ressources avec des mises à jour d’autres ressources dans la même opération de mise à jour de pile. Si vous devez mettre à jour à la fois les ressources répertoriées et d’autres ressources dans la même pile, vous disposez de deux options :
-
Effectuez deux opérations de mise à jour de pile distinctes : l'une qui inclut uniquement les mises à jour des ressources ci-dessus et l'autre qui inclut les modifications apportées à d'autres ressources.
-
Supprimez les sections
TransformHooksde votre modèle, puis effectuez la mise à jour de la pile. Dans ce cas, CloudFormation n'effectuera pas un déploiement vert.
Préparation de votre modèle pour effectuer des déploiements ECS bleu/vert
Pour activer les déploiements bleu/vert sur votre pile, incluez les sections suivantes dans votre modèle de pile avant d'effectuer une mise à jour de pile.
-
Ajoutez une référence à la transformation
AWS::CodeDeployBlueGreendans votre modèle :"Transform": [ "AWS::CodeDeployBlueGreen" ], -
Ajoutez une section
Hooksqui appelle le hookAWS::CodeDeploy::BlueGreenet spécifie les propriétés de votre déploiement. Pour de plus amples informations, consultez Syntaxe du hook AWS::CodeDeploy::BlueGreen. -
Dans la section
Resources, définissez les ressources bleues et vertes pour votre déploiement.
Vous pouvez ajouter ces sections lorsque vous créez le modèle pour la première fois (c'est-à-dire avant de créer la pile elle-même), ou vous pouvez les ajouter à un modèle existant avant d'effectuer une mise à jour de la pile. Si vous spécifiez le déploiement bleu/vert pour une nouvelle pile, CloudFormation crée uniquement les ressources bleues lors de la création de la pile. Les ressources pour le déploiement vert ne sont pas créées tant qu'elles ne sont pas requises lors d'une mise à jour de la pile.
Modélisation de votre déploiement bleu/vert à l'aide des ressources CloudFormation
Pour réaliser un déploiement bleu/vert CodeDeploy sur ECS, votre modèle CloudFormation doit inclure les ressources représentant votre déploiement, comme le service Amazon ECS et un équilibreur de charge. Pour de plus amples informations sur ce que représentent ces ressources, veuillez consulter Avant de commencer un déploiement Amazon ECS dans le Guide de l'utilisateur AWS CodeDeploy.
| Exigence | Ressource | Obligatoire/facultatif | Déclenchement du déploiement bleu/vert en cas de remplacement ? |
|---|---|---|---|
| Cluster Amazon ECS | AWS::ECS::Cluster | Facultatif. Le cluster par défaut peut être utilisé. | Non |
| Amazon ECS service | AWS::ECS::Service | Obligatoire. | Non |
| Application Load Balancer ou Network Load Balancer | AWS::ECS::Service LoadBalancer | Obligatoire. | Non |
| Écouteur de production | AWS::ElasticLoadBalancingV2::Listener | Obligatoire. | Non |
| Écouteur de test | AWS::ElasticLoadBalancingV2::Listener | Facultatif. | Non |
| Deux groupes cibles | AWS::ElasticLoadBalancingV2::TargetGroup | Obligatoire. | Non |
| Définition de tâche Amazon ECS | AWS::ECS::TaskDefinition | Obligatoire. | Oui |
| Conteneur de votre application Amazon ECS | AWS::ECS::TaskDefinition ContainerDefinition Name | Obligatoire. | Non |
| Port de votre ensemble de tâches de remplacement | AWS::ECS::TaskDefinition PortMapping ContainerPort | Obligatoire. | Non |
Jeux de modifications
Nous vous recommandons fortement de créer un jeu de modifications avant d'effectuer une mise à jour de pile qui initiera un déploiement vert. Cette option vous permet de voir les modifications réelles qui seront apportées à votre pile avant d’effectuer la mise à jour. Sachez que les modifications de ressources peuvent ne pas être répertoriées dans l'ordre dans lequel elles seront effectuées lors de la mise à jour de la pile. Pour de plus amples informations, consultez Mettre à jour CloudFormation les piles à l'aide d'ensembles de modifications.
Surveillance des événements de pile
Vous pouvez afficher les événements de pile générés à chaque étape du déploiement ECS dans l'onglet Events (Événements) de la page Pile et à l'aide de l'AWS CLI. Pour de plus amples informations, consultez Surveiller la progression de la pile.
Autorisations IAM pour les déploiements bleu/vert
Pour que CloudFormation puisse effectuer correctement les déploiements bleu/vert, vous devez disposer des autorisations CodeDeploy suivantes :
-
codedeploy:Get* -
codedeploy:CreateCloudFormationDeployment
Pour plus d’informations, consultez Actions, ressources et clés de condition pour CodeDeploy dans la section Référence de l’autorisation de service.