Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Kelola blue/green penerapan layanan mikro ke beberapa akun dan Wilayah dengan menggunakan layanan kode AWS dan kunci Multi-wilayah AWS KMS
Balaji Vedagiri, Vanitha Dontireddy, Ashish Kumar, Faisal Shahdad, Vivek Thangamuthu, dan Anand Krishna Varanasi, Amazon Web Services
Ringkasan
Pemberitahuan: AWS CodeCommit tidak lagi tersedia untuk pelanggan baru. Pelanggan yang sudah ada AWS CodeCommit dapat terus menggunakan layanan seperti biasa. Pelajari selengkapnya
Pola ini menjelaskan cara menerapkan aplikasi layanan mikro global dari akun AWS pusat ke beberapa akun beban kerja dan Wilayah sesuai dengan strategi penerapan. blue/green Pola ini mendukung hal-hal berikut:
Perangkat lunak dikembangkan di akun pusat, sedangkan beban kerja dan aplikasi tersebar di beberapa akun dan Wilayah AWS.
Kunci multi-wilayah AWS Key Management System (AWS KMS) tunggal digunakan untuk enkripsi dan dekripsi guna menutupi pemulihan bencana.
Kunci KMS adalah khusus Wilayah dan harus dipelihara atau dibuat di tiga Wilayah berbeda untuk artefak pipa. Kunci Multi-wilayah KMS membantu mempertahankan ID kunci yang sama di seluruh Wilayah.
Model percabangan alur kerja Git diimplementasikan dengan dua cabang (pengembangan dan utama) dan kode digabungkan dengan menggunakan pull requests (). PRs Fungsi AWS Lambda yang diterapkan dari tumpukan ini membuat PR dari cabang pengembangan ke cabang utama. Penggabungan PR ke cabang utama memulai CodePipeline pipeline AWS, yang mengatur aliran integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) dan menyebarkan tumpukan di seluruh akun.
Pola ini menyediakan contoh infrastruktur sebagai penyiapan kode (IAc) melalui CloudFormation tumpukan AWS untuk mendemonstrasikan kasus penggunaan ini. blue/green Penyebaran layanan mikro diimplementasikan dengan menggunakan AWS. CodeDeploy
Prasyarat dan batasan
Prasyarat
Empat akun AWS aktif:
Pola ini menggunakan Wilayah berikut. Jika Anda ingin menggunakan Wilayah lain, Anda harus melakukan modifikasi yang sesuai pada tumpukan Multi-wilayah AWS CodeDeploy dan AWS KMS.
Akun Tools (AWS CodeCommit): ap-south-1
Akun beban kerja (tes) 1: ap-south-1
Akun beban kerja (tes) 2: eu-central-1
Akun beban kerja (tes) 3: us-east-1
Tiga bucket Amazon Simple Storage Service (Amazon S3) untuk Wilayah penerapan di setiap akun beban kerja. (Ini disebutS3BUCKETNAMETESTACCOUNT1
, S3BUCKETNAMETESTACCOUNT2
dan S3BUCKETNAMETESTACCOUNT3
kemudian dalam pola ini.)
Misalnya, Anda dapat membuat bucket ini di akun dan Wilayah tertentu dengan nama bucket unik sebagai berikut (ganti xxxx dengan nomor acak):
##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
Batasan
Pola ini menggunakan AWS CodeBuild dan file konfigurasi lainnya untuk menerapkan layanan mikro sampel. Jika Anda memiliki jenis beban kerja yang berbeda (misalnya, tanpa server), Anda harus memperbarui semua konfigurasi yang relevan.
Arsitektur
Tumpukan teknologi target
AWS CloudFormation
AWS CodeCommit
AWS CodeBuild
AWS CodeDeploy
AWS CodePipeline
Arsitektur target
Otomatisasi dan skala
Penyiapan otomatis dengan menggunakan AWS CloudFormation stack templates (IAc). Ini dapat dengan mudah diskalakan untuk beberapa lingkungan dan akun.
Layanan AWS
AWS CloudFormation membantu Anda menyiapkan sumber daya AWS, menyediakannya dengan cepat dan konsisten, serta mengelolanya sepanjang siklus hidupnya di seluruh akun dan Wilayah AWS.
AWS CodeBuild adalah layanan build terkelola penuh yang membantu Anda mengompilasi kode sumber, menjalankan pengujian unit, dan menghasilkan artefak yang siap digunakan.
AWS CodeCommit adalah layanan kontrol versi yang membantu Anda menyimpan dan mengelola repositori Git secara pribadi, tanpa perlu mengelola sistem kontrol sumber Anda sendiri.
AWS CodeDeploy mengotomatiskan penerapan ke Amazon Elastic Compute Cloud (Amazon EC2) atau instans lokal, fungsi AWS Lambda, atau layanan Amazon Elastic Container Service (Amazon ECS).
AWS CodePipeline membantu Anda memodelkan dan mengonfigurasi berbagai tahapan rilis perangkat lunak dengan cepat dan mengotomatiskan langkah-langkah yang diperlukan untuk merilis perubahan perangkat lunak secara terus menerus.
Amazon Elastic Container Registry (Amazon ECR) adalah layanan registri gambar kontainer terkelola yang aman, terukur, dan andal.
Amazon Elastic Container Service (Amazon ECS) adalah layanan manajemen kontainer yang cepat dan dapat diskalakan yang membantu Anda menjalankan, menghentikan, dan mengelola kontainer di klaster.
AWS Key Management Service (AWS KMS) membantu Anda membuat dan mengontrol kunci kriptografi untuk membantu melindungi data Anda.
Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
Alat tambahan
Git adalah sistem kontrol versi terdistribusi open-source yang bekerja dengan CodeCommit repositori AWS.
Docker adalah seperangkat produk platform as a service (PaaS) yang menggunakan virtualisasi pada tingkat sistem operasi untuk mengirimkan perangkat lunak dalam wadah. Pola ini menggunakan Docker untuk membangun dan menguji gambar kontainer secara lokal.
cfn-lint dan cfn-nag adalah alat sumber terbuka yang membantu Anda meninjau CloudFormation tumpukan untuk setiap kesalahan dan masalah keamanan.
Repositori kode
Kode untuk pola ini tersedia di Blue/Green penerapan GitHub Global di beberapa wilayah dan repositori akun.
Epik
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|
Ekspor variabel lingkungan untuk penyebaran CloudFormation tumpukan. | Tentukan variabel lingkungan yang akan digunakan sebagai masukan ke CloudFormation tumpukan nanti dalam pola ini. Perbarui nama bucket yang Anda buat di tiga akun dan Wilayah seperti yang dijelaskan sebelumnya di bagian Prasyarat: export S3BUCKETNAMETESTACCOUNT1=<S3BUCKETACCOUNT1>
export S3BUCKETNAMETESTACCOUNT2=<S3BUCKETACCOUNT2>
export S3BUCKETNAMETESTACCOUNT3=<S3BUCKETACCOUNT3>
Tentukan string acak untuk membuat bucket artefak, karena nama bucket harus unik secara global: export BUCKETSTARTNAME=ecs-codepipeline-artifacts-19992
Tentukan dan ekspor akun IDs dan Wilayah: 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 |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|
Kloning repositori. | Kloning repositori sampel ke repositori baru di lokasi kerja Anda: ##In work location
git clone https://github.com/aws-samples/ecs-blue-green-global-deployment-with-multiregion-cmk-codepipeline.git
| AWS DevOps |
Package resource Cloudformation. | Pada langkah ini, Anda mengemas artefak lokal yang referensi CloudFormation template untuk membuat sumber daya infrastruktur yang diperlukan untuk layanan seperti Amazon Virtual Private Cloud (Amazon VPC) dan Application Load Balancer. Template tersedia di Infra folder repositori kode. ##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 |
Validasi template paket. | Validasi template paket: 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 |
Menyebarkan file paket ke akun beban kerja, | Perbarui nilai placeholder dan nama akun di nfraParameters.json skrip i berdasarkan pengaturan Anda. Terapkan templat paket ke dalam tiga akun beban kerja Anda. ##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 |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|
Dorong gambar sampel ke repositori Amazon ECR. | Dorong gambar sampel (NGINX) ke repositori web Amazon Elastic Container Registry (Amazon ECR) bernama (seperti yang ditetapkan dalam parameter). Anda dapat menyesuaikan gambar sesuai kebutuhan. Untuk masuk dan menyetel kredensional untuk mendorong gambar ke Amazon ECR, ikuti petunjuk dalam dokumentasi Amazon ECR. Perintahnya adalah: 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 |
Skala Amazon ECS dan verifikasi akses. | Skala Amazon ECS untuk membuat dua replika: aws ecs update-service --cluster QA-Cluster --service Poc-Service --desired-count 2
di mana Poc-Service mengacu pada aplikasi sampel Anda. Verifikasi bahwa layanan dapat diakses dari Application Load Balancer dengan menggunakan nama domain yang sepenuhnya memenuhi syarat (FQDN) atau DNS dari browser atau dengan menggunakan perintah curl.
| AWS DevOps |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|
Buat CodeCommit repositori di akun alat. | Buat CodeCommit repositori di akun alat dengan menggunakan codecommit.yaml template, yang ada di code folder repositori. GitHub Anda harus membuat repositori ini hanya di Wilayah tunggal di mana Anda berencana untuk mengembangkan kode. aws cloudformation deploy --stack-name codecommitrepoStack --parameter-overrides CodeCommitReponame=$CODECOMMITREPONAME \
ToolsAccount=$TOOLSACCOUNT --template-file codecommit.yaml --region $TOOLSACCOUNTREGION \
--capabilities CAPABILITY_NAMED_IAM
| AWS DevOps |
Buat bucket S3 untuk mengelola artefak yang dihasilkan oleh. CodePipeline | Buat bucket S3 untuk mengelola artefak yang dihasilkan CodePipeline dengan menggunakan pre-reqs-bucket.yaml template, yang ada di code folder repositori. GitHub Tumpukan harus digunakan di ketiga beban kerja (pengujian) dan akun alat dan Wilayah. 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 |
Siapkan kunci KMS Multi-wilayah. | Buat kunci KMS Multi-wilayah dengan kunci primer dan replika yang akan digunakan. CodePipeline Dalam contoh kita, ToolsAccount1region - ap-south-1 akan menjadi Wilayah utama. 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
Atur variabel CMKARN untuk diteruskan ke CodeBuild proyek. Nilai tersedia dalam output tumpukan template ecs-codepipeline-pre-reqs -KMS (ID kunci akan sama di semua Wilayah dan dimulai denganmrk- ). Atau, Anda bisa mendapatkan nilai CMKARN dari akun alat. Ekspor mereka di semua sesi akun: 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 |
Siapkan CodeBuild proyek di akun alat. | Gunakan codebuild_IAM.yaml template dari code folder GitHub repositori untuk menyiapkan AWS Identity and Access Management (IAM) untuk AWS CodeBuild di satu Wilayah di akun alat: #In ToolsAccount
aws cloudformation deploy --stack-name ecs-codebuild-iam \
--template-file codebuild_IAM.yaml --region $TOOLSACCOUNTREGION \
--capabilities CAPABILITY_NAMED_IAM
Gunakan codebuild.yaml template CodeBuild untuk menyiapkan proyek build Anda. Menyebarkan template ini di ketiga Wilayah sebagai berikut: 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 |
Siapkan CodeDeploy di akun beban kerja. | Gunakan codedeploy.yaml template di code folder GitHub repositori untuk mengatur CodeDeploy di ketiga akun beban kerja. Outputnya mainInfraStack mencakup Amazon Resource Names (ARNs) dari cluster Amazon ECS dan pendengar Application Load Balancer. Nilai dari tumpukan infrastruktur sudah diekspor, sehingga diimpor oleh template CodeDeploy tumpukan. ##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 |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|
Buat pipeline kode di akun alat. | Di akun alat, jalankan perintah: 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 |
Menyediakan akses CodePipeline dan CodeBuild peran dalam kebijakan kunci AWS KMS dan kebijakan bucket S3. | Menyediakan akses CodePipeline dan CodeBuild peran dalam kebijakan kunci 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
Perbarui kebijakan bucket S3 untuk mengizinkan akses CodePipeline dan CodeDeploy peran: 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 |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|
Dorong perubahan ke CodeCommit repositori. | Kloning CodeCommit repositori yang dibuat di codecommitrepoStack dengan menggunakan git clone perintah, seperti yang dijelaskan dalam dokumentasi AWS. CodeCommit Perbarui artefak input dengan detail yang diperlukan: File JSON: Perbarui AccountID file di tiga tempat file ini. Ganti nama ketiga file untuk menyertakan akun IDs. File YAMB: Perbarui definisi tugas ARN dan versi. Ganti nama ketiga file untuk menyertakan akun IDs.
Ubah index.html file untuk membuat beberapa perubahan kecil pada halaman beranda. Salin file berikut ke repositori dan komit: index.html
Dockerfile
buildspec.yaml
appspec_<accountid>.yaml (3 files - one per account )
taskdef<accountid>.json (3 files - one per account)
Mulai atau mulai ulang pipa dan verifikasi hasilnya. Akses layanan dari Application Load Balancer menggunakan menggunakan FQDN atau DNS, dan verifikasi bahwa pembaruan telah digunakan.
| |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|
Bersihkan semua sumber daya yang digunakan. | Turunkan Amazon ECS ke nol instans: aws ecs update-service --cluster QA-Cluster --service Poc-Service --desired-count 0
Hapus CloudFormation tumpukan di setiap akun dan Wilayah: ##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.
| |
Pemecahan Masalah
Isu | Solusi |
---|
Perubahan yang Anda komit ke repositori tidak diterapkan. | |
Sumber daya terkait