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.
Ressources d'Application Load Balancer pour les déploiements blue/green
Pour utiliser les équilibreurs de charge d'application avec les blue/green déploiements Amazon ECS, vous devez configurer des ressources spécifiques qui permettent le routage du trafic entre les révisions de service bleues et vertes.
Groupes cibles
Pour les blue/green déploiements avec Elastic Load Balancing, vous devez créer deux groupes cibles :
-
Un groupe cible principal pour la révision du service bleu (trafic de production actuel)
-
Un autre groupe cible pour la révision du service écologique (nouvelle version)
Les deux groupes cibles doivent être configurés avec les paramètres suivants :
-
Type de cible :
IP(pour Fargate EC2 ouawsvpcen mode réseau) -
Protocole :
HTTP(ou le protocole utilisé par votre application) -
Port : port sur lequel votre application écoute (généralement
80pour le protocole HTTP) -
VPC : le même VPC que vos tâches Amazon ECS
-
Paramètres de vérification de l'état : configurés pour vérifier correctement l'état de santé de votre application
Au cours d'un blue/green déploiement, Amazon ECS enregistre automatiquement les tâches auprès du groupe cible approprié en fonction de l'étape de déploiement.
Exemple Création de groupes cibles pour un Application Load Balancer
Les commandes CLI suivantes créent deux groupes cibles à utiliser avec un Application Load Balancer dans le cadre d'un blue/green déploiement :
aws elbv2 create-target-group \ --nameblue-target-group\ --protocol HTTP \ --port 80 \ --vpc-idvpc-abcd1234\ --target-type ip \ --health-check-path / \ --health-check-protocol HTTP \ --health-check-interval-seconds 30 \ --health-check-timeout-seconds 5 \ --healthy-threshold-count 2 \ --unhealthy-threshold-count 2 aws elbv2 create-target-group \ --namegreen-target-group\ --protocol HTTP \ --port 80 \ --vpc-idvpc-abcd1234\ --target-type ip \ --health-check-path / \ --health-check-protocol HTTP \ --health-check-interval-seconds 30 \ --health-check-timeout-seconds 5 \ --healthy-threshold-count 2 \ --unhealthy-threshold-count 2
Application Load Balancer
Vous devez créer un Application Load Balancer avec la configuration suivante :
-
Schéma : connecté à Internet ou interne, selon vos besoins
-
Type d'adresse IP : IPv4
-
VPC : le même VPC que vos tâches Amazon ECS
-
Sous-réseaux : au moins deux sous-réseaux dans des zones de disponibilité différentes
-
Groupes de sécurité : groupe de sécurité qui autorise le trafic sur les ports de l'écouteur
Le groupe de sécurité attaché à l'Application Load Balancer doit disposer d'une règle sortante qui autorise le trafic vers le groupe de sécurité associé à vos tâches Amazon ECS.
Exemple Création d'un équilibreur de charge Application Load Balancer
La commande CLI suivante crée un Application Load Balancer à utiliser dans un déploiement bleu/vert :
aws elbv2 create-load-balancer \ --namemy-application-load-balancer\ --type application \ --security-groupssg-abcd1234\ --subnetssubnet-12345678subnet-87654321
Écouteurs et règles
Pour les blue/green déploiements, vous devez configurer des écouteurs sur votre Application Load Balancer :
-
Écouteur de production : gère le trafic de production (généralement sur le port 80 ou 443)
-
Transfère initialement le trafic au groupe cible principal (révision du service bleu)
-
Après le déploiement, transfert le trafic vers le groupe cible alternatif (révision du service écologique)
-
-
Écouteur de test (facultatif) : gère le trafic de test pour valider la révision du service écologique avant de transférer le trafic de production
-
Peut être configuré sur un port différent (par exemple, 8080 ou 8443)
-
Transfère le trafic vers le groupe cible alternatif (révision du service écologique) pendant les tests
-
Au cours d'un blue/green déploiement, Amazon ECS met automatiquement à jour les règles du récepteur pour acheminer le trafic vers le groupe cible approprié en fonction de la phase de déploiement.
Exemple Création d'un écouteur de production
La commande CLI suivante crée un écouteur de production sur le port 80 qui transmet le trafic au groupe cible principal (bleu) :
aws elbv2 create-listener \ --load-balancer-arnarn:aws:elasticloadbalancing:region:123456789012:loadbalancer/app/my-application-load-balancer/abcdef123456\ --protocol HTTP \ --port 80 \ --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region:123456789012:targetgroup/blue-target-group/abcdef123456
Exemple Création d'un écouteur de test
La commande CLI suivante crée un écouteur de test sur le port 8080 qui transmet le trafic au groupe cible alternatif (vert) :
aws elbv2 create-listener \ --load-balancer-arnarn:aws:elasticloadbalancing:region:123456789012:loadbalancer/app/my-application-load-balancer/abcdef123456\ --protocol HTTP \ --port 8080 \ --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region:123456789012:targetgroup/green-target-group/ghijkl789012
Exemple Création d'une règle d'écoute pour le routage basé sur le chemin
La commande CLI suivante crée une règle qui transmet le trafic d'un chemin spécifique au groupe cible vert à des fins de test :
aws elbv2 create-rule \ --listener-arnarn:aws:elasticloadbalancing:region:123456789012:listener/app/my-application-load-balancer/abcdef123456/ghijkl789012\ --priority 10 \ --conditions Field=path-pattern,Values='/test/*' \ --actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region:123456789012:targetgroup/green-target-group/ghijkl789012
Exemple Création d'une règle d'écoute pour le routage basé sur les en-têtes
La commande CLI suivante crée une règle qui transmet le trafic avec un en-tête spécifique au groupe cible vert à des fins de test :
aws elbv2 create-rule \ --listener-arnarn:aws:elasticloadbalancing:region:123456789012:listener/app/my-application-load-balancer/abcdef123456/ghijkl789012\ --priority 20 \ --conditions Field=http-header,HttpHeaderConfig='{Name=X-Environment,Values=[test]}' \ --actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region:123456789012:targetgroup/green-target-group/ghijkl789012
Configuration du service
Vous devez disposer des autorisations nécessaires pour autoriser Amazon ECS à gérer les ressources de l'équilibreur de charge dans vos clusters en votre nom. Pour de plus amples informations, veuillez consulter Rôle IAM de l'infrastructure Amazon ECS pour les équilibreurs de charge.
Lorsque vous créez ou mettez à jour un service Amazon ECS pour blue/green des déploiements avec Elastic Load Balancing, vous devez spécifier la configuration suivante.
Remplacez le user-input par vos valeurs.
Les principaux composants de cette configuration sont les suivants :
-
targetGroupArn: ARN du groupe cible principal (révision du service bleu). -
alternateTargetGroupArn: ARN du groupe cible alternatif (révision du service vert). -
productionListenerRule: l'ARN de la règle d'écoute pour le trafic de production. -
roleArn: ARN du rôle qui permet à Amazon ECS de gérer les ressources Elastic Load Balancing. -
strategy: défini sur pour activerBLUE_GREENles déploiements bleu/vert. -
bakeTimeInMinutes: durée pendant laquelle les révisions du service bleu et vert sont exécutées simultanément après le déplacement du trafic de production. -
TestListenerRule: l'ARN de la règle d'écoute pour le trafic de test. Ce paramètre est facultatif.
{ "loadBalancers": [ { "targetGroupArn": "arn:aws:elasticloadbalancing:region:123456789012:targetgroup/primary-target-group/abcdef123456", "containerName": "container-name", "containerPort": 80, "advancedConfiguration": { "alternateTargetGroupArn": "arn:aws:elasticloadbalancing:region:account-id:targetgroup/alternate-target-group/ghijkl789012", "productionListenerRule": "arn:aws:elasticloadbalancing:region:account-id:listener-rule/app/load-balancer-name/abcdef123456/listener/ghijkl789012/rule/mnopqr345678", "roleArn": "arn:aws:iam::123456789012:role/ecs-elb-role" } } ], "deploymentConfiguration": { "strategy": "BLUE_GREEN", "maximumPercent": 200, "minimumHealthyPercent": 100, "bakeTimeInMinutes": 5 } }
Flux de trafic pendant le déploiement
Lors d'un blue/green déploiement avec Elastic Load Balancing, le trafic circule dans le système comme suit :
-
État initial : tout le trafic de production est acheminé vers le groupe cible principal (révision du service bleu).
-
Déploiement de la révision du service écologique : Amazon ECS déploie les nouvelles tâches et les enregistre auprès du groupe cible alternatif.
-
Trafic de test : si un écouteur de test est configuré, le trafic de test est acheminé vers le groupe cible alternatif pour valider la révision du service vert.
-
Transfert du trafic de production : Amazon ECS met à jour la règle du récepteur de production pour acheminer le trafic vers le groupe cible alternatif (révision du service vert).
-
Temps de cuisson : durée pendant laquelle les révisions du service bleu et vert sont exécutées simultanément après le déplacement du trafic de production.
-
Achèvement : Après un déploiement réussi, la révision du service bleu est interrompue.
Si des problèmes sont détectés lors du déploiement, Amazon ECS peut automatiquement revenir en arrière en redirigeant le trafic vers le groupe cible principal (révision du service bleu).