Validasi status ECS layanan Amazon 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 ECS layanan Amazon sebelum penerapan

Tipe penyebaran biru/hijau menggunakan model penyebaran biru/hijau yang dikendalikan oleh. CodeDeploy Gunakan jenis penerapan ini untuk memverifikasi penyebaran layanan baru sebelum mengirim lalu lintas produksi ke layanan tersebut. Untuk informasi selengkapnya, lihat Apa yang ada CodeDeploy di Panduan AWS CodeDeploy Pengguna. Memvalidasi status ECS layanan Amazon 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 ECS digunakan Amazon 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:

  • ECSCluster dan layanan Amazon

  • 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

  • SNSatau Pengaturan CloudWatch acara untuk notifikasi

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

CodeDeploy konfigurasi penerapan

Menentukan cara CodeDeploy merutekan lalu lintas produksi ke tugas pengganti Anda yang 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 ECS wadah Amazon 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, Anda menentukan definisi tugas lengkap ARN dan wadah serta port tugas pengganti Anda yang ditetapkan 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 ECS layanan Amazon yang menggunakan jenis penyebaran biru/hijau awalnya dibuat, kumpulan ECS tugas Amazon 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 ECS layanan Amazon 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 ECS layanan Amazon, 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 mengalihkan lalu lintas produksi dari tugas asli yang disetel ke set tugas pengganti sesuai dengan pengaturan pengalihan rute lalu lintas untuk grup penerapan.

Diperlukan izin IAM

Penerapan biru/hijau dimungkinkan oleh kombinasi Amazon dan. ECS CodeDeploy APIs Pengguna harus memiliki izin yang sesuai untuk layanan ini sebelum mereka dapat menggunakan penerapan ECS biru/hijau Amazon di atau dengan atau. AWS Management Console AWS CLI SDKs

Selain IAM izin standar untuk membuat dan memperbarui layanan, Amazon ECS memerlukan izin berikut. Izin ini telah ditambahkan ke AmazonECS_FullAccess IAM kebijakan. Untuk informasi selengkapnya, lihat 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": ["*"] } ] }
catatan

Selain ECS izin Amazon standar yang diperlukan untuk menjalankan tugas dan layanan, pengguna juga memerlukan iam:PassRole izin untuk menggunakan IAM peran untuk tugas.

CodeDeploy memerlukan izin untuk memanggil Amazon ECSAPIs, memodifikasi Elastic Load Balancing, menjalankan fungsi Lambda, dan CloudWatch menjelaskan alarm, serta izin untuk mengubah jumlah layanan yang diinginkan atas nama Anda. Sebelum membuat ECS layanan Amazon yang menggunakan jenis penyebaran biru/hijau, Anda harus membuat IAM role (). ecsCodeDeployRole Untuk informasi selengkapnya, lihat ECS CodeDeploy IAMPeran Amazon.

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