Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membuat penerapan Amazon ECS blue/green
Dengan menggunakan penerapan Amazon EC blue/green S, Anda dapat membuat dan menguji perubahan layanan sebelum menerapkannya di lingkungan produksi.
Prasyarat
Lakukan operasi berikut sebelum memulai pener blue/green apan.
-
Konfigurasikan izin yang sesuai.
-
Untuk informasi tentang izin Elastic Load Balancing, lihatPeran IAM infrastruktur Amazon ECS untuk penyeimbang beban.
-
Untuk informasi tentang izin Lambda, lihat Izin diperlukan untuk fungsi Lambda di penerapan Amazon ECS blue/green
-
-
(Opsional) Untuk pengalihan lalu lintas terkelola, konfigurasikan salah satu sumber daya berikut. Jika layanan Anda tanpa kepala (tanpa penyeimbang beban atau Service Connect), Anda dapat melewati langkah ini. Amazon ECS tidak mengelola pergeseran lalu lintas secara otomatis untuk layanan tanpa kepala.
-
Application Load Balancer - Untuk informasi selengkapnya, lihatSumber daya Penyeimbang Beban Aplikasi untuk pener blue/green apan, linier, dan canary.
-
Network Load Balancer - Untuk informasi selengkapnya, lihatSumber daya Network Load Balancer untuk Amazon ECS blue/green, penyebaran linear, dan canary.
-
Service Connect - Untuk informasi selengkapnya, lihatSumber daya Service Connect untuk penyebaran Amazon ECS blue/green, linear, dan canary.
-
-
Putuskan apakah Anda ingin menjalankan fungsi Lambda untuk tahapan siklus hidup.
-
PRE_SCALE_UP
-
POST_SCALE_UP
-
PERGESERAN PERGESERAN LALU LINTAS
-
POS_TEST_TRAFIC_SHIFT
-
PERGESERAN LALU LINTAS PRODUKSI
-
PERGESERAN LALU LINTAS PASCA PRODUKSI
Untuk informasi selengkapnya, lihat Membuat fungsi Lambda dengan konsol di Panduan Peng AWS Lambda embang.
-
Prosedur
Anda dapat menggunakan konsol atau AWS CLI untuk membuat blue/green layanan Amazon ECS.
- Console
-
Buka konsol di https://console.aws.amazon.com/ecs/v2
. -
Tentukan sumber daya dari mana 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 Detail layanan, lakukan hal berikut:
-
Untuk keluarga definisi tugas, pilih definisi tugas yang akan digunakan. Kemudian, untuk Rev isi definisi tugas, masukkan revisi yang akan digunakan.
-
Untuk Nama layanan, masukkan nama untuk layanan Anda.
-
-
Untuk menjalankan layanan di cluster yang ada, untuk Cluster yang ada, pilih cluster. Untuk menjalankan layanan di cluster baru, pilih Buat cluster
-
Pilih bagaimana tugas Anda didistribusikan di seluruh infrastruktur cluster Anda. Di bawah konfigurasi komputasi, pilih opsi Anda.
Opsi komputasi Langkah-langkah Strategi penyedia kapasitas
-
Di bawah Opsi komputasi, pilih Strateg i penyedia kapasitas.
-
Pilih strategi:
-
Untuk menggunakan strategi penyedia kapasitas default cluster, pilih Gunakan default cluster.
-
Jika cluster Anda tidak memiliki strategi penyedia kapasitas default, atau untuk menggunakan strategi khusus, pilih Gunakan kustom, Tambahkan strategi penyedia kapasitas, lalu tentukan strategi penyedia kapasitas kustom Anda dengan menentukan Basis, Penyedia Kapasitas, dan Berat.
-
catatan
Untuk menggunakan penyedia kapasitas dalam strategi, penyedia kapasitas harus dikaitkan dengan cluster.
Jenis peluncuran -
Di bagian Opsi komputasi, pilih Jenis peluncuran.
-
Untuk Jenis peluncuran, pilih jenis peluncuran.
-
(Opsional) Ketika Fargate ditentukan, untuk versi Platform, tentukan versi platform yang akan digunakan. Jika versi platform tidak ditentukan, versi
LATESTplatform digunakan.
-
-
Di bawah konfigurasi Deployment, lakukan hal berikut:
-
Untuk Jenis Layanan, pilih Replika.
-
Untuk Tugas yang diinginkan, masukkan jumlah tugas yang akan diluncurkan dan dipelihara dalam layanan.
-
Agar Amazon ECS memantau distribusi tugas di seluruh Zona Ketersediaan, dan mendistribusikannya kembali ketika ada ketidakseimbangan, di bawah Penyeimbangan kembali layanan Zona Keter sediaan, pilih penyeimbangan kembali layanan Zona Ketersediaan.
-
Untuk masa tenggang pemeriksaan kesehatan, masukkan jumlah waktu (dalam detik) penjadwal layanan mengabaikan pemeriksaan kesehatan Elastic Load Balancing, VPC Lattice, dan kontainer yang tidak sehat setelah tugas dimulai pertama kali. Jika Anda tidak menentukan nilai periode tunggu pemeriksaan kondisi, nilai default 0 akan digunakan.
-
-
-
Untuk Bake time, masukkan jumlah menit revisi layanan biru dan hijau akan berjalan secara bersamaan sebelum revisi biru dihentikan. Ini memungkinkan waktu untuk verifikasi dan pengujian.
-
(Opsional) Konfigurasikan kait siklus hidup untuk dijalankan pada tahapan penerapan tertentu. Di bawah kait siklus hidup pener apan, pilih Tambah.
Untuk kait Lambda:
Untuk Jenis Target, pilih Lambda.
Untuk fungsi Lambda, masukkan nama fungsi atau ARN.
Untuk Per an, pilih peran IAM yang memiliki izin untuk memanggil fungsi Lambda.
Untuk ta hapan Siklus Hidup, pilih tahapan saat fungsi Lambda harus dijalankan.
Untuk kait jeda:
Untuk Jenis Target, pilih Jed a.
Untuk ta hapan Siklus Hidup, pilih tahapan di mana penerapan harus dijeda.
(Opsional) Untuk B atas Waktu, konfigurasikan durasi dan tindakan batas waktu.
-
-
Untuk mengonfigurasi cara Amazon ECS mendeteksi dan menangani kegagalan penerapan, perluas Deteksi kegagalan pener apan, lalu pilih opsi Anda.
-
Untuk menghentikan penerapan saat tugas tidak dapat dimulai, pilih Gunakan pemutus sirkuit penerapan Amazon ECS.
Agar perangkat lunak secara otomatis mengembalikan penerapan ke status penerapan terakhir selesai ketika pemutus sirkuit penerapan mengatur penerapan ke status gagal, pilih Kem balikan pada kegagalan.
-
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 mengembalikan penerapan ke status penerapan terakhir selesai ketika CloudWatch alarm menyetel penerapan ke status gagal, pilih Kem balikan pada kegagalan.
-
-
(Opsional) Untuk menghubungkan layanan Anda menggunakan Service Connect, perluas Service Connect, lalu tentukan hal berikut:
-
Pilih Aktifkan Koneksi Layanan.
-
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 yang sama Wilayah AWS di Anda Akun AWS atau namespace di Wilayah yang sama yang dibagikan dengan akun Anda menggunakan AWS Resource Access Manager ()AWS RAM. Untuk informasi selengkapnya tentang AWS Cloud Map ruang nama bersama, lihat berbagi Cross-account AWS Cloud Map namespace di Panduan Peng AWS Cloud Map embang.
-
(Opsional) Konfigurasikan aturan header lalu lintas uji untuk blue/green penerapan. Di bawah Uji perutean lalu lintas, tentukan hal berikut:
-
Pilih Aktifkan aturan header lalu lintas uji untuk merutekan permintaan tertentu ke revisi layanan hijau selama pengujian.
-
Untuk aturan pencocokan header, konfigurasikan kriteria untuk routing test traffic:
-
Nama header: Masukkan nama header HTTP untuk dicocokkan (misalnya,
X-Test-VersionatauUser-Agent). -
Jenis pertandingan: Pilih kriteria pencocokan:
-
Pencocokan persis: Permintaan rute di mana nilai header persis cocok 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 tertentu
-
-
Nilai header (jika menggunakan kecocokan tepat atau kecocokan pola): Masukkan nilai atau pola yang akan dicocokkan.
Anda dapat menambahkan beberapa aturan pencocokan header untuk membuat logika routing yang kompleks. Permintaan yang cocok dengan salah satu aturan yang dikonfigurasi akan dialihkan ke revisi layanan hijau untuk pengujian.
-
-
Pilih Tambahkan aturan header untuk mengonfigurasi kondisi pencocokan header tambahan.
catatan
Aturan header lalu lintas pengujian memungkinkan Anda memvalidasi fungsionalitas baru dengan lalu lintas terkontrol sebelum menyelesaikan penerapan penuh. Ini memungkinkan Anda untuk menguji revisi layanan hijau dengan permintaan tertentu (seperti dari alat pengujian internal atau pengguna beta) sambil mempertahankan aliran 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 diatur secara default, tetapi Anda harus menentukan nama bucket Amazon S3 yang valid.
-
-
-
(Opsional) Konfigurasikan penyeimbangan beban untuk blue/green penerapan.
Jenis Penyeimbangan Beban Elastis Langkah-langkah Penyeimbang Beban Aplikasi
-
Untuk jenis penyeimbang beban, pilih Appl ication Load Bal ancer.
-
Pilih Buat penyeimbang beban baru untuk membuat Penyeimbang Beban Aplikasi baru atau Gunakan penyeimbang beban yang ada untuk memilih Penyeimbang Beban Aplikasi yang ada.
-
Untuk Container, pilih wadah yang menampung layanan.
-
Untuk nama penyeimbang beban, 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 Produk si, masukkan urutan Evaluasi dan pola Jal ur untuk aturan.
Aturan ini untuk lalu lintas revisi layanan produksi Anda.
-
Untuk Aturan uji, masukkan urutan Evaluasi dan pola Jal ur untuk aturan.
Aturan ini untuk lalu lintas revisi layanan pengujian Anda.
-
-
Untuk kelompok Target, konfigurasikan yang berikut:
-
Untuk Nama grup Target, masukkan nama dan protokol untuk grup target yang diminta oleh Application Load Balancer.
-
Untuk Protokol, pilih protokol untuk grup target yang diminta oleh Application Load Balancer. Secara default, grup target merutekan permintaan ke wadah pertama yang ditentukan dalam definisi tugas Anda.
-
Untuk penundaan deregistrasi, masukkan jumlah detik penyeimbang beban untuk mengubah status target menjadi.
UNUSEDWaktu default adalah 300 detik. -
Untuk jalur pemeriksaan kesehatan, masukkan jalur yang ada di dalam wadah tempat Application Load Balancer secara berkala mengirimkan permintaan untuk memverifikasi kesehatan koneksi antara Application Load Balancer dan wadah. Defaultnya adalah direktori root (
/). -
Untuk Nama grup alternatif, masukkan nama grup untuk grup target untuk revisi layanan pengujian (hijau) Anda.
-
Penyeimbang Beban Jaringan -
Untuk jenis penyeimbang beban, pilih Network Load Bal ancer.
-
Untuk Load Balancer, pilih Network Load Balancer yang ada.
-
Untuk Pilih wadah untuk menyeimbangkan beban, pilih wadah yang menampung layanan.
-
Untuk pendengar produksi, pilih port pendengar produksi, dan protokol pendengar produksi.
Ini adalah pendengar untuk lalu lintas revisi layanan produksi Anda.
-
Untuk Test Listener, pilih port Test Listener, dan protokol Test Listener.
Ini adalah pendengar untuk lalu lintas revisi layanan pengujian Anda.
-
Untuk kelompok Target, konfigurasikan yang berikut:
-
Untuk Nama grup Target, masukkan nama dan protokol untuk grup target yang diminta oleh Network Load Balancer.
-
Untuk Protokol, pilih protokol untuk grup target yang diminta oleh Network Load Balancer. Secara default, grup target merutekan permintaan ke wadah pertama yang ditentukan dalam definisi tugas Anda.
-
Untuk penundaan deregistrasi, masukkan jumlah detik penyeimbang beban untuk mengubah status target menjadi.
UNUSEDWaktu default adalah 300 detik. -
Untuk jalur pemeriksaan kesehatan, masukkan jalur yang ada di dalam wadah tempat Application Load Balancer secara berkala mengirimkan permintaan untuk memverifikasi kesehatan koneksi antara Application Load Balancer dan wadah. Defaultnya adalah direktori root (
/). -
Untuk Nama grup alternatif, masukkan nama grup untuk grup target untuk revisi layanan pengujian (hijau) 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 Menye barkan 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 Menye barkan tag dari, pilih Layanan.
Menambah atau menghapus tanda.
-
[Tambahkan tag] Pilih Tam bah 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
service-definition.jsondengan konten berikut ini.Ganti
user-inputdengan nilai-nilai Anda.{ "serviceName": "myBlueGreenService", "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": "BLUE_GREEN", "maximumPercent": 200, "minimumHealthyPercent": 100, "bakeTimeInMinutes": 2, "alarms": { "alarmNames": [ "myAlarm" ], "rollback": true, "enable": true }, "lifecycleHooks": [ { "hookTargetArn": "arn:aws:lambda:us-west-2:7123456789012:function:checkExample", "roleArn": "arn:aws:iam::123456789012:role/ECSLifecycleHookInvoke", "lifecycleStages": [ "PRE_SCALE_UP" ], "hookDetails": { "MY_CONFIG_KEY": "my-config-value" } } ] }, "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-blue-green-demo/32e0e4f946c3c05b/9cfa8c482e204f7d/831dbaf72edb911", "roleArn": "arn:aws:iam::123456789012:role/LoadBalancerManagementforECS" } } ] } -
Jalankan
create-service.Ganti
user-inputdengan nilai-nilai Anda.aws ecs create-service --cli-input-json file://service-definition.jsonAtau, Anda dapat menggunakan contoh berikut yang membuat layanan blue/green penerapan dengan konfigurasi penyeimbang beban:
aws ecs create-service \ --cluster "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster" \ --service-name "blue-green-example-service" \ --task-definition "nginxServer:1" \ --launch-type "FARGATE" \ --network-configuration "awsvpcConfiguration={subnets=[subnet-12345,subnet-67890,subnet-abcdef,subnet-fedcba],securityGroups=[sg-12345],assignPublicIp=ENABLED}" \ --desired-count 3 \ --deployment-controller "type=ECS" \ --deployment-configuration "strategy=BLUE_GREEN,maximumPercent=200,minimumHealthyPercent=100,bakeTimeInMinutes=0" \ --load-balancers "targetGroupArn=arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/MyBGtg1/abcdef1234567890,containerName=nginx,containerPort=80,advancedConfiguration={alternateTargetGroupArn=arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/MyBGtg2/0987654321fedcba,productionListenerRule=arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/MyLB/1234567890abcdef/1234567890abcdef,roleArn=arn:aws:iam::123456789012:role/ELBManagementRole}"
-
Langkah selanjutnya
Perbarui layanan untuk memulai penerapan. Untuk informasi selengkapnya, lihat Memperbarui layanan Amazon ECS.
-
Pantau proses penerapan untuk memastikannya mengikuti blue/green pola:
-
Revisi layanan hijau dibuat dan ditingkatkan
-
Lalu lintas uji dialihkan ke revisi hijau (jika dikonfigurasi)
-
Lalu lintas produksi dialihkan ke revisi hijau
-
Setelah waktu memanggang, revisi biru dihentikan
-