Informazioni sulle implementazioni blu/verde - AWS CloudFormation

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

Informazioni sulle implementazioni blu/verde

Questo argomento fornisce una panoramica di come funzionano le implementazioni blu/verde con CloudFormation. Spiega anche come preparare il modello CloudFormation per le implementazioni blu/verde.

Come funziona

Quando si utilizza CloudFormation per eseguire le implementazioni blu/verde di ECS tramite CodeDeploy, iniziare creando un modello di stack che definisce le risorse per gli ambienti applicativi blu e verde, inclusa la specifica delle impostazioni di instradamento e stabilizzazione del traffico da utilizzare. Successivamente, crea uno stack da quel modello. Questo genera l’applicazione blu (attuale). CloudFormation crea solo le risorse blu durante la creazione dello stack. Le risorse per una distribuzione verde non vengono create finché non sono necessarie.

Quindi, se in un aggiornamento dello stack futuro aggiorni la definizione dell’attività o le risorse del set di attività nell’applicazione blu, CloudFormation effettua le seguenti operazioni:

  • Genera tutte le risorse necessarie per l’ambiente delle applicazioni verdi

  • Sposta il traffico in base ai parametri di instradamento del traffico specificati

  • Elimina le risorse blu

Se si verifica un errore in qualsiasi momento prima che la distribuzione verde abbia esito positivo e sia finalizzata, CloudFormation ripristina lo stack allo stato precedente all’avvio dell’intera distribuzione verde.

Aggiornamenti delle risorse che avviano le implementazioni verdi

Quando si esegue un aggiornamento dello stack che aggiorna determinate proprietà di risorse ECS specifiche, CloudFormation inizia un processo di implementazione verde. Le risorse che avviano questo processo sono:

Tuttavia, se gli aggiornamenti a queste risorse non comportano modifiche alle proprietà che richiedono la sostituzione, non verrà avviata un’implementazione verde. Per ulteriori informazioni, consulta Comprendere l’aggiornamento dei comportamenti delle risorse stack.

È importante notare che non puoi unire gli aggiornamenti delle risorse di cui sopra con gli aggiornamenti di altre risorse nella stessa operazione di aggiornamento dello stack. Se devi aggiornare sia le risorse elencate che altre risorse all’interno dello stesso stack, hai due opzioni:

  • Eseguire due operazioni di aggiornamento separate: una che include solo gli aggiornamenti delle risorse precedenti e un aggiornamento separato dello stack che include le modifiche apportate a qualsiasi altra risorsa.

  • Rimuovi le sezioni Transform e Hooks dal modello e quindi esegui l’aggiornamento dello stack. In questo caso, CloudFormation non eseguirà una distribuzione verde.

Preparazione del modello per l’esecuzione di distribuzioni blu/verde di ECS

Per abilitare le distribuzioni blu/verde nello stack, includi le sezioni seguenti nel modello di stack prima di eseguire un aggiornamento dello stack.

  • Aggiungi un riferimento alla trasformazione AWS::CodeDeployBlueGreen al tuo modello:

    "Transform": [ "AWS::CodeDeployBlueGreen" ],
  • Aggiungi una sezione Hooks che richiami l’hook AWS::CodeDeploy::BlueGreen e specifica le proprietà per la distribuzione. Per ulteriori informazioni, consulta Sintassi di hook AWS::CodeDeploy::BlueGreen.

  • Nella sezione Resources, definisci le risorse blu e verdi per la distribuzione.

È possibile aggiungere queste sezioni quando si crea il modello per la prima volta o prima di creare lo stack medesimo; oppure è possibile aggiungerle a un modello esistente prima di eseguire un aggiornamento dello stack. Se si specifica l’implementazione blu/verde per un nuovo stack, CloudFormation crea solo le risorse blu durante la creazione dello stack; le risorse per l’implementazione verde non vengono create finché non sono necessarie durante un aggiornamento dello stack.

Modellazione della distribuzione blu/verde utilizzando le risorse CloudFormation

Per eseguire l’implementazione blu/verde di ECS su CodeDeploy, il modello CloudFormation deve includere le risorse che modellano l’implementazione, ad esempio un servizio Amazon ECS e un bilanciatore del carico. Per ulteriori dettagli su cosa rappresentano queste risorse, consulta Prima di iniziare una distribuzione Amazon ECS nella Guida per l’utente di AWS CodeDeploy.

Requisito Risorsa Obbligatorio/facoltativo Avviare l’implementazione blu/verde se sostituita?
Cluster Amazon ECS AWS::ECS::Cluster Facoltativo. Puoi utilizzare il cluster predefinito. No
Servizio Amazon ECS AWS::ECS::Service Obbligatorio. No
Applicazione o Network Load Balancer AWS::ECS::Service LoadBalancer Obbligatorio. No
Listener di produzione AWS::ElasticLoadBalancingV2::Listener Obbligatorio. No
Listener di prova AWS::ElasticLoadBalancingV2::Listener Facoltativo. No
Due gruppi target AWS::ElasticLoadBalancingV2::TargetGroup Obbligatorio. No
Definizione dell’attività di Amazon ECS AWS::ECS::TaskDefinition Obbligatorio.
Container per l’applicazione Amazon ECS AWS::ECS::TaskDefinition ContainerDefinition Name Obbligatorio. No
Porta per il set di attività di sostituzione AWS::ECS::TaskDefinition PortMapping ContainerPort Obbligatorio. No

Set di modifiche

Consigliamo vivamente di creare un set di modifiche prima di eseguire un aggiornamento dello stack che inizierà una distribuzione verde. Ciò ti consente di visualizzare le modifiche effettive che verranno apportate allo stack prima di procedere con l’aggiornamento. Tieni presente che le modifiche alle risorse potrebbero non essere elencate nell’ordine in cui verranno eseguite durante l’aggiornamento dello stack. Per ulteriori informazioni, consulta Aggiorna CloudFormation gli stack utilizzando i set di modifiche.

Monitoraggio degli eventi dello stack

È possibile visualizzare gli eventi stack generati in ogni fase dell’implementazione ECS nella scheda Events (Eventi) della pagina Stack oppure utilizzando AWS CLI. Per ulteriori informazioni, consulta Monitoraggio dell’avanzamento dello stack.

Autorizzazioni IAM per le implementazioni blu/verde

Affinché CloudFormation possa eseguire correttamente le distribuzioni blu-verde, è necessario disporre delle seguenti autorizzazioni CodeDeploy:

  • codedeploy:Get*

  • codedeploy:CreateCloudFormationDeployment

Per ulteriori informazioni, consulta Actions, resources, and condition keys for CodeDeploy in Service Authorization Reference.