Comment effectuer des déploiements bleu/vert pour les services hébergés sur Amazon ECS ?
Je souhaite effectuer un déploiement bleu/vert pour les services hébergés sur Amazon Elastic Container Service (Amazon ECS).
Brève description
Avant de suivre les étapes pour effectuer un déploiement bleu/vert, assurez-vous que vous disposez des éléments suivants :
Résolution
Créer un rôle de service IAM
Avant de pouvoir déployer le type bleu/vert pour AWS CodeDeploy avec Amazon ECS, le service CodeDeploy doit être autorisé à mettre à jour votre service ECS en votre nom. Pour accorder ces autorisations, procédez comme suit :
- Ouvrez la console Gestion des identités et des accès AWS (AWS IAM).
- Dans le volet de navigation, sélectionnez Rôles.
- Choisissez Créer un rôle.
- Dans la section Sélectionner le type d'entité approuvée, choisissez Service AWS, puis CodeDeploy.
- Dans la section Sélectionner votre cas d'utilisation, choisissez CodeDeploy - ECS, puis Suivant.
Remarque : Conservez la politique AWSCodeDeployRoleForECS par défaut. Cette politique inclut les autorisations dont CodeDeploy a besoin pour interagir correctement avec Amazon ECS et d'autres services. - Sélectionnez Suivant.
- Pour Nom du rôle, saisissez ecsCodeDeployRole.
- (Facultatif) Ajouter des identifications
- Choisissez Créer un rôle.
Créer l’Application Load Balancer
Pour créer un Application Load Balancer, procédez comme suit :
- Ouvrez la console Amazon EC2.
- Dans le volet de navigation, dans la section Équilibrage de charge, choisissez Équilibreurs de charge.
- Choisissez Créer un équilibreur de charge.
- Dans la section Sélectionner le type d'équilibreur de charge, pour Application Load Balancer, choisissez Créer.
- Pour Nom, saisissez le nom de votre équilibreur de charge.
- Dans la section Mappage réseau, sélectionnez le VPC sur lequel votre cluster Amazon ECS a été créé. Puis, sélectionnez deux sous-réseaux ayant accès à Internet.
- Dans la section Groupes de sécurité, sélectionnez le lien hypertexte « Créer un nouveau groupe de sécurité ».
- Pour Nom du groupe de sécurité, saisissez Sample Security-group.
- Sélectionnez Ajouter une règle.
- Pour Plage de ports, saisissez 8080. Pour Source, saisissez 0.0.0.0/0.
- Choisissez Créer un groupe de sécurité.
- Actualisez les groupes de sécurité sur la page d'affichage de l'équilibreur de charge, puis sélectionnez le groupe de sécurité nouvellement créé.
- Dans la section Écouteurs et routage, sélectionnez le lien hypertexte « Créer un groupe cible ».
- Pour Type de cible, sélectionnez Adresses IP.
- Pour Groupe cible, saisissez un nom pour votre groupe cible.
- Choisissez Suivant, puis enregistrez votre groupe cible et définissez votre adresse IP.
- Sélectionnez Créer un groupe cible.
Créer une définition de tâche
Procédez comme suit :
- Ouvrez la console Amazon ECS.
- Dans le volet de navigation, choisissez Définitions de tâche.
- Choisissez Créer une définition de tâche.
- Choisissez Fargate, puis Étape suivante.
- Configurez la définition de la tâche, puis choisissez Créer.
L'exemple de définition de tâche suivant utilise le type de lancement AWS Fargate et une image NGINX provenant de Docker Hub :
Remarque : Remplacez la valeur de account_ID par votre propre numéro de compte dans cet exemple et dans les suivants.
{ "executionRoleArn": "arn:aws:iam::account_ID:role/ecsTaskExecutionRole", "containerDefinitions": [ { "name": "sample-website", "image": "nginx:latest", "essential": true, "portMappings": [ { "hostPort": 80, "protocol": "tcp", "containerPort": 80 } ] } ], "requiresCompatibilities": [ "FARGATE" ], "networkMode": "awsvpc", "cpu": "256", "memory": "512", "family": "sample-website" }
Créer un service Amazon ECS
Procédez comme suit :
- Ouvrez la console Amazon ECS.
- Dans la section Amazon ECS du volet de navigation, choisissez Clusters, puis choisissez votre cluster.
- Dans l'onglet Services, choisissez Créer pour créer un service.
- Dans la section Environnement, sélectionnez Type de lancement, puis FARGATE.
- Pour Définition de tâche, sélectionnez la définition de tâche que vous avez créée dans la section précédente.
- Pour Nom du service, entrez un nom pour votre service. Exemple : Sample-Website.
- Pour Nombre de tâches, entrez le nombre de tâches que votre service doit exécuter.
- Dans la section Options de déploiement, sélectionnez Déploiement bleu/vert (optimisé par AWS CodeDeploy).
- Pour Rôle de service pour CodeDeploy, choisissez le rôle de service ecsCodeDeployRole que vous avez créé précédemment.
- Dans la section Mise en réseau, choisissez votre VPC de cluster et vos sous-réseaux ainsi que le groupe de sécurité que vous avez créé précédemment.
- Dans la section Équilibrage de charge, pour le type d’Équilibreur de charge, choisissez Application Load Balancer.
- Pour Nom de l'équilibreur de charge, sélectionnez l'équilibreur de charge que vous avez créé précédemment.
- Dans la section Écouteurs, pour Port de l'écouteur de production, sélectionnez 80:HTTP.
- Cochez la case Ajouter un écouteur de test.
- Pour Port de l’écouteur de test, choisissez Créer un nouveau port, puis saisissez 8080 comme port d’écouteur.
- Dans la section Groupes cibles, pour Nom du groupe cible 1, choisissez le groupe cible que vous avez créé lors de la création de l'équilibreur de charge.
- Pour Nom du groupe cible 2, créez un nouveau groupe cible dans la console Amazon ECS avec le nom sample-website-tg-2.
- Sélectionnez Créer.
Vous pouvez maintenant voir le nouveau service que vous avez créé avec une tâche en cours d'exécution.
Vérifier que le déploiement bleu/vert d'Amazon ECS fonctionne correctement
Après avoir créé le service Amazon ECS bleu/vert, créez une nouvelle révision de définition de tâche avec les modifications, puis mettez à jour votre service Amazon ECS. Cette action crée un déploiement dans la console CodeDeploy.
Procédez comme suit pour vérifier que votre déploiement fonctionne :
-
Ouvrez la console Amazon ECS.
-
Dans le volet de navigation, sélectionnez Définitions de tâche.
-
Sélectionnez votre définition de tâche, choisissez Créer une nouvelle révision, puis Créer.
Remarque : Dans l'exemple suivant, la propriété image est mise à jour pour utiliser httpd:2.4.{ "executionRoleArn": "arn:aws:iam::account_ID:role/ecsTaskExecutionRole", "containerDefinitions": [ { "name": "sample-website", "image": "httpd:2.4", "essential": true, "portMappings": [ { "hostPort": 80, "protocol": "tcp", "containerPort": 80 } ] } ], "requiresCompatibilities": [ "FARGATE" ], "networkMode": "awsvpc", "cpu": "256", "memory": "512", "family": "sample-website" } -
Dans le volet de navigation, choisissez Clusters, puis choisissez le cluster sur lequel vous avez déployé votre service Amazon ECS.
-
Dans l'onglet Services, sélectionnez votre service Amazon ECS, puis choisissez Mettre à jour.
-
Dans la section Configuration du déploiement, pour Définition de tâche, choisissez la dernière révision que vous avez créée à l'étape 3.
-
Choisissez Mettre à jour.
-
Dans l'onglet Déploiements, dans la colonne ID de déploiement, choisissez l'ID de déploiement pour afficher votre déploiement CodeDeploy.
- Sujets
- Developer Tools
- Balises
- AWS CodeDeploy
- Langue
- Français
Vidéos associées


This article was reviewed and updated on 2024-07-22.
Contenus pertinents
demandé il y a un an
demandé il y a un an
demandé il y a un an
demandé il y a un an
AWS OFFICIELA mis à jour il y a 4 ans
AWS OFFICIELA mis à jour il y a 2 ans
AWS OFFICIELA mis à jour il y a 2 ans