Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Risorse Application Load Balancer per le implementazioni blue/green
Per utilizzare Application Load Balancers con le blue/green distribuzioni Amazon ECS, devi configurare risorse specifiche che consentano l'instradamento del traffico tra le revisioni del servizio blu e verde.
Limitazioni
Le seguenti limitazioni si applicano attualmente alle distribuzioni con Application Load Balancers: blue/green
-
Le distribuzioni blu/green non sono supportate quando si utilizzano listener Application Load Balancer con più tipi di azioni configurati con azioni non di inoltro. Se le regole del listener di Application Load Balancer contengono una combinazione di azioni di inoltro e non inoltro (come azioni di reindirizzamento, risposta fissa o autenticazione), la distribuzione avrà esito negativo.
Gruppi target
Per le blue/green implementazioni con Elastic Load Balancing, è necessario creare due gruppi target:
-
Un gruppo target principale per la revisione del servizio blue (traffico di produzione corrente)
-
Un gruppo target alternativo per la revisione del servizio verde (nuova versione)
Entrambi i gruppi target devono essere configurati con le seguenti impostazioni:
-
Tipo di obiettivo:
IP
(per Fargate o EC2 con modalità diawsvpc
rete) -
Protocollo:
HTTP
(o il protocollo utilizzato dall'applicazione) -
Porta: la porta su cui l'applicazione è in ascolto (in genere
80
per HTTP) -
VPC: lo stesso VPC delle tue attività Amazon ECS
-
Impostazioni Health check: configurate per controllare correttamente lo stato dell'applicazione
Durante una blue/green distribuzione, Amazon ECS registra automaticamente le attività con il gruppo target appropriato in base alla fase di distribuzione.
Esempio Creazione di gruppi target per un Application Load Balancer
I seguenti comandi CLI creano due gruppi target da utilizzare con un Application Load Balancer in una distribuzione: blue/green
aws elbv2 create-target-group \ --name
blue-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
È necessario creare un Application Load Balancer con la seguente configurazione:
-
Schema: connesso a Internet o interno, a seconda delle esigenze
-
Tipo di indirizzo IP: IPv4
-
VPC: lo stesso VPC delle tue attività Amazon ECS
-
Sottoreti: almeno due sottoreti in zone di disponibilità diverse
-
Gruppi di sicurezza: un gruppo di sicurezza che consente il traffico sulle porte del listener
Il gruppo di sicurezza collegato all'Application Load Balancer deve avere una regola in uscita che consenta il traffico verso il gruppo di sicurezza collegato alle tue attività Amazon ECS.
Esempio Creazione di un Application Load Balancer
Il seguente comando CLI crea un Application Load Balancer da utilizzare in una distribuzione blu/verde:
aws elbv2 create-load-balancer \ --name
my-application-load-balancer
\ --type application \ --security-groupssg-abcd1234
\ --subnetssubnet-12345678
subnet-87654321
Ascoltatori e regole
Per le blue/green distribuzioni, è necessario configurare i listener sull'Application Load Balancer:
-
Listener di produzione: gestisce il traffico di produzione (in genere sulla porta 80 o 443)
-
Inizialmente inoltra il traffico al gruppo target principale (revisione blu del servizio)
-
Dopo l'implementazione, inoltra il traffico al gruppo target alternativo (revisione del servizio verde)
-
-
Test listener (opzionale): gestisce il traffico di test per convalidare la revisione del servizio verde prima di spostare il traffico di produzione
-
Può essere configurato su una porta diversa (ad esempio 8080 o 8443)
-
Inoltra il traffico al gruppo target alternativo (revisione del servizio verde) durante il test
-
Durante una blue/green distribuzione, Amazon ECS aggiorna automaticamente le regole del listener per indirizzare il traffico verso il gruppo target appropriato in base alla fase di distribuzione.
Esempio Creazione di un listener di produzione
Il seguente comando CLI crea un listener di produzione sulla porta 80 che inoltra il traffico al gruppo target primario (blu):
aws elbv2 create-listener \ --load-balancer-arn
arn: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
Esempio Creazione di un listener di test
Il seguente comando CLI crea un listener di test sulla porta 8080 che inoltra il traffico al gruppo target alternativo (verde):
aws elbv2 create-listener \ --load-balancer-arn
arn: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
Esempio Creazione di una regola di ascolto per il routing basato sul percorso
Il seguente comando CLI crea una regola che inoltra il traffico per un percorso specifico al gruppo target verde per il test:
aws elbv2 create-rule \ --listener-arn
arn: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
Esempio Creazione di una regola di ascolto per il routing basato sulle intestazioni
Il seguente comando CLI crea una regola che inoltra il traffico con un'intestazione specifica al gruppo target verde per il test:
aws elbv2 create-rule \ --listener-arn
arn: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
Configurazione del servizio
Devi disporre delle autorizzazioni per consentire ad Amazon ECS di gestire le risorse di bilanciamento del carico nei tuoi cluster per tuo conto. Per ulteriori informazioni, consulta Ruolo IAM dell'infrastruttura Amazon ECS per i sistemi di bilanciamento del carico.
Quando crei o aggiorni un servizio Amazon ECS per blue/green distribuzioni con Elastic Load Balancing, devi specificare la seguente configurazione.
Sostituiscili con i tuoi valori. user-input
I componenti chiave di questa configurazione sono:
-
targetGroupArn
: L'ARN del gruppo target principale (revisione del servizio blu). -
alternateTargetGroupArn
: L'ARN del gruppo target alternativo (revisione del servizio verde). -
productionListenerRule
: L'ARN della regola listener per il traffico di produzione. -
roleArn
: L'ARN del ruolo che consente ad Amazon ECS di gestire le risorse Elastic Load Balancing. -
strategy
: impostato per abilitare le distribuzioniBLUE_GREEN
blu/verdi. -
bakeTimeInMinutes
: La durata in cui le revisioni del servizio blu e verde vengono eseguite contemporaneamente dopo lo spostamento del traffico di produzione. -
TestListenerRule
: L'ARN della regola listener per il traffico di test. Si tratta di un parametro facoltativo.
{ "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 } }
Flusso di traffico durante la distribuzione
Durante una blue/green distribuzione con Elastic Load Balancing, il traffico attraversa il sistema nel modo seguente:
-
Stato iniziale: tutto il traffico di produzione viene indirizzato al gruppo target principale (revisione blu del servizio).
-
Implementazione della revisione dei servizi ecologici: Amazon ECS distribuisce le nuove attività e le registra con il gruppo target alternativo.
-
Traffico di test: se è configurato un listener di test, il traffico di test viene indirizzato al gruppo target alternativo per convalidare la revisione del servizio verde.
-
Spostamento del traffico di produzione: Amazon ECS aggiorna la regola del listener di produzione per indirizzare il traffico verso il gruppo target alternativo (revisione del servizio verde).
-
Tempo di cottura: il periodo in cui le revisioni del servizio blu e verde vengono eseguite contemporaneamente dopo lo spostamento del traffico di produzione.
-
Completamento: dopo una corretta implementazione, la revisione blu del servizio viene terminata.
Se vengono rilevati problemi durante la distribuzione, Amazon ECS può eseguire automaticamente il rollback indirizzando il traffico verso il gruppo di destinazione principale (revisione blu del servizio).