Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
CodeDeploy blue/green penerapan untuk Amazon ECS
Kami menyarankan Anda menggunakan blue/green penyebaran Amazon ECS. Untuk informasi selengkapnya, lihat Membuat penerapan Amazon ECS blue/green.
Jenis blue/green penerapan menggunakan model blue/green penerapan yang dikendalikan oleh CodeDeploy. Gunakan jenis penerapan ini untuk memverifikasi penerapan layanan baru sebelum mengirim lalu lintas produksi ke layanan tersebut. Untuk informasi selengkapnya, lihat Apa yang CodeDeploy ada di Panduan AWS CodeDeploy Pengguna. Memvalidasi status layanan Amazon ECS sebelum penerapan
Ada tiga cara lalu lintas dapat bergeser selama blue/green penerapan:
-
Canary — Lalu lintas digeser dalam dua kali lipat. Anda dapat memilih dari opsi Canary yang telah ditentukan sebelumnya yang menentukan persentase lalu lintas yang dialihkan ke set tugas yang diperbarui pada kenaikan pertama dan interval, dalam menit, sebelum lalu lintas yang tersisa dialihkan pada kenaikan kedua.
-
Linear — Lalu lintas digeser dengan kenaikan yang sama dengan jumlah menit yang sama di antara setiap kenaikan. Anda dapat memilih dari opsi linier yang telah ditentukan sebelumnya yang menentukan persentase lalu lintas yang dialihkan pada setiap kenaikan dan jumlah menit di antara setiap kenaikan.
-
All-at-once— Semua lalu lintas digeser dari set tugas asli ke set tugas yang diperbarui sekaligus.
Berikut ini adalah komponen CodeDeploy yang digunakan Amazon ECS saat layanan menggunakan jenis blue/green penerapan:
- CodeDeploy aplikasi
-
Kumpulan sumber CodeDeploy daya. Ini terdiri dari satu atau beberapa grup deployment.
- CodeDeploy kelompok penyebaran
-
Pengaturan deployment. Pengaturan tersebut terdiri dari hal-hal berikut:
-
Klaster dan layanan Amazon ECS
-
Grup target penyeimbang beban dan informasi pendengar
-
Strategi roll back deployment
-
Pengaturan perutean ulang lalu lintas
-
Pengaturan pengakhiran revisi asli
-
Konfigurasi deployment
-
CloudWatch konfigurasi alarm yang dapat diatur untuk menghentikan penerapan
-
Setelan SNS atau CloudWatch Acara untuk notifikasi
Untuk informasi selengkapnya, lihat Bek erja dengan Grup Penyebaran di Panduan AWS CodeDeploy Pengguna.
-
- CodeDeploy konfigurasi penerapan
-
Menentukan cara CodeDeploy merutekan lalu lintas produksi ke set tugas pengganti Anda selama penerapan. Konfigurasi deployment canary dan linier yang telah ditentukan berikut ini tersedia. Anda juga dapat membuat deployment canary dan linier yang ditentukan secara khusus. Untuk informasi selengkapnya, lihat Bekerja dengan Konfigurasi Penerapan di Panduan AWS CodeDeploy Pengguna.
-
CodeDeployDefault.ECSAllAtOnce: Menggeser semua lalu lintas ke wadah Amazon ECS yang diperbarui sekaligus
-
CodeDeployDefault.ECSLinear10PercentEvery1MinutesMenggeser 10 persen lalu lintas setiap menit sampai semua lalu lintas bergeser.
-
CodeDeployDefault.ECSLinear10PercentEvery3MinutesMenggeser 10 persen lalu lintas setiap 3 menit sampai semua lalu lintas bergeser.
-
CodeDeployDefault.ECSCanary10Percent5Minutes: Menggeser 10 persen lalu lintas pada kenaikan pertama. 90 persen sisanya di-deploy lima menit kemudian.
-
CodeDeployDefault.ECSCanary10Percent15Minutes: Menggeser 10 persen lalu lintas pada kenaikan pertama. Sisa 90 persen di-deploy 15 menit kemudian.
-
- Revisi
-
Revisi adalah file spesifikasi CodeDeploy aplikasi (AppSpec file). Dalam AppSpec file, Anda menentukan ARN lengkap dari definisi tugas dan wadah dan port dari set tugas pengganti Anda di mana lalu lintas akan dirutekan saat penerapan baru dibuat. Nama kontainer harus merupakan salah satu dari nama kontainer yang direferensikan dalam penentuan tugas Anda. Jika konfigurasi jaringan atau versi platform telah diperbarui dalam definisi layanan, Anda juga harus menentukan detail tersebut dalam AppSpec file. Anda juga dapat menentukan fungsi Lambda untuk dijalankan selama peristiwa siklus hidup penerapan. Fungsi Lambda memungkinkan Anda menjalankan pengujian dan mengembalikan metrik selama penerapan. Untuk informasi selengkapnya, lihat Refer ensi AppSpec File di Panduan AWS CodeDeploy Pengguna.
Pertimbangan-pertimbangan
Pertimbangkan hal berikut saat menggunakan jenis blue/green penerapan:
-
Ketika layanan Amazon ECS menggunakan jenis blue/green penerapan awalnya dibuat, set tugas Amazon ECS dibuat.
-
Anda harus mengonfigurasi layanan untuk menggunakan Application Load Balancer atau Network Load Balancer. Berikut ini adalah persyaratan penyeimbang beban:
-
Anda harus menambahkan listener produksi ke penyeimbang beban, yang digunakan untuk merutekan lalu lintas produksi.
-
Listener uji opsional dapat ditambahkan ke penyeimbang beban, yang digunakan untuk merutekan lalu lintas uji. Jika Anda menentukan pendengar pengujian, mer CodeDeploy utekan lalu lintas pengujian Anda ke set tugas pengganti selama penerapan.
-
Baik listener produksi maupun listener uji, harus memiliki penyeimbang beban yang sama.
-
Anda harus menentukan grup target untuk penyeimbang beban. Grup target merutekan lalu lintas ke set tugas asli yang di layanan melalui listener produksi.
-
Saat Network Load Balancer digunakan, hanya konfigurasi
CodeDeployDefault.ECSAllAtOncepenerapan yang didukung.
-
-
Untuk layanan yang dikonfigurasi untuk menggunakan penskalaan otomatis layanan dan jenis blue/green penerapan, penskalaan otomatis tidak diblokir selama penerapan tetapi penerapan mungkin gagal dalam beberapa keadaan. Hal-hal berikut menjelaskan perilaku tersebut secara lebih detail.
-
Jika layanan sedang menskalakan dan penerapan dimulai, set tugas hijau dibuat dan CodeDeploy akan menunggu hingga satu jam agar set tugas hijau mencapai kondisi mapan dan tidak akan menggeser lalu lintas apa pun sampai hal itu terjadi.
-
Jika layanan sedang dalam proses penerapan dan peristiwa penskalaan terjadi, lalu lintas akan terus bergeser selama 5 menit. blue/green Jika layanan tidak mencapai kondisi mapan dalam waktu 5 menit, CodeDeploy akan menghentikan penerapan dan menandainya sebagai gagal.
-
-
Tugas yang menggunakan Fargate atau jenis pengontrol
CODE_DEPLOYpenerapan tidak mendukung strategi penDAEMONjadwalan. -
Saat pertama kali membuat grup CodeDeploy aplikasi dan penerapan, Anda harus menentukan yang berikut:
-
Anda harus menentukan dua grup target untuk penyeimbang beban. Satu kelompok target harus menjadi kelompok target awal yang ditentukan untuk penyeimbang beban saat layanan Amazon ECS dibuat. Satu-satunya persyaratan grup target kedua adalah tidak dapat dikaitkan dengan penyeimbang beban yang berbeda dari yang digunakan oleh layanan.
-
-
Saat Anda membuat CodeDeploy penerapan untuk layanan Amazon ECS, buat CodeDeploy set tugas pengganti (atau set tugas hijau) dalam penerapan. Jika Anda menambahkan pendengar pengujian ke penyeimbang beban, CodeDeploy rute lalu lintas pengujian Anda ke set tugas pengganti. Ini adalah saat Anda dapat menjalankan uji validasi apa pun. Kemudian CodeDeploy merutekan ulang lalu lintas produksi dari set tugas asli ke set tugas pengganti sesuai dengan pengaturan perutean ulang lalu lintas untuk grup deployment.
Izin IAM yang diperlukan
Blue/green penerapan dimungkinkan oleh kombinasi Amazon ECS dan API. CodeDeploy Pengguna harus memiliki izin yang sesuai untuk layanan ini sebelum mereka dapat menggunakan penerapan Amazon blue/green ECS di Konsol Manajemen AWS atau dengan SDK atau. AWS CLI
Selain izin IAM standar untuk membuat dan memperbarui layanan, Amazon ECS memerlukan izin berikut. Izin ini telah ditambahkan ke kebijakan AmazonECS_FullAccess IAM. Untuk informasi selengkapnya, lihat AmazonECS_ FullAccess.
codedeploy:CreateApplicationcodedeploy:CreateDeploymentcodedeploy:CreateDeploymentGroupcodedeploy:GetApplicationcodedeploy:GetDeploymentcodedeploy:GetDeploymentGroupcodedeploy:ListApplicationscodedeploy:ListDeploymentGroupscodedeploy:ListDeploymentscodedeploy:StopDeploymentcodedeploy:GetDeploymentTargetcodedeploy:ListDeploymentTargetscodedeploy:GetDeploymentConfigcodedeploy:GetApplicationRevisioncodedeploy:RegisterApplicationRevisioncodedeploy:BatchGetApplicationRevisionscodedeploy:BatchGetDeploymentGroupscodedeploy:BatchGetDeploymentscodedeploy:BatchGetApplicationscodedeploy:ListApplicationRevisionscodedeploy:ListDeploymentConfigscodedeploy:ContinueDeploymentsns:ListTopicscloudwatch:DescribeAlarmslambda:ListFunctions
catatan
Selain izin Amazon ECS standar yang diperlukan untuk menjalankan tugas dan layanan, pengguna juga memerlukan iam:PassRole izin untuk menggunakan peran IAM untuk tugas.
CodeDeploy memerlukan izin untuk memanggil API Amazon ECS, memodifikasi Elastic Load Balancing Anda, memanggil fungsi Lambda, dan menjelaskan CloudWatch alarm, serta izin untuk mengubah jumlah layanan yang diinginkan atas nama Anda. Sebelum membuat layanan Amazon ECS yang menggunakan jenis blue/green penerapan, Anda harus membuat peran IAM ()ecsCodeDeployRole. Untuk informasi selengkapnya, lihat Peran Amazon ECS CodeDeploy IAM.