Validasi status layanan Amazon ECS sebelum penerapan - Amazon Elastic Container Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Validasi status layanan Amazon ECS sebelum penerapan

Tipe penyebaran biru/hijau menggunakan model penyebaran biru/hijau yang dikendalikan oleh. CodeDeploy Gunakan jenis penyebaran ini untuk memverifikasi penyebaran baru layanan sebelum mengirim lalu lintas produksi ke sana. Untuk informasi selengkapnya, lihat Apa yang ada CodeDeploy di Panduan AWS CodeDeploy Pengguna. Memvalidasi status layanan Amazon ECS sebelum penerapan

Ada tiga cara lalu lintas dapat bergeser selama penyebaran biru/hijau:

  • Canary — Lalu lintas digeser dalam dua peningkatan. 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 dalam peningkatan yang sama dengan jumlah menit yang sama 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.

  • A ll-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 penyebaran biru/hijau:

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:

  • Cluster dan layanan Amazon ECS

  • Grup target penyeimbang beban dan informasi listener

  • Strategi roll back deployment

  • Pengaturan perutean ulang lalu lintas

  • Pengaturan pengakhiran revisi asli

  • Konfigurasi deployment

  • CloudWatch konfigurasi alarm yang dapat diatur untuk menghentikan penerapan

  • Pengaturan SNS atau CloudWatch Acara untuk notifikasi

Untuk informasi selengkapnya, lihat Bekerja dengan Grup Penerapan di Panduan AWS CodeDeploy Pengguna.

CodeDeploy konfigurasi penerapan

Menentukan bagaimana CodeDeploy rute lalu lintas produksi ke tugas pengganti Anda ditetapkan 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 AWS CodeDeploy Panduan Pengguna.

  • CodeDeployDefault. ECSAllAtOnce: Menggeser semua lalu lintas ke wadah Amazon ECS yang diperbarui sekaligus

  • CodeDeployDefault. ECSLinear10 PercentEvery 1Menit: Menggeser 10 persen lalu lintas setiap menit sampai semua lalu lintas bergeser.

  • CodeDeployDefault. ECSLinear10 PercentEvery 3Menit: Menggeser 10 persen lalu lintas setiap 3 menit sampai semua lalu lintas bergeser.

  • CodeDeployDefault. ECSCanary10Percent5Minutes: Menggeser 10 persen lalu lintas pada kenaikan pertama. Sisanya 90 persen dikerahkan 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 tersebut, Anda menentukan ARN lengkap dari definisi tugas dan wadah serta port 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 yang akan dijalankan selama peristiwa siklus hidup penerapan. Fungsi Lambda memungkinkan Anda menjalankan pengujian dan mengembalikan metrik selama penerapan. Untuk informasi selengkapnya, lihat Referensi AppSpec File di Panduan AWS CodeDeploy Pengguna.

Pertimbangan

Pertimbangkan hal berikut saat menggunakan tipe deployment biru/hijau:

  • Saat layanan Amazon ECS yang menggunakan jenis penyebaran biru/hijau awalnya dibuat, kumpulan 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 listener pengujian, CodeDeploy rute 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.

    • Ketika Network Load Balancer digunakan, hanya konfigurasi CodeDeployDefault.ECSAllAtOnce penerapan yang didukung.

  • Untuk layanan yang dikonfigurasi untuk menggunakan penskalaan otomatis layanan dan tipe deployment biru/hijau, penskalaan otomatis tidak akan diblokir selama deployment, akan tetapi deployment mungkin akan mengalami kegagalan di beberapa keadaan. Hal-hal berikut menjelaskan perilaku tersebut secara lebih detail.

    • Jika layanan sedang diskalakan dan penerapan dimulai, set tugas hijau dibuat dan CodeDeploy akan menunggu hingga satu jam untuk tugas hijau yang disetel mencapai kondisi tunak dan tidak akan mengalihkan lalu lintas apa pun hingga selesai.

    • Jika layanan sedang dalam proses deployment biru/hijau dan kejadian penskalaan terjadi, maka lalu lintas akan terus beralih selama 5 menit. Jika layanan tidak mencapai kondisi tunak dalam 5 menit, CodeDeploy akan menghentikan penerapan dan menandainya sebagai gagal.

    • Jika layanan sedang dalam proses penerapan biru/hijau dan peristiwa penskalaan terjadi, jumlah tugas yang diinginkan mungkin disetel ke nilai yang tidak terduga. Hal ini disebabkan oleh penskalaan otomatis yang mempertimbangkan jumlah tugas yang berjalan sebagai kapasitas saat ini, yang merupakan dua kali jumlah tugas yang sesuai yang digunakan dalam perhitungan hitungan tugas yang diinginkan.

  • Tugas yang menggunakan tipe peluncuran Fargate atau tipe pengontrol CODE_DEPLOY penerapan tidak mendukung strategi penjadwalan. DAEMON

  • Saat Anda awalnya membuat grup CodeDeploy aplikasi dan penyebaran, Anda harus menentukan yang berikut:

    • Anda harus menentukan dua grup target untuk penyeimbang beban. Satu grup target harus menjadi grup 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, CodeDeploy buat set tugas pengganti (atau set tugas hijau) dalam penerapan. Jika Anda menambahkan pendengar pengujian ke penyeimbang beban, CodeDeploy rutekan 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 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/greenpenyebaran di AWS Management Console atau dengan atau. AWS CLI SDKs

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.

{ "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": ["*"] } ] }
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 Amazon ECS APIs, memodifikasi Elastic Load Balancing, menjalankan fungsi Lambda, dan CloudWatch menjelaskan alarm, serta izin untuk mengubah jumlah layanan yang diinginkan atas nama Anda. Sebelum membuat layanan Amazon ECS yang menggunakan jenis penyebaran biru/hijau, Anda harus membuat peran IAM (). ecsCodeDeployRole Untuk informasi selengkapnya, lihat Peran Amazon ECS CodeDeploy IAM.

Contoh kebijakan Perbarui contoh layanan Amazon ECS IAM Buat contoh layanan Amazon ECS dan IAM menunjukkan izin yang diperlukan bagi pengguna untuk menggunakan penerapan biru/hijau Amazon ECS di file. AWS Management Console