CodeDeploy implementazioni blu/verdi 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 implementazioni blu/verdi per Amazon ECS

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

Il tipo di distribuzione blu/verde 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ò variare durante una distribuzione: blue/green

  • Canarie: il traffico viene spostato 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 un numero uguale di minuti tra ogni 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.

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

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

CodeDeploy applicazione

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

CodeDeploy gruppo di distribuzione

Le impostazioni di distribuzione. Comprendono:

  • Cluster e servizio Amazon ECS

  • Informazioni listener e gruppo target del load balancer

  • 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 distribuzioni

  • Impostazioni SNS o CloudWatch Events per le notifiche

Per ulteriori informazioni, consulta Utilizzo di gruppi di implementazione nella Guida per l'utente di AWS CodeDeploy .

CodeDeploy configurazione della distribuzione

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

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

  • CodeDeployDefault. ECSLinear10 PercentEvery 1Minuti: Sposta il 10% del traffico ogni minuto fino a quando tutto il traffico non viene spostato.

  • CodeDeployDefault. ECSLinear10 PercentEvery 3 minuti: sposta il 10 percento del traffico ogni 3 minuti fino a quando tutto il traffico non viene spostato.

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

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

Revisione

Una revisione è il file delle specifiche dell' CodeDeploy applicazione (file). AppSpec Nel AppSpec file, si specifica l'ARN completo della definizione dell'attività e il contenitore e la porta del set di attività sostitutivo in cui il traffico deve essere instradato 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 AppSpec file. 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, consulta AppSpec File Reference nella Guida AWS CodeDeploy per l'utente.

Considerazioni

Quando utilizzi il tipo di blue/green distribuzione, considera 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 verso l'attività sostitutiva impostata durante una distribuzione.

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

    • È necessario definire un gruppo target per il load balancer. Il gruppo target 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 la scalabilità automatica del servizio e il tipo di implementazione blu/verde, la scalabilità automatica non viene bloccata durante un'implementazione, ma l'implementazione potrebbe non riuscire in alcune circostanze. Di seguito viene descritto questo comportamento in modo più dettagliato.

    • Se un servizio è scalabile e viene avviata una distribuzione, viene creato il set di attività verde e CodeDeploy aspetterà fino a un'ora prima che il set di attività verde raggiunga lo stato stazionario e non sposterà il 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 variare per 5 minuti. Se il servizio non raggiunge lo stato stazionario entro 5 minuti, CodeDeploy interromperà la distribuzione e la contrassegnerà come fallita.

  • I processi che utilizzano il tipo di avvio 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 target per il load balancer. Un gruppo di destinazione deve essere il gruppo di destinazione iniziale definito per il load balancer quando il servizio Amazon ECS è stato creato. L'unico requisito del secondo gruppo target è che non può essere associato a un load balancer 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 verso il 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 deployments are made possible by a combination of the Amazon ECS and CodeDeploy APIs. Users must have the appropriate permissions for these services before they can use Amazon ECS blue/greendistribuzioni in o con AWS Management Console o. AWS CLI SDKs

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, consulta Amazon ECS_ FullAccess.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "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" ], "Resource": ["*"] } ] }
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 necessita delle autorizzazioni per chiamare Amazon ECS APIs, modificare Elastic Load Balancing, richiamare le funzioni Lambda e CloudWatch descrivere gli allarmi, oltre alle autorizzazioni per modificare il conteggio desiderato del servizio per tuo conto. Prima di creare un servizio Amazon ECS che utilizza il tipo di blue/green implementazione, devi creare un ruolo IAM (ecsCodeDeployRole). Per ulteriori informazioni, consulta Ruolo CodeDeploy IAM di Amazon ECS.

Gli esempi di policy Crea un esempio di servizio Amazon ECS e Esempio di aggiornamento del servizio Amazon ECS IAM mostrano le autorizzazioni necessarie agli utenti per utilizzare le blue/green distribuzioni di Amazon ECS su. AWS Management Console