Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Gestisci le distribuzioni blu/green di microservizi su più account e regioni utilizzando i servizi di codice AWS e le chiavi multiregionali AWS KMS - Prontuario AWS

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

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

Gestisci le distribuzioni blu/green di microservizi su più account e regioni utilizzando i servizi di codice AWS e le chiavi multiregionali AWS KMS

Creato da Balaji Vedagiri (AWS), Ashish Kumar (AWS), Faisal Shahdad (AWS), Anand Krishna Varanasi (AWS), Vanitha Dontireddy (AWS) e Vivek Thangamuthu (AWS)

Riepilogo

AWS CodeCommit Avviso: non è più disponibile per i nuovi clienti. I clienti esistenti di AWS CodeCommit possono continuare a utilizzare il servizio normalmente. Ulteriori informazioni

Questo modello descrive come distribuire un'applicazione globale di microservizi da un account AWS centrale a più account di carico di lavoro e regioni secondo una strategia di distribuzione blu/verde. Il pattern supporta quanto segue:

  • Il software è sviluppato in un account centrale, mentre i carichi di lavoro e le applicazioni sono distribuiti su più account e regioni AWS.

  • Una singola chiave multiregionale AWS Key Management System (AWS KMS) viene utilizzata per la crittografia e la decrittografia per coprire il disaster recovery.

  • La chiave KMS è specifica della regione e deve essere gestita o creata in tre diverse regioni per gli artefatti della pipeline. Una chiave multiregionale KMS aiuta a mantenere lo stesso ID chiave in tutte le regioni.

  • Il modello di ramificazione del flusso di lavoro Git è implementato con due rami (development e main) e il codice viene unito utilizzando pull request (PRs). La funzione AWS Lambda distribuita da questo stack crea un PR dal ramo di sviluppo al ramo principale. L'unione delle pubbliche relazioni con la filiale principale avvia una CodePipeline pipeline AWS, che orchestra il flusso di integrazione continua e distribuzione continua (CI/CD) e distribuisce gli stack tra gli account.

Questo modello fornisce un esempio di configurazione dell'infrastruttura come codice (IaC) tramite gli CloudFormation stack AWS per dimostrare questo caso d'uso. La distribuzione blu/verde dei microservizi viene implementata utilizzando AWS. CodeDeploy

Prerequisiti e limitazioni

Prerequisiti

  • Quattro account AWS attivi:

    • Un account di strumenti per gestire la pipeline di codice e mantenere il CodeCommit repository AWS.

    • Tre account di carico di lavoro (test) per la distribuzione del carico di lavoro dei microservizi.

  • Questo modello utilizza le seguenti regioni. Se desideri utilizzare altre regioni, devi apportare le modifiche appropriate agli stack multiregione AWS CodeDeploy e AWS KMS.

    • Account Tools (AWS CodeCommit): ap-south-1

    • Account Workload (test) 1: ap-south-1

    • Account per il carico di lavoro (test) 2: eu-central-1

    • Account per il carico di lavoro (test) 3: us-east-1

  • Tre bucket Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) per le regioni di distribuzione in ogni account di carico di lavoro. (Queste vengono chiamate S3BUCKETNAMETESTACCOUNT1 S3BUCKETNAMETESTACCOUNT2 e S3BUCKETNAMETESTACCOUNT3 più avanti in questo schema).

    Ad esempio, puoi creare questi bucket in account e regioni specifici con nomi di bucket univoci come segue (sostituisci xxxx con un numero casuale):

    ##In Test Account 1 aws s3 mb s3://ecs-codepipeline-xxxx-ap-south-1 --region ap-south-1 ##In Test Account 2 aws s3 mb s3://ecs-codepipeline-xxxx-eu-central-1 --region eu-central-1 ##In Test Account 3 aws s3 mb s3://ecs-codepipeline-xxxx-us-east-1 --region us-east-1 #Example ##In Test Account 1 aws s3 mb s3://ecs-codepipeline-18903-ap-south-1 --region ap-south-1 ##In Test Account 2 aws s3 mb s3://ecs-codepipeline-18903-eu-central-1 --region eu-central-1 ##In Test Account 3 aws s3 mb s3://ecs-codepipeline-18903-us-east-1 --region us-east-1

Limitazioni

Il modello utilizza AWS CodeBuild e altri file di configurazione per distribuire un microservizio di esempio. Se hai un tipo di carico di lavoro diverso (ad esempio, serverless), devi aggiornare tutte le configurazioni pertinenti.

Architettura

Stack tecnologico Target

  • AWS CloudFormation

  • AWS CodeCommit

  • AWS CodeBuild

  • AWS CodeDeploy

  • AWS CodePipeline

Architettura Target

Architettura di destinazione per l'implementazione di microservizi su più account e regioni

Automazione e scalabilità

La configurazione è automatizzata utilizzando i modelli di CloudFormation stack AWS (IaC). Può essere facilmente scalato per più ambienti e account.

Strumenti

Servizi AWS

  • AWS ti CloudFormation aiuta a configurare le risorse AWS, effettuarne il provisioning in modo rapido e coerente e gestirle durante tutto il loro ciclo di vita su account e regioni AWS.

  • AWS CodeBuild è un servizio di build completamente gestito che ti aiuta a compilare codice sorgente, eseguire test unitari e produrre artefatti pronti per la distribuzione.

  • AWS CodeCommit è un servizio di controllo delle versioni che ti aiuta ad archiviare e gestire in modo privato gli archivi Git, senza dover gestire il tuo sistema di controllo del codice sorgente.

  • AWS CodeDeploy automatizza le distribuzioni su Amazon Elastic Compute Cloud (Amazon EC2) o istanze locali, funzioni AWS Lambda o servizi Amazon Elastic Container Service (Amazon ECS).

  • AWS ti CodePipeline aiuta a modellare e configurare rapidamente le diverse fasi di un rilascio di software e ad automatizzare i passaggi necessari per rilasciare continuamente le modifiche al software.

  • Amazon Elastic Container Registry (Amazon ECR) è un servizio di registro di immagini di container gestito sicuro, scalabile e affidabile.

  • Amazon Elastic Container Service (Amazon ECS) è un servizio rapido e scalabile di gestione dei container che ti aiuta a eseguire, arrestare e gestire container in un cluster.

  • AWS Key Management Service (AWS KMS) ti aiuta a creare e controllare chiavi crittografiche per proteggere i tuoi dati.

  • Amazon Simple Storage Service (Amazon S3) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.

Strumenti aggiuntivi

  • Git è un sistema di controllo delle versioni distribuito e open source che funziona con il CodeCommit repository AWS.

  • Docker è un insieme di prodotti Platform as a Service (PaaS) che utilizzano la virtualizzazione a livello di sistema operativo per fornire software in container. Questo modello utilizza Docker per creare e testare le immagini dei container localmente.

  • cfn-lint e cfn-nag sono strumenti open source che ti aiutano a esaminare CloudFormation gli stack per eventuali errori e problemi di sicurezza.

Deposito di codici

Il codice per questo modello è disponibile nelle distribuzioni GitHub Global Blue/Green in più regioni e archivi di account.

Epiche

AttivitàDescrizioneCompetenze richieste

Esporta le variabili di ambiente per la distribuzione CloudFormation in stack.

Definisci le variabili di ambiente che verranno utilizzate come input per gli CloudFormation stack più avanti in questo schema.

  1. Aggiorna i nomi dei bucket che hai creato nei tre account e regioni come spiegato in precedenza nella sezione Prerequisiti:

    export S3BUCKETNAMETESTACCOUNT1=<S3BUCKETACCOUNT1> export S3BUCKETNAMETESTACCOUNT2=<S3BUCKETACCOUNT2> export S3BUCKETNAMETESTACCOUNT3=<S3BUCKETACCOUNT3>
  2. Definite una stringa casuale per creare bucket di artefatti, poiché i nomi dei bucket devono essere univoci a livello globale:

    export BUCKETSTARTNAME=ecs-codepipeline-artifacts-19992
  3. Definisci ed esporta l'account e le regioni: IDs

    export TOOLSACCOUNT=<TOOLSACCOUNT> export CODECOMMITACCOUNT=<CODECOMMITACCOUNT> export CODECOMMITREGION=ap-south-1 export CODECOMMITREPONAME=Poc export TESTACCOUNT1=<TESTACCOUNT1> export TESTACCOUNT2=<TESTACCOUNT2> export TESTACCOUNT3=<TESTACCOUNT3> export TESTACCOUNT1REGION=ap-south-1 export TESTACCOUNT2REGION=eu-central-1 export TESTACCOUNT3REGION=us-east-1 export TOOLSACCOUNTREGION=ap-south-1 export ECRREPOSITORYNAME=web
AWS DevOps

Imposta le variabili di ambiente

AttivitàDescrizioneCompetenze richieste

Esporta le variabili di ambiente per la distribuzione CloudFormation in stack.

Definisci le variabili di ambiente che verranno utilizzate come input per gli CloudFormation stack più avanti in questo schema.

  1. Aggiorna i nomi dei bucket che hai creato nei tre account e regioni come spiegato in precedenza nella sezione Prerequisiti:

    export S3BUCKETNAMETESTACCOUNT1=<S3BUCKETACCOUNT1> export S3BUCKETNAMETESTACCOUNT2=<S3BUCKETACCOUNT2> export S3BUCKETNAMETESTACCOUNT3=<S3BUCKETACCOUNT3>
  2. Definite una stringa casuale per creare bucket di artefatti, poiché i nomi dei bucket devono essere univoci a livello globale:

    export BUCKETSTARTNAME=ecs-codepipeline-artifacts-19992
  3. Definisci ed esporta l'account e le regioni: IDs

    export TOOLSACCOUNT=<TOOLSACCOUNT> export CODECOMMITACCOUNT=<CODECOMMITACCOUNT> export CODECOMMITREGION=ap-south-1 export CODECOMMITREPONAME=Poc export TESTACCOUNT1=<TESTACCOUNT1> export TESTACCOUNT2=<TESTACCOUNT2> export TESTACCOUNT3=<TESTACCOUNT3> export TESTACCOUNT1REGION=ap-south-1 export TESTACCOUNT2REGION=eu-central-1 export TESTACCOUNT3REGION=us-east-1 export TOOLSACCOUNTREGION=ap-south-1 export ECRREPOSITORYNAME=web
AWS DevOps
AttivitàDescrizioneCompetenze richieste

Clonare il repository.

Clona il repository di esempio in un nuovo repository nella tua sede di lavoro:

##In work location git clone https://github.com/aws-samples/ecs-blue-green-global-deployment-with-multiregion-cmk-codepipeline.git
AWS DevOps

Package delle risorse di Cloudformation.

In questo passaggio, impacchetterai gli artefatti locali a cui i CloudFormation modelli fanno riferimento per creare le risorse di infrastruttura necessarie per servizi come Amazon Virtual Private Cloud (Amazon VPC) e Application Load Balancer.

I modelli sono disponibili nella Infra cartella del repository del codice.

##In TestAccount1## aws cloudformation package \ --template-file mainInfraStack.yaml \ --s3-bucket $S3BUCKETNAMETESTACCOUNT1 \ --s3-prefix infraStack \ --region $TESTACCOUNT1REGION \ --output-template-file infrastructure_${TESTACCOUNT1}.template
##In TestAccount2## aws cloudformation package \ --template-file mainInfraStack.yaml \ --s3-bucket $S3BUCKETNAMETESTACCOUNT2 \ --s3-prefix infraStack \ --region $TESTACCOUNT2REGION \ --output-template-file infrastructure_${TESTACCOUNT2}.template
##In TestAccount3## aws cloudformation package \ --template-file mainInfraStack.yaml \ --s3-bucket $S3BUCKETNAMETESTACCOUNT3 \ --s3-prefix infraStack \ --region $TESTACCOUNT3REGION \ --output-template-file infrastructure_${TESTACCOUNT3}.template
AWS DevOps

Convalida i modelli di pacchetto.

Convalida i modelli di pacchetto:

aws cloudformation validate-template \ --template-body file://infrastructure_${TESTACCOUNT1}.template aws cloudformation validate-template \ --template-body file://infrastructure_${TESTACCOUNT2}.template aws cloudformation validate-template \ --template-body file://infrastructure_${TESTACCOUNT3}.template
AWS DevOps

Distribuisci i file del pacchetto negli account dei carichi di lavoro,

  1. Aggiorna i valori segnaposto e i nomi degli account nello nfraParameters.json script i in base alla tua configurazione.

  2. Distribuisci i modelli di pacchetto nei tuoi tre account di carico di lavoro.

    ##In TestAccount1## aws cloudformation deploy \ --template-file infrastructure_${TESTACCOUNT1}.template \ --stack-name mainInfrastack \ --parameter-overrides file://infraParameters.json \ --region $TESTACCOUNT1REGION \ --capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM ##In TestAccount2## aws cloudformation deploy \ --template-file infrastructure_${TESTACCOUNT2}.template \ --stack-name mainInfrastack \ --parameter-overrides file://infraParameters.json \ --region $TESTACCOUNT2REGION \ --capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM ##In TestAccount3## aws cloudformation deploy \ --template-file infrastructure_${TESTACCOUNT3}.template \ --stack-name mainInfrastack \ --parameter-overrides file://infraParameters.json \ --region $TESTACCOUNT3REGION \ --capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM
AWS DevOps

Package e distribuzione degli CloudFormation stack per l'infrastruttura

AttivitàDescrizioneCompetenze richieste

Clonare il repository.

Clona il repository di esempio in un nuovo repository nella tua sede di lavoro:

##In work location git clone https://github.com/aws-samples/ecs-blue-green-global-deployment-with-multiregion-cmk-codepipeline.git
AWS DevOps

Package delle risorse di Cloudformation.

In questo passaggio, impacchetterai gli artefatti locali a cui i CloudFormation modelli fanno riferimento per creare le risorse di infrastruttura necessarie per servizi come Amazon Virtual Private Cloud (Amazon VPC) e Application Load Balancer.

I modelli sono disponibili nella Infra cartella del repository del codice.

##In TestAccount1## aws cloudformation package \ --template-file mainInfraStack.yaml \ --s3-bucket $S3BUCKETNAMETESTACCOUNT1 \ --s3-prefix infraStack \ --region $TESTACCOUNT1REGION \ --output-template-file infrastructure_${TESTACCOUNT1}.template
##In TestAccount2## aws cloudformation package \ --template-file mainInfraStack.yaml \ --s3-bucket $S3BUCKETNAMETESTACCOUNT2 \ --s3-prefix infraStack \ --region $TESTACCOUNT2REGION \ --output-template-file infrastructure_${TESTACCOUNT2}.template
##In TestAccount3## aws cloudformation package \ --template-file mainInfraStack.yaml \ --s3-bucket $S3BUCKETNAMETESTACCOUNT3 \ --s3-prefix infraStack \ --region $TESTACCOUNT3REGION \ --output-template-file infrastructure_${TESTACCOUNT3}.template
AWS DevOps

Convalida i modelli di pacchetto.

Convalida i modelli di pacchetto:

aws cloudformation validate-template \ --template-body file://infrastructure_${TESTACCOUNT1}.template aws cloudformation validate-template \ --template-body file://infrastructure_${TESTACCOUNT2}.template aws cloudformation validate-template \ --template-body file://infrastructure_${TESTACCOUNT3}.template
AWS DevOps

Distribuisci i file del pacchetto negli account dei carichi di lavoro,

  1. Aggiorna i valori segnaposto e i nomi degli account nello nfraParameters.json script i in base alla tua configurazione.

  2. Distribuisci i modelli di pacchetto nei tuoi tre account di carico di lavoro.

    ##In TestAccount1## aws cloudformation deploy \ --template-file infrastructure_${TESTACCOUNT1}.template \ --stack-name mainInfrastack \ --parameter-overrides file://infraParameters.json \ --region $TESTACCOUNT1REGION \ --capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM ##In TestAccount2## aws cloudformation deploy \ --template-file infrastructure_${TESTACCOUNT2}.template \ --stack-name mainInfrastack \ --parameter-overrides file://infraParameters.json \ --region $TESTACCOUNT2REGION \ --capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM ##In TestAccount3## aws cloudformation deploy \ --template-file infrastructure_${TESTACCOUNT3}.template \ --stack-name mainInfrastack \ --parameter-overrides file://infraParameters.json \ --region $TESTACCOUNT3REGION \ --capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM
AWS DevOps
AttivitàDescrizioneCompetenze richieste

Invia un'immagine di esempio al repository Amazon ECR.

Invia un'immagine di esempio (NGINX) al repository Amazon Elastic Container Registry (Amazon ECR) web denominato (come impostato nei parametri). Puoi personalizzare l'immagine in base alle tue esigenze.

Per accedere e impostare le credenziali per inviare un'immagine ad Amazon ECR, segui le istruzioni nella documentazione di Amazon ECR.

I comandi sono:

docker pull nginx docker images docker tag <imageid> aws_account_id.dkr.ecr.region.amazonaws.com/<web>:latest docker push <aws_account_id>.dkr.ecr.<region>.amazonaws.com/<web>:tag
AWS DevOps

Scala Amazon ECS e verifica l'accesso.

  1. Scala Amazon ECS per creare due repliche:

    aws ecs update-service --cluster QA-Cluster --service Poc-Service --desired-count 2

    dove Poc-Service si riferisce alla tua applicazione di esempio.

  2. Verifica che i servizi siano accessibili da Application Load Balancer utilizzando un nome di dominio completo (FQDN) o DNS da un browser o utilizzando il comando curl.

AWS DevOps

Invia un'immagine di esempio e ridimensiona Amazon ECS

AttivitàDescrizioneCompetenze richieste

Invia un'immagine di esempio al repository Amazon ECR.

Invia un'immagine di esempio (NGINX) al repository Amazon Elastic Container Registry (Amazon ECR) web denominato (come impostato nei parametri). Puoi personalizzare l'immagine in base alle tue esigenze.

Per accedere e impostare le credenziali per inviare un'immagine ad Amazon ECR, segui le istruzioni nella documentazione di Amazon ECR.

I comandi sono:

docker pull nginx docker images docker tag <imageid> aws_account_id.dkr.ecr.region.amazonaws.com/<web>:latest docker push <aws_account_id>.dkr.ecr.<region>.amazonaws.com/<web>:tag
AWS DevOps

Scala Amazon ECS e verifica l'accesso.

  1. Scala Amazon ECS per creare due repliche:

    aws ecs update-service --cluster QA-Cluster --service Poc-Service --desired-count 2

    dove Poc-Service si riferisce alla tua applicazione di esempio.

  2. Verifica che i servizi siano accessibili da Application Load Balancer utilizzando un nome di dominio completo (FQDN) o DNS da un browser o utilizzando il comando curl.

AWS DevOps
AttivitàDescrizioneCompetenze richieste

Crea un CodeCommit repository nell'account degli strumenti.

Crea un CodeCommit repository nell'account degli strumenti utilizzando il codecommit.yaml modello, che si trova nella code cartella del GitHub repository. È necessario creare questo repository solo nella singola regione in cui si prevede di sviluppare il codice.

aws cloudformation deploy --stack-name codecommitrepoStack --parameter-overrides CodeCommitReponame=$CODECOMMITREPONAME \ ToolsAccount=$TOOLSACCOUNT --template-file codecommit.yaml --region $TOOLSACCOUNTREGION \ --capabilities CAPABILITY_NAMED_IAM
AWS DevOps

Crea un bucket S3 per gestire gli artefatti generati da. CodePipeline

Crea un bucket S3 per gestire gli artefatti generati CodePipeline utilizzando il pre-reqs-bucket.yaml modello, che si trova nella cartella del repository. code GitHub Gli stack devono essere distribuiti in tutti e tre gli account e le regioni per carichi di lavoro (test) e strumenti.

aws cloudformation deploy --stack-name pre-reqs-artifacts-bucket --parameter-overrides BucketStartName=$BUCKETSTARTNAME \ TestAccount1=$TESTACCOUNT1 TestAccount2=$TESTACCOUNT2 \ TestAccount3=$TESTACCOUNT3 CodeCommitAccount=$CODECOMMITACCOUNT ToolsAccount=$TOOLSACCOUNT \ --template-file pre-reqs_bucket.yaml --region $TESTACCOUNT1REGION --capabilities CAPABILITY_NAMED_IAM aws cloudformation deploy --stack-name pre-reqs-artifacts-bucket --parameter-overrides BucketStartName=$BUCKETSTARTNAME \ TestAccount1=$TESTACCOUNT1 TestAccount2=$TESTACCOUNT2 \ TestAccount3=$TESTACCOUNT3 CodeCommitAccount=$CODECOMMITACCOUNT ToolsAccount=$TOOLSACCOUNT \ --template-file pre-reqs_bucket.yaml --region $TESTACCOUNT2REGION --capabilities CAPABILITY_NAMED_IAM aws cloudformation deploy --stack-name pre-reqs-artifacts-bucket --parameter-overrides BucketStartName=$BUCKETSTARTNAME \ TestAccount1=$TESTACCOUNT1 TestAccount2=$TESTACCOUNT2 \ TestAccount3=$TESTACCOUNT3 CodeCommitAccount=$CODECOMMITACCOUNT ToolsAccount=$TOOLSACCOUNT \ --template-file pre-reqs_bucket.yaml --region $TESTACCOUNT3REGION --capabilities CAPABILITY_NAMED_IAM aws cloudformation deploy --stack-name pre-reqs-artifacts-bucket --parameter-overrides BucketStartName=$BUCKETSTARTNAME \ TestAccount1=$TESTACCOUNT1 TestAccount2=$TESTACCOUNT2 \ TestAccount3=$TESTACCOUNT3 CodeCommitAccount=$CODECOMMITACCOUNT ToolsAccount=$TOOLSACCOUNT \ --template-file pre-reqs_bucket.yaml --region $TOOLSACCOUNTREGION --capabilities CAPABILITY_NAMED_IAM
AWS DevOps

Configura una chiave KMS multiregionale.

  1. Crea una chiave KMS multiregionale con chiavi primarie e di replica che utilizzerai. CodePipeline Nel nostro esempio, ToolsAccount1region - ap-south-1 sarà la regione principale.

    aws cloudformation deploy --stack-name ecs-codepipeline-pre-reqs-KMS \ --template-file pre-reqs_KMS.yaml --parameter-overrides \ TestAccount1=$TESTACCOUNT1 TestAccount2=$TESTACCOUNT2 \ TestAccount3=$TESTACCOUNT3 CodeCommitAccount=$CODECOMMITACCOUNT ToolsAccount=$TOOLSACCOUNT --region $TOOLSACCOUNTREGION
  2. Imposta le variabili CMKARN da passare ai CodeBuild progetti. I valori sono disponibili nell'output dello stack di modelli ecs-codepipeline-pre-reqs -KMS (l'ID della chiave sarà lo stesso in tutte le regioni e inizia con). mrk- In alternativa, puoi ottenere i valori CMKARN dall'account degli strumenti. Esportali in tutte le sessioni dell'account: 

    export CMKARN1=arn:aws:kms:ap-south-1:<TOOLSACCOUNTID>:key/mrk-xxx export CMKARN2=arn:aws:kms:eu-central-1:<TOOLSACCOUNTID>:key/mrk-xxx export CMKARN3=arn:aws:kms:us-east-1:<TOOLSACCOUNTID>:key/mrk-xxx export CMARNTOOLS=arn:aws:kms:ap-south-1:<TOOLSACCOUNTID>:key/mrk-xxx
AWS DevOps

Configura il CodeBuild progetto nell'account degli strumenti.

  1. Utilizza il codebuild_IAM.yaml modello dalla code cartella del GitHub repository per configurare AWS Identity and Access Management (IAM) per AWS CodeBuild in una singola regione nell'account degli strumenti:

    #In ToolsAccount aws cloudformation deploy --stack-name ecs-codebuild-iam \ --template-file codebuild_IAM.yaml --region $TOOLSACCOUNTREGION \ --capabilities CAPABILITY_NAMED_IAM
  2. Usa il codebuild.yaml modello CodeBuild per configurare il tuo progetto di build. Distribuisci questo modello in tutte e tre le regioni come segue:

    aws cloudformation deploy --stack-name ecscodebuildstack --parameter-overrides ToolsAccount=$TOOLSACCOUNT \ CodeCommitRepoName=$CODECOMMITREPONAME ECRRepositoryName=$ECRREPOSITORYNAME APPACCOUNTID=$TESTACCOUNT1 \ TestAccount3=$TESTACCOUNT3 CodeCommitRegion=$CODECOMMITREGION CMKARN=$CMKARN1 \ --template-file codebuild.yaml --region $TESTACCOUNT1REGION --capabilities CAPABILITY_NAMED_IAM aws cloudformation deploy --stack-name ecscodebuildstack --parameter-overrides ToolsAccount=$TOOLSACCOUNT \ CodeCommitRepoName=$CODECOMMITREPONAME ECRRepositoryName=$ECRREPOSITORYNAME APPACCOUNTID=$TESTACCOUNT2 \ TestAccount3=$TESTACCOUNT3 CodeCommitRegion=$CODECOMMITREGION CMKARN=$CMKARN2 \ --template-file codebuild.yaml --region $TESTACCOUNT2REGION --capabilities CAPABILITY_NAMED_IAM aws cloudformation deploy --stack-name ecscodebuildstack --parameter-overrides ToolsAccount=$TOOLSACCOUNT \ CodeCommitRepoName=$CODECOMMITREPONAME ECRRepositoryName=$ECRREPOSITORYNAME APPACCOUNTID=$TESTACCOUNT3 \ CodeCommitRegion=$CODECOMMITREGION CMKARN=$CMKARN3 \ --template-file codebuild.yaml --region $TESTACCOUNT3REGION --capabilities CAPABILITY_NAMED_IAM
AWS DevOps

Configurazione CodeDeploy negli account di carico di lavoro.

Utilizza il codedeploy.yaml modello nella code cartella del GitHub repository per eseguire la configurazione CodeDeploy in tutti e tre gli account di carico di lavoro. L'output di mainInfraStack include Amazon Resource Names (ARNs) del cluster Amazon ECS e il listener Application Load Balancer.

Nota

I valori degli stack di infrastruttura vengono già esportati, quindi vengono importati dai modelli di stack. CodeDeploy

##WorkloadAccount1## aws cloudformation deploy --stack-name ecscodedeploystack \ --parameter-overrides ToolsAccount=$TOOLSACCOUNT mainInfrastackname=mainInfrastack \ --template-file codedeploy.yaml --region $TESTACCOUNT1REGION --capabilities CAPABILITY_NAMED_IAM ##WorkloadAccount2## aws cloudformation deploy --stack-name ecscodedeploystack \ --parameter-overrides ToolsAccount=$TOOLSACCOUNT mainInfrastackname=mainInfrastack \ --template-file codedeploy.yaml --region $TESTACCOUNT2REGION --capabilities CAPABILITY_NAMED_IAM ##WorkloadAccount3## aws cloudformation deploy --stack-name ecscodedeploystack \ --parameter-overrides ToolsAccount=$TOOLSACCOUNT mainInfrastackname=mainInfrastack \ --template-file codedeploy.yaml --region $TESTACCOUNT3REGION --capabilities CAPABILITY_NAMED_IAM
AWS DevOps

Configura servizi e risorse di codice

AttivitàDescrizioneCompetenze richieste

Crea un CodeCommit repository nell'account degli strumenti.

Crea un CodeCommit repository nell'account degli strumenti utilizzando il codecommit.yaml modello, che si trova nella code cartella del GitHub repository. È necessario creare questo repository solo nella singola regione in cui si prevede di sviluppare il codice.

aws cloudformation deploy --stack-name codecommitrepoStack --parameter-overrides CodeCommitReponame=$CODECOMMITREPONAME \ ToolsAccount=$TOOLSACCOUNT --template-file codecommit.yaml --region $TOOLSACCOUNTREGION \ --capabilities CAPABILITY_NAMED_IAM
AWS DevOps

Crea un bucket S3 per gestire gli artefatti generati da. CodePipeline

Crea un bucket S3 per gestire gli artefatti generati CodePipeline utilizzando il pre-reqs-bucket.yaml modello, che si trova nella cartella del repository. code GitHub Gli stack devono essere distribuiti in tutti e tre gli account e le regioni per carichi di lavoro (test) e strumenti.

aws cloudformation deploy --stack-name pre-reqs-artifacts-bucket --parameter-overrides BucketStartName=$BUCKETSTARTNAME \ TestAccount1=$TESTACCOUNT1 TestAccount2=$TESTACCOUNT2 \ TestAccount3=$TESTACCOUNT3 CodeCommitAccount=$CODECOMMITACCOUNT ToolsAccount=$TOOLSACCOUNT \ --template-file pre-reqs_bucket.yaml --region $TESTACCOUNT1REGION --capabilities CAPABILITY_NAMED_IAM aws cloudformation deploy --stack-name pre-reqs-artifacts-bucket --parameter-overrides BucketStartName=$BUCKETSTARTNAME \ TestAccount1=$TESTACCOUNT1 TestAccount2=$TESTACCOUNT2 \ TestAccount3=$TESTACCOUNT3 CodeCommitAccount=$CODECOMMITACCOUNT ToolsAccount=$TOOLSACCOUNT \ --template-file pre-reqs_bucket.yaml --region $TESTACCOUNT2REGION --capabilities CAPABILITY_NAMED_IAM aws cloudformation deploy --stack-name pre-reqs-artifacts-bucket --parameter-overrides BucketStartName=$BUCKETSTARTNAME \ TestAccount1=$TESTACCOUNT1 TestAccount2=$TESTACCOUNT2 \ TestAccount3=$TESTACCOUNT3 CodeCommitAccount=$CODECOMMITACCOUNT ToolsAccount=$TOOLSACCOUNT \ --template-file pre-reqs_bucket.yaml --region $TESTACCOUNT3REGION --capabilities CAPABILITY_NAMED_IAM aws cloudformation deploy --stack-name pre-reqs-artifacts-bucket --parameter-overrides BucketStartName=$BUCKETSTARTNAME \ TestAccount1=$TESTACCOUNT1 TestAccount2=$TESTACCOUNT2 \ TestAccount3=$TESTACCOUNT3 CodeCommitAccount=$CODECOMMITACCOUNT ToolsAccount=$TOOLSACCOUNT \ --template-file pre-reqs_bucket.yaml --region $TOOLSACCOUNTREGION --capabilities CAPABILITY_NAMED_IAM
AWS DevOps

Configura una chiave KMS multiregionale.

  1. Crea una chiave KMS multiregionale con chiavi primarie e di replica che utilizzerai. CodePipeline Nel nostro esempio, ToolsAccount1region - ap-south-1 sarà la regione principale.

    aws cloudformation deploy --stack-name ecs-codepipeline-pre-reqs-KMS \ --template-file pre-reqs_KMS.yaml --parameter-overrides \ TestAccount1=$TESTACCOUNT1 TestAccount2=$TESTACCOUNT2 \ TestAccount3=$TESTACCOUNT3 CodeCommitAccount=$CODECOMMITACCOUNT ToolsAccount=$TOOLSACCOUNT --region $TOOLSACCOUNTREGION
  2. Imposta le variabili CMKARN da passare ai CodeBuild progetti. I valori sono disponibili nell'output dello stack di modelli ecs-codepipeline-pre-reqs -KMS (l'ID della chiave sarà lo stesso in tutte le regioni e inizia con). mrk- In alternativa, puoi ottenere i valori CMKARN dall'account degli strumenti. Esportali in tutte le sessioni dell'account: 

    export CMKARN1=arn:aws:kms:ap-south-1:<TOOLSACCOUNTID>:key/mrk-xxx export CMKARN2=arn:aws:kms:eu-central-1:<TOOLSACCOUNTID>:key/mrk-xxx export CMKARN3=arn:aws:kms:us-east-1:<TOOLSACCOUNTID>:key/mrk-xxx export CMARNTOOLS=arn:aws:kms:ap-south-1:<TOOLSACCOUNTID>:key/mrk-xxx
AWS DevOps

Configura il CodeBuild progetto nell'account degli strumenti.

  1. Utilizza il codebuild_IAM.yaml modello dalla code cartella del GitHub repository per configurare AWS Identity and Access Management (IAM) per AWS CodeBuild in una singola regione nell'account degli strumenti:

    #In ToolsAccount aws cloudformation deploy --stack-name ecs-codebuild-iam \ --template-file codebuild_IAM.yaml --region $TOOLSACCOUNTREGION \ --capabilities CAPABILITY_NAMED_IAM
  2. Usa il codebuild.yaml modello CodeBuild per configurare il tuo progetto di build. Distribuisci questo modello in tutte e tre le regioni come segue:

    aws cloudformation deploy --stack-name ecscodebuildstack --parameter-overrides ToolsAccount=$TOOLSACCOUNT \ CodeCommitRepoName=$CODECOMMITREPONAME ECRRepositoryName=$ECRREPOSITORYNAME APPACCOUNTID=$TESTACCOUNT1 \ TestAccount3=$TESTACCOUNT3 CodeCommitRegion=$CODECOMMITREGION CMKARN=$CMKARN1 \ --template-file codebuild.yaml --region $TESTACCOUNT1REGION --capabilities CAPABILITY_NAMED_IAM aws cloudformation deploy --stack-name ecscodebuildstack --parameter-overrides ToolsAccount=$TOOLSACCOUNT \ CodeCommitRepoName=$CODECOMMITREPONAME ECRRepositoryName=$ECRREPOSITORYNAME APPACCOUNTID=$TESTACCOUNT2 \ TestAccount3=$TESTACCOUNT3 CodeCommitRegion=$CODECOMMITREGION CMKARN=$CMKARN2 \ --template-file codebuild.yaml --region $TESTACCOUNT2REGION --capabilities CAPABILITY_NAMED_IAM aws cloudformation deploy --stack-name ecscodebuildstack --parameter-overrides ToolsAccount=$TOOLSACCOUNT \ CodeCommitRepoName=$CODECOMMITREPONAME ECRRepositoryName=$ECRREPOSITORYNAME APPACCOUNTID=$TESTACCOUNT3 \ CodeCommitRegion=$CODECOMMITREGION CMKARN=$CMKARN3 \ --template-file codebuild.yaml --region $TESTACCOUNT3REGION --capabilities CAPABILITY_NAMED_IAM
AWS DevOps

Configurazione CodeDeploy negli account di carico di lavoro.

Utilizza il codedeploy.yaml modello nella code cartella del GitHub repository per eseguire la configurazione CodeDeploy in tutti e tre gli account di carico di lavoro. L'output di mainInfraStack include Amazon Resource Names (ARNs) del cluster Amazon ECS e il listener Application Load Balancer.

Nota

I valori degli stack di infrastruttura vengono già esportati, quindi vengono importati dai modelli di stack. CodeDeploy

##WorkloadAccount1## aws cloudformation deploy --stack-name ecscodedeploystack \ --parameter-overrides ToolsAccount=$TOOLSACCOUNT mainInfrastackname=mainInfrastack \ --template-file codedeploy.yaml --region $TESTACCOUNT1REGION --capabilities CAPABILITY_NAMED_IAM ##WorkloadAccount2## aws cloudformation deploy --stack-name ecscodedeploystack \ --parameter-overrides ToolsAccount=$TOOLSACCOUNT mainInfrastackname=mainInfrastack \ --template-file codedeploy.yaml --region $TESTACCOUNT2REGION --capabilities CAPABILITY_NAMED_IAM ##WorkloadAccount3## aws cloudformation deploy --stack-name ecscodedeploystack \ --parameter-overrides ToolsAccount=$TOOLSACCOUNT mainInfrastackname=mainInfrastack \ --template-file codedeploy.yaml --region $TESTACCOUNT3REGION --capabilities CAPABILITY_NAMED_IAM
AWS DevOps
AttivitàDescrizioneCompetenze richieste

Crea una pipeline di codice nell'account degli strumenti.

Nell'account degli strumenti, esegui il comando:

aws cloudformation deploy --stack-name ecscodepipelinestack --parameter-overrides \ TestAccount1=$TESTACCOUNT1 TestAccount1Region=$TESTACCOUNT1REGION \ TestAccount2=$TESTACCOUNT2 TestAccount2Region=$TESTACCOUNT2REGION \ TestAccount3=$TESTACCOUNT3 TestAccount3Region=$TESTACCOUNT3REGION \ CMKARNTools=$CMKTROOLSARN CMKARN1=$CMKARN1 CMKARN2=$CMKARN2 CMKARN3=$CMKARN3 \ CodeCommitRepoName=$CODECOMMITREPONAME BucketStartName=$BUCKETSTARTNAME \ --template-file codepipeline.yaml --capabilities CAPABILITY_NAMED_IAM
AWS DevOps

Fornisci accesso CodePipeline e CodeBuild ruoli nella policy chiave di AWS KMS e nella policy del bucket S3.

  1. Fornisci accesso CodePipeline e CodeBuild ruoli nella policy chiave di AWS KMS:

    aws cloudformation deploy --stack-name ecs-codepipeline-pre-reqs-KMS \ --template-file pre-reqs_KMS.yaml --parameter-overrides \ CodeBuildCondition=true TestAccount1=$TESTACCOUNT1 TestAccount2=$TESTACCOUNT2 \ TestAccount3=$TESTACCOUNT3 CodeCommitAccount=$CODECOMMITACCOUNT ToolsAccount=$TOOLSACCOUNT --region $TOOLSACCOUNTREGION
  2. Aggiorna la policy sui bucket S3 per consentire l'accesso a e ruoli: CodePipeline CodeDeploy

    aws cloudformation deploy --stack-name pre-reqs-artifacts-bucket --parameter-overrides BucketStartName=$BUCKETSTARTNAME \ PutS3BucketPolicy=true TestAccount1=$TESTACCOUNT1 TestAccount2=$TESTACCOUNT2 \ TestAccount3=$TESTACCOUNT3 CodeCommitAccount=$CODECOMMITACCOUNT ToolsAccount=$TOOLSACCOUNT \ --template-file pre-reqs_bucket.yaml --region $TESTACCOUNT1REGION --capabilities CAPABILITY_NAMED_IAM aws cloudformation deploy --stack-name pre-reqs-artifacts-bucket --parameter-overrides BucketStartName=$BUCKETSTARTNAME \ PutS3BucketPolicy=true TestAccount1=$TESTACCOUNT1 TestAccount2=$TESTACCOUNT2 \ TestAccount3=$TESTACCOUNT3 CodeCommitAccount=$CODECOMMITACCOUNT ToolsAccount=$TOOLSACCOUNT \ --template-file pre-reqs_bucket.yaml --region $TESTACCOUNT2REGION --capabilities CAPABILITY_NAMED_IAM aws cloudformation deploy --stack-name pre-reqs-artifacts-bucket --parameter-overrides BucketStartName=$BUCKETSTARTNAME \ PutS3BucketPolicy=true TestAccount1=$TESTACCOUNT1 TestAccount2=$TESTACCOUNT2 \ TestAccount3=$TESTACCOUNT3 CodeCommitAccount=$CODECOMMITACCOUNT ToolsAccount=$TOOLSACCOUNT \ --template-file pre-reqs_bucket.yaml --region $TESTACCOUNT3REGION --capabilities CAPABILITY_NAMED_IAM aws cloudformation deploy --stack-name pre-reqs-artifacts-bucket --parameter-overrides BucketStartName=$BUCKETSTARTNAME \ PutS3BucketPolicy=true TestAccount1=$TESTACCOUNT1 TestAccount2=$TESTACCOUNT2 \ TestAccount3=$TESTACCOUNT3 CodeCommitAccount=$CODECOMMITACCOUNT ToolsAccount=$TOOLSACCOUNT \ --template-file pre-reqs_bucket.yaml --region $TOOLSACCOUNTREGION --capabilities CAPABILITY_NAMED_IAM
AWS DevOps

Configura CodePipeline nell'account degli strumenti

AttivitàDescrizioneCompetenze richieste

Crea una pipeline di codice nell'account degli strumenti.

Nell'account degli strumenti, esegui il comando:

aws cloudformation deploy --stack-name ecscodepipelinestack --parameter-overrides \ TestAccount1=$TESTACCOUNT1 TestAccount1Region=$TESTACCOUNT1REGION \ TestAccount2=$TESTACCOUNT2 TestAccount2Region=$TESTACCOUNT2REGION \ TestAccount3=$TESTACCOUNT3 TestAccount3Region=$TESTACCOUNT3REGION \ CMKARNTools=$CMKTROOLSARN CMKARN1=$CMKARN1 CMKARN2=$CMKARN2 CMKARN3=$CMKARN3 \ CodeCommitRepoName=$CODECOMMITREPONAME BucketStartName=$BUCKETSTARTNAME \ --template-file codepipeline.yaml --capabilities CAPABILITY_NAMED_IAM
AWS DevOps

Fornisci accesso CodePipeline e CodeBuild ruoli nella policy chiave di AWS KMS e nella policy del bucket S3.

  1. Fornisci accesso CodePipeline e CodeBuild ruoli nella policy chiave di AWS KMS:

    aws cloudformation deploy --stack-name ecs-codepipeline-pre-reqs-KMS \ --template-file pre-reqs_KMS.yaml --parameter-overrides \ CodeBuildCondition=true TestAccount1=$TESTACCOUNT1 TestAccount2=$TESTACCOUNT2 \ TestAccount3=$TESTACCOUNT3 CodeCommitAccount=$CODECOMMITACCOUNT ToolsAccount=$TOOLSACCOUNT --region $TOOLSACCOUNTREGION
  2. Aggiorna la policy sui bucket S3 per consentire l'accesso a e ruoli: CodePipeline CodeDeploy

    aws cloudformation deploy --stack-name pre-reqs-artifacts-bucket --parameter-overrides BucketStartName=$BUCKETSTARTNAME \ PutS3BucketPolicy=true TestAccount1=$TESTACCOUNT1 TestAccount2=$TESTACCOUNT2 \ TestAccount3=$TESTACCOUNT3 CodeCommitAccount=$CODECOMMITACCOUNT ToolsAccount=$TOOLSACCOUNT \ --template-file pre-reqs_bucket.yaml --region $TESTACCOUNT1REGION --capabilities CAPABILITY_NAMED_IAM aws cloudformation deploy --stack-name pre-reqs-artifacts-bucket --parameter-overrides BucketStartName=$BUCKETSTARTNAME \ PutS3BucketPolicy=true TestAccount1=$TESTACCOUNT1 TestAccount2=$TESTACCOUNT2 \ TestAccount3=$TESTACCOUNT3 CodeCommitAccount=$CODECOMMITACCOUNT ToolsAccount=$TOOLSACCOUNT \ --template-file pre-reqs_bucket.yaml --region $TESTACCOUNT2REGION --capabilities CAPABILITY_NAMED_IAM aws cloudformation deploy --stack-name pre-reqs-artifacts-bucket --parameter-overrides BucketStartName=$BUCKETSTARTNAME \ PutS3BucketPolicy=true TestAccount1=$TESTACCOUNT1 TestAccount2=$TESTACCOUNT2 \ TestAccount3=$TESTACCOUNT3 CodeCommitAccount=$CODECOMMITACCOUNT ToolsAccount=$TOOLSACCOUNT \ --template-file pre-reqs_bucket.yaml --region $TESTACCOUNT3REGION --capabilities CAPABILITY_NAMED_IAM aws cloudformation deploy --stack-name pre-reqs-artifacts-bucket --parameter-overrides BucketStartName=$BUCKETSTARTNAME \ PutS3BucketPolicy=true TestAccount1=$TESTACCOUNT1 TestAccount2=$TESTACCOUNT2 \ TestAccount3=$TESTACCOUNT3 CodeCommitAccount=$CODECOMMITACCOUNT ToolsAccount=$TOOLSACCOUNT \ --template-file pre-reqs_bucket.yaml --region $TOOLSACCOUNTREGION --capabilities CAPABILITY_NAMED_IAM
AWS DevOps
AttivitàDescrizioneCompetenze richieste

Invia le modifiche al CodeCommit repository.

  1. Clona il CodeCommit repository che è stato creato nel codecommitrepoStack by utilizzando il git clone comando, come descritto nella documentazione di CodeCommit AWS.

  2. Aggiorna gli artefatti di input con i dettagli richiesti:

    • File JSON: aggiorna il file AccountID in tre punti di questo file. Rinomina i tre file per includere l'account. IDs

    • File YAML: aggiorna l'ARN e la versione della definizione dell'attività. Rinomina i tre file per includere l'account. IDs

  3. Modifica il index.html file per apportare alcune modifiche minori alla home page.

  4. Copia i seguenti file nel repository ed esegui il commit:

    index.html Dockerfile buildspec.yaml appspec_<accountid>.yaml (3 files - one per account ) taskdef<accountid>.json (3 files - one per account)
  5. Avvia o riavvia la pipeline e verifica i risultati.

  6. Accedi al servizio dall'Application Load Balancer utilizzando un FQDN o DNS e verifica che gli aggiornamenti siano stati distribuiti.

Chiama e testa la pipeline

AttivitàDescrizioneCompetenze richieste

Invia le modifiche al CodeCommit repository.

  1. Clona il CodeCommit repository che è stato creato nel codecommitrepoStack by utilizzando il git clone comando, come descritto nella documentazione di CodeCommit AWS.

  2. Aggiorna gli artefatti di input con i dettagli richiesti:

    • File JSON: aggiorna il file AccountID in tre punti di questo file. Rinomina i tre file per includere l'account. IDs

    • File YAML: aggiorna l'ARN e la versione della definizione dell'attività. Rinomina i tre file per includere l'account. IDs

  3. Modifica il index.html file per apportare alcune modifiche minori alla home page.

  4. Copia i seguenti file nel repository ed esegui il commit:

    index.html Dockerfile buildspec.yaml appspec_<accountid>.yaml (3 files - one per account ) taskdef<accountid>.json (3 files - one per account)
  5. Avvia o riavvia la pipeline e verifica i risultati.

  6. Accedi al servizio dall'Application Load Balancer utilizzando un FQDN o DNS e verifica che gli aggiornamenti siano stati distribuiti.

AttivitàDescrizioneCompetenze richieste

Pulisci tutte le risorse distribuite.

  1. Ridimensiona Amazon ECS a zero istanze:

    aws ecs update-service --cluster QA-Cluster --service Poc-Service --desired-count 0
  2. Elimina gli CloudFormation stack in ogni account e regione:

    ##In Tools Account## aws cloudformation delete-stack --stack-name ecscodepipelinestack --region $TOOLSACCOUNTREGION aws cloudformation delete-stack --stack-name ecscodebuildstack --region $TESTACCOUNT1REGION aws cloudformation delete-stack --stack-name ecscodebuildstack --region $TESTACCOUNT2REGION aws cloudformation delete-stack --stack-name ecscodebuildstack --region $TESTACCOUNT3REGION aws cloudformation delete-stack --stack-name ecs-codepipeline-pre-reqs-KMS --region $TOOLSACCOUNTREGION aws cloudformation delete-stack --stack-name codecommitrepoStack --region $TOOLSACCOUNTREGION aws cloudformation delete-stack --stack-name pre-reqs-artifacts-bucket --region $TESTACCOUNT1REGION aws cloudformation delete-stack --stack-name pre-reqs-artifacts-bucket --region $TESTACCOUNT2REGION aws cloudformation delete-stack --stack-name pre-reqs-artifacts-bucket --region $TESTACCOUNT3REGION aws cloudformation delete-stack --stack-name pre-reqs-artifacts-bucket --region $TOOLSACCOUNTREGION aws cloudformation delete-stack --stack-name ecs-codebuild-iam --region $TOOLSACCOUNTREGION ##NOTE: Artifact buckets will not get deleted if there are artifacts so it has to be emptied manually before deleting.##
    ##In Workload / Test Accounts## ##Account:1## aws cloudformation delete-stack --stack-name ecscodedeploystack --region $TESTACCOUNT1REGION aws cloudformation delete-stack --stack-name mainInfrastack --region $TESTACCOUNT1REGION ##Account:2## aws cloudformation delete-stack --stack-name ecscodedeploystack --region $TESTACCOUNT2REGION aws cloudformation delete-stack --stack-name mainInfrastack --region $TESTACCOUNT2REGION ##Account:3## aws cloudformation delete-stack --stack-name ecscodedeploystack --region $TESTACCOUNT3REGION aws cloudformation delete-stack --stack-name mainInfrastack --region $TESTACCOUNT3REGION ##NOTE: Amazon ECR (web) will not get deleted if the registry still includes images. It can be manually cleaned up if not required.

Eliminazione

AttivitàDescrizioneCompetenze richieste

Pulisci tutte le risorse distribuite.

  1. Ridimensiona Amazon ECS a zero istanze:

    aws ecs update-service --cluster QA-Cluster --service Poc-Service --desired-count 0
  2. Elimina gli CloudFormation stack in ogni account e regione:

    ##In Tools Account## aws cloudformation delete-stack --stack-name ecscodepipelinestack --region $TOOLSACCOUNTREGION aws cloudformation delete-stack --stack-name ecscodebuildstack --region $TESTACCOUNT1REGION aws cloudformation delete-stack --stack-name ecscodebuildstack --region $TESTACCOUNT2REGION aws cloudformation delete-stack --stack-name ecscodebuildstack --region $TESTACCOUNT3REGION aws cloudformation delete-stack --stack-name ecs-codepipeline-pre-reqs-KMS --region $TOOLSACCOUNTREGION aws cloudformation delete-stack --stack-name codecommitrepoStack --region $TOOLSACCOUNTREGION aws cloudformation delete-stack --stack-name pre-reqs-artifacts-bucket --region $TESTACCOUNT1REGION aws cloudformation delete-stack --stack-name pre-reqs-artifacts-bucket --region $TESTACCOUNT2REGION aws cloudformation delete-stack --stack-name pre-reqs-artifacts-bucket --region $TESTACCOUNT3REGION aws cloudformation delete-stack --stack-name pre-reqs-artifacts-bucket --region $TOOLSACCOUNTREGION aws cloudformation delete-stack --stack-name ecs-codebuild-iam --region $TOOLSACCOUNTREGION ##NOTE: Artifact buckets will not get deleted if there are artifacts so it has to be emptied manually before deleting.##
    ##In Workload / Test Accounts## ##Account:1## aws cloudformation delete-stack --stack-name ecscodedeploystack --region $TESTACCOUNT1REGION aws cloudformation delete-stack --stack-name mainInfrastack --region $TESTACCOUNT1REGION ##Account:2## aws cloudformation delete-stack --stack-name ecscodedeploystack --region $TESTACCOUNT2REGION aws cloudformation delete-stack --stack-name mainInfrastack --region $TESTACCOUNT2REGION ##Account:3## aws cloudformation delete-stack --stack-name ecscodedeploystack --region $TESTACCOUNT3REGION aws cloudformation delete-stack --stack-name mainInfrastack --region $TESTACCOUNT3REGION ##NOTE: Amazon ECR (web) will not get deleted if the registry still includes images. It can be manually cleaned up if not required.

Risoluzione dei problemi

ProblemaSoluzione

Le modifiche che hai eseguito nel repository non vengono distribuite.

  • Controlla la presenza di errori nei CodeBuild log nell'azione di compilazione di Docker. Per ulteriori informazioni, consulta la documentazione relativa ad CodeBuild .

  • Controlla la CodeDeploy distribuzione per eventuali problemi di distribuzione di Amazon ECS.

Risorse correlate

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.