Convalida lo stato di un ECS servizio Amazon prima della distribuzione - 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à.

Convalida lo stato di un ECS servizio Amazon prima della distribuzione

Il tipo di distribuzione blu/verde utilizza il modello di distribuzione blu/verde 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 ECS servizio Amazon prima della distribuzione

Esistono tre modi in cui il traffico può variare durante una distribuzione blu/verde:

  • 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 ECS utilizzati da Amazon quando un servizio utilizza il tipo di distribuzione blu/verde:

CodeDeploy applicazione

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

CodeDeploy gruppo di distribuzione

Le impostazioni di distribuzione. Comprendono:

  • ECSCluster e servizio Amazon

  • 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 configurata per interrompere le distribuzioni

  • SNSo impostazioni CloudWatch degli eventi per le notifiche

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

CodeDeploy configurazione di 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 ECS container Amazon 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 la definizione completa ARN 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 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 distribuzione blu/verde, tieni conto di quanto segue:

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

  • 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 implementazione blu/verde e si verifica un evento di dimensionamento, 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 fallita.

    • Se un servizio è in fase di implementazione blu/verde e si verifica un evento di dimensionamento, il numero dei processi desiderato potrebbe essere impostato su un valore imprevisto. Ciò è causato dal dimensionamento automatico che considera il numero dei processi in esecuzione come capacità corrente, ovvero il doppio del numero appropriato di processi utilizzati nel calcolo del numero dei processi desiderato.

  • 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 target dovrebbe essere il gruppo target iniziale definito per il load balancer al momento della creazione del ECS servizio Amazon. 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 ECS servizio Amazon, 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à sostitutivo in base alle impostazioni di reindirizzamento del traffico per il gruppo di distribuzione.

Autorizzazioni richieste IAM

Le implementazioni blu/verdi sono rese possibili da una combinazione di Amazon e. ECS CodeDeploy APIs Gli utenti devono disporre delle autorizzazioni appropriate per questi servizi prima di poter utilizzare le distribuzioni ECS blu/green di Amazon in o con la AWS Management Console sala operatoria. AWS CLI SDKs

Oltre alle IAM autorizzazioni standard per la creazione e l'aggiornamento dei servizi, Amazon ECS richiede le seguenti autorizzazioni. Queste autorizzazioni sono state aggiunte alla politica. AmazonECS_FullAccess IAM 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 ECS autorizzazioni Amazon standard richieste per eseguire attività e servizi, gli utenti richiedono anche iam:PassRole le autorizzazioni per utilizzare IAM i ruoli per le attività.

CodeDeploy necessita delle autorizzazioni per chiamare Amazon ECSAPIs, 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 ECS servizio Amazon che utilizzi il tipo di distribuzione blu/verde, devi creare un IAM ruolo ()ecsCodeDeployRole. Per ulteriori informazioni, consulta ECS CodeDeploy IAMRuolo di Amazon.

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