Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membuat penyebaran kenari Amazon ECS
Dengan menggunakan penyebaran kenari Amazon ECS, Anda dapat mengalihkan sebagian kecil lalu lintas ke revisi layanan baru Anda (“kenari”). Validasi penyebaran, dan kemudian geser lalu lintas yang tersisa sekaligus setelah interval yang ditentukan. Pendekatan ini memungkinkan Anda untuk menguji fungsionalitas baru dengan risiko minimal sebelum penerapan penuh.
Prasyarat
Lakukan operasi berikut sebelum Anda memulai penyebaran kenari.
-
Konfigurasikan izin yang sesuai.
-
Untuk informasi tentang izin Elastic Load Balancing, lihat. Peran IAM infrastruktur Amazon ECS untuk penyeimbang beban
-
Untuk informasi tentang izin Lambda, lihat. Izin diperlukan untuk fungsi Lambda di penerapan Amazon ECS blue/green
-
-
Penerapan kenari Amazon ECS mengharuskan layanan Anda menggunakan salah satu fitur berikut: Konfigurasikan sumber daya yang sesuai.
-
Application Load Balancer - Untuk informasi lebih lanjut, lihat. Sumber daya Application Load Balancer untuk penerapan biru/hijau, linier, dan kenari
-
-
Buat aturan untuk mengarahkan lalu lintas ke revisi layanan baru Anda. Untuk informasi selengkapnya, lihat aturan Listener di Elastic Load Balancing Application Load Balancers.
-
Buat grup target untuk revisi layanan hijau Anda. Saat Anda menggunakan mode
awsvpcjaringan untuk tugas Anda, jenis target harusip. Untuk informasi tentang kelompok target, lihat Grup target di Elastic Load Balancing Application Load Balancing.
Prosedur
Anda dapat menggunakan konsol atau AWS CLI untuk membuat layanan penyebaran kenari Amazon ECS.
- Console
-
Buka konsol di https://console.aws.amazon.com/ecs/v2
. -
Tentukan sumber daya dari tempat Anda meluncurkan layanan.
Untuk memulai layanan dari Langkah-langkah klaster
-
Pada halaman Klaster, pilih klaster untuk membuat layanan.
Halaman detail cluster ditampilkan.
-
Pada tab Layanan, pilih Buat.
Definisi tugas -
Pada halaman Definisi tugas, pilih definisi tugas.
-
Dari menu Deploy, pilih Buat layanan.
Halaman Create service ditampilkan.
-
-
Di bawah rincian Layanan, lakukan hal berikut:
-
Untuk keluarga definisi Tugas, pilih definisi tugas yang akan digunakan. Kemudian, untuk revisi definisi Tugas, masukkan revisi yang akan digunakan.
-
Untuk nama Layanan, masukkan nama untuk layanan Anda.
-
-
Untuk menjalankan layanan di klaster yang ada, untuk klaster yang ada, pilih klaster. Untuk menjalankan layanan di klaster baru, pilih Buat klaster
-
Pilih bagaimana tugas Anda didistribusikan di seluruh infrastruktur klaster Anda. Di bawah Konfigurasi komputasi, pilih opsi Anda.
Opsi komputasi Langkah-langkah Strategi penyedia kapasitas
-
Di bawah Opsi komputasi, pilih Strategi penyedia kapasitas.
-
Pilih strategi:
-
Untuk menggunakan strategi penyedia kapasitas default cluster, pilih Use cluster default.
-
Jika klaster Anda tidak memiliki strategi penyedia kapasitas default, atau menggunakan strategi kustom, pilih Gunakan strategi penyedia kustom, Tambahkan kapasitas, lalu tentukan strategi penyedia kapasitas khusus Anda dengan menentukan Basis, penyedia Kapasitas, dan Berat.
-
catatan
Untuk menggunakan penyedia kapasitas dalam suatu strategi, penyedia kapasitas harus dikaitkan dengan cluster.
Jenis peluncuran -
Di bagian Compute options, pilih Launch type.
-
Untuk jenis Peluncuran, pilih jenis peluncuran.
-
(Opsional) Saat Fargate ditentukan, untuk versi Platform, tentukan versi platform yang akan digunakan. Jika versi platform tidak ditentukan, versi
LATESTplatform akan digunakan.
-
-
Di bawah konfigurasi Deployment, lakukan hal berikut:
-
Untuk jenis Layanan, pilih Replika.
-
Untuk tugas yang diinginkan, masukkan jumlah tugas untuk diluncurkan dan dipelihara dalam layanan.
-
Agar Amazon ECS memantau distribusi tugas di seluruh Availability Zone, dan mendistribusikannya kembali saat terjadi ketidakseimbangan, di bawah penyeimbangan kembali layanan Availability Zone, pilih penyeimbangan kembali layanan Availability Zone.
-
Untuk masa tenggang pemeriksaan Kesehatan, masukkan jumlah waktu (dalam detik) bahwa penjadwal layanan mengabaikan Elastic Load Balancing, VPC Lattice, dan pemeriksaan kesehatan kontainer yang tidak sehat setelah tugas pertama kali dimulai. Jika Anda tidak menentukan nilai periode tunggu pemeriksaan kondisi, nilai default 0 akan digunakan.
-
-
Di bawah konfigurasi Deployment, konfigurasikan pengaturan penerapan canary:
-
Untuk strategi Deployment, pilih Canary.
-
Untuk persentase Canary, masukkan persentase lalu lintas untuk beralih ke revisi layanan hijau pada tahap pertama (misalnya, 10% untuk lalu lintas kenari awal).
-
Untuk waktu memanggang Canary, masukkan waktu dalam hitungan menit untuk menunggu sebelum mengalihkan lalu lintas yang tersisa ke revisi layanan hijau.
-
Untuk waktu Bake, masukkan jumlah menit revisi layanan biru dan hijau akan berjalan secara bersamaan setelah pergeseran lalu lintas terakhir sebelum revisi biru dihentikan.
-
(Opsional) Jalankan fungsi Lambda untuk dijalankan pada tahap penerapan tertentu. Di bawah Deployment lifecycle hooks, pilih tahapan untuk menjalankan kait siklus hidup.
Untuk menambahkan kait siklus hidup:
-
Pilih Tambahkan.
-
Untuk fungsi Lambda, masukkan nama fungsi atau ARN.
-
Untuk Peran, pilih peran IAM yang memiliki izin untuk menjalankan fungsi Lambda.
-
Untuk tahapan Siklus Hidup, pilih tahapan saat fungsi Lambda harus dijalankan.
-
-
-
Untuk mengonfigurasi cara Amazon ECS mendeteksi dan menangani kegagalan penerapan, perluas deteksi kegagalan Deployment, lalu pilih opsi Anda.
-
Untuk menghentikan penerapan saat tugas tidak dapat dimulai, pilih Gunakan pemutus sirkuit penyebaran Amazon ECS.
Agar perangkat lunak secara otomatis memutar kembali penerapan ke status penerapan yang terakhir selesai saat pemutus sirkuit penyebaran mengatur penerapan ke status gagal, pilih Rollback on failure.
-
Untuk menghentikan penerapan berdasarkan metrik aplikasi, pilih Gunakan CloudWatch alarm. Kemudian, dari nama CloudWatch alarm, pilih alarm. Untuk membuat alarm baru, buka CloudWatch konsol.
Agar perangkat lunak secara otomatis memutar kembali penerapan ke status penerapan yang terakhir selesai saat CloudWatch alarm menyetel penerapan ke status gagal, pilih Rollback on failure.
-
-
(Opsional) Untuk menghubungkan layanan Anda menggunakan Service Connect, perluas Service Connect, lalu tentukan yang berikut ini:
-
Pilih Aktifkan Service Connect.
-
Di bawah konfigurasi Service Connect, tentukan mode klien.
-
Jika layanan Anda menjalankan aplikasi klien jaringan yang hanya perlu terhubung ke layanan lain di namespace, pilih sisi Klien saja.
-
Jika layanan Anda menjalankan aplikasi jaringan atau layanan web dan perlu menyediakan titik akhir untuk layanan ini, dan terhubung ke layanan lain di namespace, pilih Klien dan server.
-
-
Untuk menggunakan namespace yang bukan namespace cluster default, untuk Namespace, pilih namespace layanan. Ini bisa berupa namespace yang dibuat secara terpisah di ruang nama Anda Akun AWS atau Wilayah AWS di Region yang sama yang dibagikan dengan akun Anda menggunakan (). AWS Resource Access Manager AWS RAMUntuk informasi selengkapnya tentang AWS Cloud Map ruang nama bersama, lihat Berbagi AWS Cloud Map namespace lintas akun di Panduan Pengembang.AWS Cloud Map
-
(Opsional) Konfigurasikan aturan header lalu lintas uji untuk penerapan kenari. Di bawah Uji perutean lalu lintas, tentukan yang berikut ini:
-
Pilih Aktifkan aturan header lalu lintas pengujian untuk merutekan permintaan tertentu ke revisi layanan hijau selama pengujian.
-
Untuk aturan pencocokan Header, konfigurasikan kriteria untuk lalu lintas pengujian perutean:
-
Nama header: Masukkan nama header HTTP yang cocok (misalnya,
X-Test-VersionatauUser-Agent). -
Jenis kecocokan: Pilih kriteria yang cocok:
-
Pencocokan tepat: Permintaan rute di mana nilai header sama persis dengan nilai yang ditentukan
-
Header hadir: Permintaan rute yang berisi header yang ditentukan, terlepas dari nilainya
-
Pencocokan pola: Permintaan rute di mana nilai header cocok dengan pola yang ditentukan
-
-
Nilai header (jika menggunakan kecocokan persis atau kecocokan pola): Masukkan nilai atau pola yang cocok.
Anda dapat menambahkan beberapa aturan pencocokan header untuk membuat logika perutean yang kompleks. Permintaan yang cocok dengan aturan yang dikonfigurasi akan diarahkan ke revisi layanan hijau untuk pengujian.
-
-
Pilih Tambahkan aturan header untuk mengonfigurasi kondisi pencocokan header tambahan.
catatan
Aturan header lalu lintas uji memungkinkan Anda memvalidasi fungsionalitas baru dengan lalu lintas terkontrol sebelum menyelesaikan penerapan penuh. Ini memungkinkan Anda untuk menguji revisi layanan hijau dengan permintaan khusus (seperti yang dari alat pengujian internal atau pengguna beta) sambil mempertahankan arus lalu lintas normal ke revisi layanan biru.
-
-
(Opsional) Tentukan konfigurasi log. Pilih Gunakan koleksi log. Opsi default mengirimkan log kontainer ke CloudWatch Log. Opsi driver log lainnya dikonfigurasi menggunakan AWS FireLens. Untuk informasi selengkapnya, lihat Kirim log Amazon ECS ke AWS layanan atau AWS Partner.
Berikut ini menjelaskan setiap tujuan log kontainer secara lebih rinci.
-
Amazon CloudWatch — Konfigurasikan tugas untuk mengirim log kontainer ke CloudWatch Log. Opsi driver log default disediakan, yang membuat grup CloudWatch log atas nama Anda. Untuk menentukan nama grup log yang berbeda, ubah nilai opsi driver.
-
Amazon Data Firehose — Konfigurasikan tugas untuk mengirim log kontainer ke Firehose. Opsi driver log default disediakan, yang mengirim log ke aliran pengiriman Firehose. Untuk menentukan nama aliran pengiriman yang berbeda, ubah nilai opsi driver.
-
Amazon Kinesis Data Streams — Konfigurasikan tugas untuk mengirim log kontainer ke Kinesis Data Streams. Opsi driver log default disediakan, yang mengirim log ke aliran Kinesis Data Streams. Untuk menentukan nama aliran yang berbeda, ubah nilai opsi driver.
-
Amazon OpenSearch Service - Konfigurasikan tugas untuk mengirim log kontainer ke domain OpenSearch Layanan. Opsi driver log harus disediakan.
-
Amazon S3 — Konfigurasikan tugas untuk mengirim log kontainer ke bucket Amazon S3. Opsi driver log default disediakan, tetapi Anda harus menentukan nama bucket Amazon S3 yang valid.
-
-
-
(Opsional) Konfigurasikan Load balancing untuk penerapan canary.
Jenis Elastic Load Balancing Langkah-langkah Penyeimbang Beban Aplikasi
-
Untuk tipe Load balancer, pilih Application Load Balancer.
-
Pilih Buat penyeimbang beban baru untuk membuat Application Load Balancer baru atau Gunakan penyeimbang beban yang ada untuk memilih Application Load Balancer yang ada.
-
Untuk Container, pilih wadah yang menghosting layanan.
-
Untuk nama Load balancer, masukkan nama unik.
-
Untuk Listener, masukkan port dan protokol untuk Application Load Balancer untuk mendengarkan permintaan koneksi. Secara default, penyeimbang beban akan dikonfigurasi untuk menggunakan port 80 dan HTTP.
-
Untuk aturan Produksi, masukkan urutan Evaluasi dan pola Path untuk aturan tersebut.
Aturan ini untuk lalu lintas revisi layanan produksi (biru) Anda.
-
Untuk aturan Uji, masukkan urutan Evaluasi dan pola Path untuk aturan tersebut.
Aturan ini untuk lalu lintas revisi layanan pengujian (hijau) Anda.
-
-
Untuk grup Target, konfigurasikan berikut ini:
-
Untuk nama grup Target, masukkan nama dan protokol untuk grup target yang diminta oleh Application Load Balancer.
-
Untuk Protocol, pilih protokol untuk grup target yang diminta oleh Application Load Balancer. Secara default, grup target merutekan permintaan ke kontainer pertama yang ditentukan dalam definisi tugas Anda.
-
Untuk penundaan deregistrasi, masukkan jumlah detik untuk penyeimbang beban untuk mengubah status target menjadi.
UNUSEDWaktu default adalah 300 detik. -
Untuk jalur pemeriksaan Kesehatan, masukkan jalur yang ada di dalam wadah Anda di mana Application Load Balancer secara berkala mengirimkan permintaan untuk memverifikasi kesehatan koneksi antara Application Load Balancer dan container. Defaultnya adalah root directory (
/). -
Untuk nama grup Alternatif, masukkan nama grup untuk grup target untuk revisi layanan pengujian Anda.
-
-
-
(Opsional) Untuk membantu mengidentifikasi layanan dan tugas Anda, perluas bagian Tag, lalu konfigurasikan tag Anda.
Agar Amazon ECS secara otomatis menandai semua tugas yang baru diluncurkan dengan nama cluster dan tag definisi tugas, pilih Aktifkan tag terkelola Amazon ECS, lalu untuk menyebarkan tag dari, pilih Definisi tugas.
Agar Amazon ECS secara otomatis menandai semua tugas yang baru diluncurkan dengan nama cluster dan tag layanan, pilih Aktifkan tag terkelola Amazon ECS, lalu untuk menyebarkan tag dari, pilih Layanan.
Menambah atau menghapus tanda.
-
[Tambahkan tag] Pilih Tambah tag, lalu lakukan hal berikut:
-
Untuk Kunci, masukkan nama kunci.
-
Untuk Nilai, masukkan nilai kunci.
-
-
[Menghapus tanda] Di samping tanda, pilih Hapus tanda.
-
-
Pilih Buat.
- AWS CLI
-
-
Buat file dengan nama
canary-service-definition.jsondengan konten berikut ini.Ganti
user-inputdengan nilai-nilai Anda.{ "serviceName": "myCanaryService", "cluster": "arn:aws:ecs:us-west-2:123456789012:cluster/sample-fargate-cluster", "taskDefinition": "sample-fargate:1", "desiredCount": 5, "launchType": "FARGATE", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-09ce6e74c116a2299", "subnet-00bb3bd7a73526788", "subnet-0048a611aaec65477" ], "securityGroups": [ "sg-09d45005497daa123" ], "assignPublicIp": "ENABLED" } }, "deploymentController": { "type": "ECS" }, "deploymentConfiguration": { "strategy": "CANARY", "maximumPercent": 200, "minimumHealthyPercent": 100, "canaryConfiguration" : { "canaryPercent" : 5.0, "canaryBakeTime" : 10 }, "bakeTimeInMinutes": 10, "alarms": { "alarmNames": [ "myAlarm" ], "rollback": true, "enable": true } }, "loadBalancers": [ { "targetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/blue-target-group/54402ff563af1197", "containerName": "fargate-app", "containerPort": 80, "advancedConfiguration": { "alternateTargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/green-target-group/cad10a56f5843199", "productionListenerRule": "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-canary-demo/32e0e4f946c3c05b/9cfa8c482e204f7d/831dbaf72edb911", "roleArn": "arn:aws:iam::123456789012:role/LoadBalancerManagementforECS" } } ] } -
Jalankan
create-service.aws ecs create-service --cli-input-json file://canary-service-definition.json
-
Langkah selanjutnya
Setelah mengonfigurasi penerapan kenari Anda, selesaikan langkah-langkah ini:
-
Perbarui layanan untuk memulai penyebaran. Untuk informasi selengkapnya, lihat Memperbarui layanan Amazon ECS.
-
Pantau proses penyebaran untuk memastikannya mengikuti pola kenari:
-
Revisi layanan hijau dibuat dan ditingkatkan
-
Sebagian kecil lalu lintas (kenari) digeser ke revisi hijau
-
Sistem menunggu interval kenari yang ditentukan
-
Lalu lintas yang tersisa digeser sekaligus ke revisi hijau
-
Setelah waktu memanggang, revisi biru dihentikan
-