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.
Argomenti
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
TransformeHooksdal 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::CodeDeployBlueGreenal tuo modello:"Transform": [ "AWS::CodeDeployBlueGreen" ], -
Aggiungi una sezione
Hooksche richiami l’hookAWS::CodeDeploy::BlueGreene 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. | Sì |
| 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.