View a markdown version of this page

CodeDeploy blue/green implementazioni per Amazon ECS - Amazon Elastic Container Service

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

CodeDeploy blue/green implementazioni per Amazon ECS

Ti consigliamo di utilizzare la distribuzione Amazon ECS blue/green . Per ulteriori informazioni, consulta Creazione di una distribuzione Amazon ECS blue/green.

Il tipo blue/green di distribuzione utilizza il modello di blue/green distribuzione controllato da. CodeDeploy Utilizza questo tipo di implementazione per verificare una nuova implementazione di un servizio prima di inviarvi traffico di produzione. Per ulteriori informazioni, consulta Cosa c'è CodeDeploy nella Guida per l'AWS CodeDeploy utente. Convalida lo stato di un servizio Amazon ECS prima della distribuzione

Esistono tre modi in cui il traffico può spostarsi durante una distribuzione: blue/green

  • Canary: il traffico viene trasferito in due incrementi. Puoi scegliere tra opzioni canary predefinite che specificano la percentuale del traffico reinstradato al set di attività aggiornato nel primo incremento e l'intervallo, in minuti, prima che il traffico rimanente venga reinstradato nel secondo incremento.

  • Lineare: il traffico viene spostato in incrementi uguali con lo stesso intervallo di tempo, in minuti, tra ciascun incremento. Puoi scegliere tra opzioni lineari predefinite che specificano la percentuale del traffico reinstradato in ogni incremento e l'intervallo di tempo, in minuti, tra ciascun incremento.

  • All-at-once— Tutto il traffico viene spostato contemporaneamente dal set di attività originale al set di attività aggiornato.

Di seguito sono riportati i componenti utilizzati da Amazon ECS quando un servizio utilizza il tipo di blue/green distribuzione: CodeDeploy

CodeDeploy applicazione

Una raccolta di risorse. CodeDeploy È costituita da uno o più gruppi di implementazione.

CodeDeploy gruppo di distribuzione

Le impostazioni di implementazione. Comprendono:

  • Cluster e servizio Amazon ECS

  • Informazioni listener e gruppo di destinazione del bilanciatore del carico

  • Strategia di rollback dell’implementazione

  • Impostazioni di reinstradamento del traffico

  • Impostazioni di terminazione della revisione originale

  • Configurazione dell’implementazione

  • CloudWatch configurazione degli allarmi che può essere impostata per interrompere le implementazioni

  • Impostazioni SNS o CloudWatch Events per le notifiche

Per ulteriori informazioni, consultare Working with Deployment Groups nella Guida per l'utente di AWS CodeDeploy .

CodeDeploy configurazione della distribuzione

Specifica in che modo CodeDeploy indirizza il traffico di produzione verso l'attività sostitutiva impostata durante una distribuzione. Sono disponibili le seguenti configurazioni predefinite di implementazione lineare e canary. È inoltre possibile creare implementazioni lineari e canary personalizzate. Per ulteriori informazioni, consultare Working with Deployment Configurations nella Guida per l'utente di AWS CodeDeploy .

  • CodeDeployDefault.ECSAllAtOnce: sposta contemporaneamente tutto il traffico verso il contenitore Amazon ECS aggiornato

  • CodeDeployDefault.ECSLinear10PercentEvery1Minutes: sposta il 10% del traffico ogni minuto fino a spostare tutto il traffico.

  • CodeDeployDefault.ECSLinear10PercentEvery3Minutes: sposta il 10% del traffico ogni 3 minuti fino a spostare tutto il traffico.

  • CodeDeployDefault.ECSCanary10Percent5Minutes: sposta il 10% del traffico nel primo incremento. Il restante 90% viene reinstradato cinque minuti più tardi.

  • CodeDeployDefault.ECSCanary10Percent15Minutes: sposta il 10 percento del traffico nel primo incremento. Il restante 90 percento viene distribuito 15 minuti dopo.

Revisione

Una revisione è il file (AppSpec file) delle specifiche CodeDeploy dell'applicazione. Nel AppSpec file, si specifica l'ARN completo della definizione dell'attività e il contenitore e la porta del set di attività sostitutivo a cui indirizzare il traffico quando viene creata una nuova distribuzione. Il nome del container deve essere uno dei nomi di container cui si fa riferimento nella definizione delle attività. Se la configurazione di rete o la versione della piattaforma è stata aggiornata nella definizione del servizio, è necessario specificare anche tali dettagli nel file. AppSpec Puoi inoltre specificare le funzioni Lambda da eseguire durante gli eventi del ciclo di vita dell'implementazione. Le funzioni Lambda consentono di eseguire i test e restituire i parametri durante l'implementazione. Per ulteriori informazioni, vedere AppSpec File Reference nella Guida AWS CodeDeploy per l'utente.

Considerazioni

Quando si utilizza il tipo di blue/green distribuzione, si consideri quanto segue:

  • Quando viene inizialmente creato un servizio Amazon ECS che utilizza il tipo di blue/green distribuzione, viene creato un set di attività Amazon ECS.

  • Il servizio deve essere configurato per utilizzare un sistema Application Load Balancer o un Network Load Balancer. Di seguito sono elencati i requisiti del load balancer:

    • È necessario aggiungere al load balancer un listener di produzione che viene utilizzato per instradare il traffico di produzione.

    • Al load balancer può essere aggiunto un test opzionale che viene utilizzato per instradare il traffico di test. Se specifichi un listener di test, CodeDeploy indirizza il traffico di test al task sostitutivo impostato durante una distribuzione.

    • I listener di produzione e di test devono appartenere entrambi allo stesso load balancer.

    • È necessario definire un gruppo di destinazione per il bilanciatore del carico. Il gruppo di destinazione instrada il traffico verso l'attività originale impostata in un servizio attraverso il listener di produzione.

    • Quando viene utilizzato un Network Load Balancer, è supportata solo la configurazione dell'implementazione CodeDeployDefault.ECSAllAtOnce.

  • Per i servizi configurati per utilizzare il service auto scaling e il tipo di blue/green distribuzione, il ridimensionamento automatico non viene bloccato durante una distribuzione, ma la distribuzione potrebbe non riuscire in alcune circostanze. Di seguito viene descritto questo comportamento in modo più dettagliato.

    • Se un servizio è in fase di scalabilità e viene avviata una distribuzione, il task set verde viene creato e CodeDeploy attenderà fino a un'ora prima che il set di attività verde raggiunga lo stato stazionario e non sposterà alcun traffico finché non lo farà.

    • Se un servizio è in fase di blue/green implementazione e si verifica un evento di scalabilità, il traffico continuerà a spostarsi per 5 minuti. Se il servizio non raggiunge lo stato stazionario entro 5 minuti, CodeDeploy interromperà la distribuzione e la contrassegnerà come non riuscita.

  • Le attività che utilizzano Fargate oppure i tipi di controller di implementazione CODE_DEPLOY non supportano la strategia di pianificazione DAEMON.

  • Quando si crea inizialmente un' CodeDeploy applicazione e un gruppo di distribuzione, è necessario specificare quanto segue:

    • È necessario definire due gruppi di destinazione per il bilanciatore del carico. Un gruppo di destinazione deve essere il gruppo di destinazione iniziale definito per il bilanciatore del carico quando il servizio Amazon ECS è stato creato. L'unico requisito del secondo gruppo di destinazione è che non può essere associato a un bilanciatore del carico diverso rispetto a quello utilizzato dal servizio.

  • Quando crei una CodeDeploy distribuzione per un servizio Amazon ECS, CodeDeploy crea un set di attività sostitutivo (o set di attività verde) nella distribuzione. Se hai aggiunto un listener di test al load balancer, CodeDeploy indirizza il traffico di test al set di attività sostitutivo. Questo è il momento in cui è possibile eseguire i test di convalida. Quindi CodeDeploy reindirizza il traffico di produzione dal set di attività originale al set di attività di sostituzione in base alle impostazioni di reinstradamento del traffico per il gruppo di distribuzione.

Autorizzazioni IAM richieste

Blue/green le distribuzioni sono rese possibili da una combinazione di Amazon ECS e API. CodeDeploy Gli utenti devono disporre delle autorizzazioni appropriate per questi servizi prima di poter utilizzare le blue/green distribuzioni di Amazon ECS in o con gli Console di gestione AWS SDK o. AWS CLI

Oltre alle autorizzazioni IAM standard per la creazione e l'aggiornamento dei servizi, Amazon ECS richiede le seguenti autorizzazioni. Queste autorizzazioni sono state aggiunte alla policy IAM AmazonECS_FullAccess. Per ulteriori informazioni, consultare Amazon ECS_ FullAccess.

  • codedeploy:CreateApplication

  • codedeploy:CreateDeployment

  • codedeploy:CreateDeploymentGroup

  • codedeploy:GetApplication

  • codedeploy:GetDeployment

  • codedeploy:GetDeploymentGroup

  • codedeploy:ListApplications

  • codedeploy:ListDeploymentGroups

  • codedeploy:ListDeployments

  • codedeploy:StopDeployment

  • codedeploy:GetDeploymentTarget

  • codedeploy:ListDeploymentTargets

  • codedeploy:GetDeploymentConfig

  • codedeploy:GetApplicationRevision

  • codedeploy:RegisterApplicationRevision

  • codedeploy:BatchGetApplicationRevisions

  • codedeploy:BatchGetDeploymentGroups

  • codedeploy:BatchGetDeployments

  • codedeploy:BatchGetApplications

  • codedeploy:ListApplicationRevisions

  • codedeploy:ListDeploymentConfigs

  • codedeploy:ContinueDeployment

  • sns:ListTopics

  • cloudwatch:DescribeAlarms

  • lambda:ListFunctions

Nota

Oltre alle autorizzazioni Amazon ECS standard necessarie per eseguire processi e servizi, gli utenti hanno bisogno anche delle autorizzazioni iam:PassRole per utilizzare i ruoli IAM per le attività.

CodeDeploy ha bisogno delle autorizzazioni per chiamare le API di Amazon ECS, modificare Elastic Load Balancing, richiamare le funzioni Lambda e descrivere gli CloudWatch allarmi, nonché le autorizzazioni per modificare il numero desiderato del servizio per tuo conto. Prima di creare un servizio Amazon ECS che utilizza il tipo di blue/green distribuzione, devi creare un ruolo IAM (). ecsCodeDeployRole Per ulteriori informazioni, consulta Ruolo IAM di Amazon ECS CodeDeploy.