Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Perbarui parameter layanan Amazon ECS
Setelah Anda membuat layanan, ada kalanya Anda mungkin perlu memperbarui parameter layanan, misalnya, jumlah tugas.
Ketika penjadwal layanan meluncurkan tugas baru, itu menentukan penempatan tugas di klaster Anda dengan logika berikut.
-
Tentukan instance kontainer mana di klaster Anda yang dapat mendukung definisi tugas layanan Anda. Misalnya, mereka memiliki atribut CPU, memori, port, dan instance container yang diperlukan.
-
Secara default, penjadwal layanan mencoba menyeimbangkan tugas di seluruh Availability Zone dengan cara ini meskipun Anda dapat memilih strategi penempatan yang berbeda.
-
Urutkan instance kontainer yang valid dengan jumlah tugas yang berjalan paling sedikit untuk layanan ini di Availability Zone yang sama dengan instance. Misalnya, jika zona A memiliki satu tugas layanan berjalan, sedangkan zona B dan C masing-masing tidak memliki tugas layanan berjalan, maka instans kontainer yang valid, baik di zona B ataupun C dianggap optimal untuk penempatan.
-
Tempatkan tugas layanan baru pada instans kontainer yang valid di Availability Zone yang optimal (berdasarkan langkah sebelumnya), dan pilih instans kontainer dengan jumlah tugas yang berjalan paling sedikit untuk layanan ini.
-
Ketika penjadwal layanan berhenti menjalankan tugas, ia mencoba untuk menjaga keseimbangan di seluruh Availability Zone di klaster Anda menggunakan logika berikut:
-
Urutkan instance kontainer berdasarkan jumlah tugas yang berjalan terbesar untuk layanan ini di Availability Zone yang sama dengan instance. Misalnya, jika zona A memiliki satu tugas layanan yang berjalan, dan zona B serta C masing-masing memiliki dua, instans kontainer di zona B atau C dianggap optimal untuk penghentian.
-
Hentikan tugas pada instans kontainer di Availability Zone yang optimal (berdasarkan langkah sebelumnya), kemudian pilih instans kontainer dengan jumlah tugas yang berjalan paling banyak untuk layanan ini.
Gunakan daftar untuk menentukan apakah Anda dapat mengubah parameter layanan.
- Penyeimbangan kembali Zona Ketersediaan
-
Menunjukkan apakah akan menggunakan penyeimbangan kembali Availability Zone untuk layanan.
Anda dapat mengubah parameter ini untuk penerapan bergulir.
- Strategi penyedia kapasitas
-
Detail strategi penyedia kapasitas. Anda dapat mengatur penyedia kapasitas saat membuat klaster, menjalankan tugas, atau memperbarui layanan.
Ketika Anda menggunakan Fargate, penyedia kapasitas adalah
FARGATE
atau.FARGATE_SPOT
Saat Anda menggunakan Amazon EC2, penyedia kapasitas adalah grup Auto Scaling.
Anda dapat mengubah penyedia kapasitas untuk penerapan bergulir dan penerapan biru/hijau.
Daftar berikut menyediakan transisi yang valid:
-
Perbarui jenis peluncuran Fargate ke penyedia kapasitas grup Auto Scaling.
-
Perbarui jenis EC2 peluncuran Amazon ke penyedia kapasitas Fargate.
-
Perbarui penyedia kapasitas Fargate ke penyedia kapasitas grup Auto Scaling.
-
Perbarui penyedia EC2 kapasitas Amazon ke penyedia kapasitas Fargate.
-
Perbarui grup Auto Scaling atau penyedia kapasitas Fargate kembali ke jenis peluncuran. Saat Anda menggunakan CLI, atau API, Anda meneruskan daftar kosong di parameter.
capacityProviderStrategy
-
- Kluster
-
Anda tidak dapat mengubah nama cluster.
- Konfigurasi penyebaran
-
Konfigurasi penyebaran mencakup CloudWatch alarm, dan pemutus sirkuit yang digunakan untuk mendeteksi kegagalan dan konfigurasi yang diperlukan.
Pemutus sirkuit deployment menentukan apakah deployment layanan akan gagal jika layanan tidak dapat mencapai status stabil. Jika Anda menggunakan pemutus sirkuit penyebaran, penyebaran layanan akan bertransisi ke status gagal dan berhenti meluncurkan tugas baru. Jika Anda menggunakan opsi rollback, ketika penerapan layanan gagal, layanan digulirkan kembali ke penerapan terakhir yang berhasil diselesaikan.
Saat Anda memperbarui layanan yang menggunakan pemutus sirkuit Amazon ECS, Amazon ECS membuat penyebaran layanan dan revisi layanan. Sumber daya ini memungkinkan Anda untuk melihat informasi terperinci tentang riwayat layanan. Untuk informasi selengkapnya, lihat Melihat riwayat layanan menggunakan penerapan layanan Amazon ECS.
Penjadwal layanan menggunakan parameter persentase minimum dan maksimum yang sehat (dalam konfigurasi deployment untuk layanan) untuk menentukan strategi deployment.
Jika layanan menggunakan tipe penerapan rolling update (
ECS
), persentase sehat minimum mewakili batas bawah pada jumlah tugas dalam layanan yang harus tetap dalamRUNNING
status selama penerapan, sebagai persentase dari jumlah tugas yang diinginkan (dibulatkan ke bilangan bulat terdekat). Parameter ini juga berlaku saat instance kontainer apa pun berada dalamDRAINING
status jika layanan berisi tugas menggunakan tipe EC2 peluncuran. Gunakan parameter ini untuk menyebarkan tanpa menggunakan kapasitas cluster tambahan. Misalnya, jika layanan Anda memiliki jumlah empat tugas yang diinginkan dan persentase sehat minimum 50 persen, penjadwal dapat menghentikan dua tugas yang ada untuk membebaskan kapasitas cluster sebelum memulai dua tugas baru. Layanan menganggap tugas sehat untuk layanan yang tidak menggunakan penyeimbang beban jika mereka berada diRUNNING
negara bagian. Layanan menganggap tugas sehat untuk layanan yang menggunakan penyeimbang beban jika mereka berada diRUNNING
negara bagian dan dilaporkan sehat oleh penyeimbang beban. Nilai default untuk persen sehat minimum adalah 100 persen.Jika layanan menggunakan tipe penerapan rolling update (
ECS
), parameter persen maksimum mewakili batas atas jumlah tugas dalam layanan yang diizinkan dalam,, atauSTOPPING
status selama penerapanPENDING
RUNNING
, sebagai persentase dari jumlah tugas yang diinginkan (dibulatkan ke bilangan bulat terdekat). Parameter ini juga berlaku saat instance kontainer apa pun berada dalamDRAINING
status jika layanan berisi tugas menggunakan tipe EC2 peluncuran. Gunakan parameter ini untuk menentukan ukuran batch deployment. Misalnya, jika layanan Anda memiliki jumlah empat tugas yang diinginkan dan nilai persen maksimum 200 persen, penjadwal dapat memulai empat tugas baru sebelum menghentikan empat tugas lama. Ini asalkan sumber daya cluster yang diperlukan untuk melakukan ini tersedia. Nilai default untuk persen maksimum adalah 200 persen.Saat penjadwal layanan mengganti tugas selama pembaruan, maka layanan terlebih dahulu menghapus tugas dari penyeimbang beban (jika digunakan) dan menunggu koneksi dialihkan. Kemudian, docker stop yang setara dikeluarkan untuk kontainer yang berjalan dalam tugas. Hal ini menyebabkan sinyal
SIGTERM
dan waktu habis dalam 30 detik, setelahSIGKILL
dikirim dan kontainer dihentikan secara paksa. Jika kontainer menangani sinyalSIGTERM
dengan baik dan keluar dalam waktu 30 detik dari saat menerimanya, maka sinyalSIGKILL
tidak dikirim. Penjadwal layanan memulai dan menghentikan tugas seperti yang ditentukan melalui pengaturan persentase minimum dan maksimum yang sehat.Penjadwal layanan juga menggantikan tugas yang ditentukan tidak sehat setelah pemeriksaan kesehatan kontainer atau pemeriksaan kesehatan kelompok sasaran penyeimbang beban gagal. Penggantian ini tergantung pada parameter definisi
maximumPercent
dandesiredCount
layanan. Jika tugas ditandai tidak sehat, penjadwal layanan akan memulai tugas pengganti terlebih dahulu. Kemudian, hal berikut terjadi.Jika tugas penggantian memiliki status kesehatan
HEALTHY
, penjadwal layanan menghentikan tugas yang tidak sehatJika tugas penggantian memiliki status kesehatan
UNHEALTHY
, penjadwal akan menghentikan tugas penggantian yang tidak sehat atau tugas tidak sehat yang ada untuk mendapatkan jumlah tugas total yang samadesiredCount
.
Jika
maximumPercent
parameter membatasi penjadwal untuk memulai tugas penggantian terlebih dahulu, penjadwal akan menghentikan tugas yang tidak sehat satu per satu secara acak untuk membebaskan kapasitas, dan kemudian memulai tugas pengganti. Proses start dan stop berlanjut sampai semua tugas yang tidak sehat diganti dengan tugas yang sehat. Setelah semua tugas yang tidak sehat telah diganti dan hanya tugas sehat yang berjalan, jika jumlah tugas total melebihidesiredCount
, tugas sehat dihentikan secara acak hingga jumlah tugas total sama.desiredCount
Untuk informasi selengkapnya tentangmaximumPercent
dandesiredCount
, lihat Parameter definisi layanan. - Hitungan tugas yang diinginkan
-
Jumlah instantiasi tugas untuk ditempatkan dan terus berjalan di layanan Anda.
Jika Anda ingin menghentikan sementara layanan Anda, tetapkan nilai ini ke 0. Kemudian, ketika Anda siap untuk memulai layanan, perbarui layanan dengan nilai aslinya.
Anda dapat mengubah parameter ini untuk penerapan bergulir, dan penerapan biru/hijau.
- Aktifkan tag terkelola
-
Menentukan apakah akan mengaktifkan tag terkelola Amazon ECS untuk tugas dalam layanan.
Hanya tugas yang diluncurkan setelah pembaruan yang akan mencerminkan pembaruan. Untuk memperbarui tag pada semua tugas, gunakan opsi penerapan paksa.
Anda dapat mengubah parameter ini untuk penerapan bergulir, dan penerapan biru/hijau.
- Aktifkan ECS Exec
-
Menentukan apakah Amazon ECS Exec digunakan.
Jika Anda tidak ingin mengganti nilai yang ditetapkan saat layanan dibuat, Anda dapat menyetelnya ke null saat melakukan tindakan ini.
Anda dapat mengubah parameter ini untuk penerapan bergulir.
- Masa tenggang pemeriksaan kesehatan
-
Periode waktu, dalam hitungan detik, bahwa penjadwal layanan Amazon ECS mengabaikan Elastic Load Balancing, VPC Lattice, dan pemeriksaan kesehatan kontainer yang tidak sehat setelah tugas pertama kali dimulai. Jika Anda tidak menentukan nilai masa tenggang pemeriksaan kesehatan, nilai default
0
digunakan. Jika Anda tidak menggunakan salah satu pemeriksaan kesehatan, maka tidakhealthCheckGracePeriodSeconds
digunakan.Jika tugas layanan Anda membutuhkan waktu cukup lama untuk memulai dan menanggapi pemeriksaan kesehatan, Anda dapat menentukan masa tenggang pemeriksaan kesehatan hingga 2.147.483.647 detik (sekitar 69 tahun). Selama waktu itu, penjadwal Layanan Amazon ECS mengabaikan status pemeriksaan kondisi. Masa tenggang ini dapat mencegah penjadwal layanan menandai tugas sebagai tidak sehat dan menghentikan mereka sebelum mereka memiliki waktu untuk muncul.
Anda dapat mengubah parameter ini untuk penerapan dan blue/green penerapan bergulir.
- Penyeimbang beban
-
Anda harus menggunakan peran terkait layanan saat memperbarui penyeimbang beban.
Daftar objek penyeimbang beban Elastic Load Balancing. Ini berisi nama penyeimbang beban, nama kontainer, dan port kontainer untuk mengakses dari penyeimbang beban. Nama kontainer adalah seperti yang muncul dalam definisi kontainer.
Amazon ECS tidak secara otomatis memperbarui grup keamanan yang terkait dengan penyeimbang beban Elastic Load Balancing atau instans kontainer Amazon ECS.
Saat Anda menambahkan, memperbarui, atau menghapus konfigurasi penyeimbang beban, Amazon ECS memulai tugas baru dengan konfigurasi Elastic Load Balancing yang diperbarui, dan kemudian menghentikan tugas lama saat tugas baru berjalan.
Untuk layanan yang menggunakan pembaruan bergulir, Anda dapat menambahkan, memperbarui, atau menghapus grup target Elastic Load Balancing. Anda dapat memperbarui dari satu grup target ke beberapa grup target dan dari beberapa grup target ke satu grup target.
Untuk layanan yang menggunakan blue/green penerapan, Anda dapat memperbarui grup target Elastic Load Balancing dengan menggunakannya.
CreateDeployment
CodeDeploy Perhatikan bahwa beberapa grup target tidak didukung untuk blue/green penerapan. Untuk informasi selengkapnya lihat Mendaftarkan beberapa grup target dengan layanan.Untuk layanan yang menggunakan pengontrol penerapan eksternal, Anda dapat menambahkan, memperbarui, atau menghapus penyeimbang beban dengan menggunakan. CreateTaskSet Perhatikan bahwa beberapa grup target tidak didukung untuk penerapan eksternal. Untuk informasi selengkapnya lihat Mendaftarkan beberapa grup target dengan layanan.
Lewati daftar kosong untuk menghapus penyeimbang beban.
Anda dapat mengubah parameter ini untuk penerapan bergulir.
- Konfigurasi jaringan
-
Konfigurasi jaringan layanan.
Anda dapat mengubah parameter ini untuk penerapan bergulir.
- Kendala penempatan
-
Array objek kendala penempatan tugas untuk memperbarui layanan yang akan digunakan. Jika tidak ada nilai yang ditentukan, batasan penempatan yang ada untuk layanan akan tetap tidak berubah. Jika nilai ini ditentukan, nilai ini akan mengganti batasan penempatan yang ada yang ditentukan untuk layanan. Untuk menghapus semua kendala penempatan yang ada, tentukan array kosong.
Anda dapat menentukan maksimal 10 kendala untuk setiap tugas. Batas ini mencakup batasan dalam definisi tugas dan yang ditentukan saat runtime.
Anda dapat mengubah parameter ini untuk penerapan bergulir, dan penerapan biru/hijau.
- Strategi penempatan
-
Strategi penempatan tugas keberatan untuk memperbarui layanan yang akan digunakan. Jika tidak ada nilai yang ditentukan, strategi penempatan yang ada untuk layanan akan tetap tidak berubah. Jika nilai ini ditentukan, itu akan mengesampingkan strategi penempatan yang ada yang ditentukan untuk layanan. Untuk menghapus strategi penempatan yang ada, tentukan objek kosong.
Anda dapat mengubah parameter ini untuk penerapan bergulir, dan penerapan biru/hijau.
- Versi platform
-
Versi platform Fargate yang dijalankan layanan Anda.
Layanan yang menggunakan versi platform Linux tidak dapat diperbarui untuk menggunakan versi platform Windows dan sebaliknya.
Anda dapat mengubah parameter ini untuk penerapan bergulir.
- Menyebarkan tag
-
Menentukan apakah akan menyebarkan tag dari definisi tugas atau layanan ke tugas. Jika tidak ada nilai yang ditentukan, tanda tidak disebarkan.
Hanya tugas yang diluncurkan setelah pembaruan yang akan mencerminkan pembaruan. Untuk memperbarui tag pada semua tugas, atur
forceNewDeployment
ketrue
, sehingga Amazon ECS memulai tugas baru dengan tag yang diperbarui.Anda dapat mengubah parameter ini untuk penerapan bergulir, dan penerapan biru/hijau.
- Konfigurasi Service Connect
-
Konfigurasi untuk Amazon ECS Service Connect. Parameter ini menentukan bagaimana layanan terhubung ke layanan lain dalam aplikasi Anda.
Anda dapat mengubah parameter ini untuk penerapan bergulir.
- Registrasi layanan
-
Anda harus menggunakan peran terkait layanan saat memperbarui pendaftar layanan.
Rincian untuk pendaftar penemuan layanan untuk ditetapkan ke layanan ini. Untuk informasi lebih lanjut, lihat Penemuan Layanan.
Saat Anda menambahkan, memperbarui, atau menghapus konfigurasi registrasi layanan, Amazon ECS memulai tugas baru dengan konfigurasi pendaftar layanan yang diperbarui, dan kemudian menghentikan tugas lama saat tugas baru berjalan.
Lewati daftar kosong untuk menghapus pendaftar layanan.
Anda dapat mengubah parameter ini untuk penerapan bergulir.
- Definisi tugas
-
Definisi tugas dan revisi yang digunakan untuk layanan.
Jika Anda mengubah port yang digunakan oleh kontainer dalam definisi tugas, Anda mungkin perlu memperbarui grup keamanan agar instance kontainer berfungsi dengan port yang diperbarui.
Jika Anda memperbarui definisi tugas untuk layanan, nama kontainer dan port kontainer yang ditentukan dalam konfigurasi penyeimbang beban harus tetap dalam definisi tugas.
Perilaku tarik gambar kontainer berbeda untuk jenis peluncuran. Untuk informasi selengkapnya, lihat salah satu dari berikut ini:
Anda dapat mengubah parameter ini untuk penerapan bergulir.
- Konfigurasi volume
-
Detail volume yang ada
configuredAtLaunch
. Jika disetel ke true, parameter ini mengonfigurasi lampiran tugas Amazon EBS selama penerapan. Anda dapat mengonfigurasi ukuran, VolumeType, IOPS, throughput, snapshot, dan enkripsi dalam Konfigurasi. ServiceManaged EBSVolume Volume harus sesuai denganname
dari definisi tugas.name
Jika disetel ke null, tidak ada penerapan baru yang dipicu. Jika tidak, jika konfigurasi ini berbeda dari yang sudah ada, itu memicu penerapan baru.Anda dapat mengubah parameter ini untuk penerapan bergulir.
- Konfigurasi Kisi VPC
-
Konfigurasi VPC Lattice untuk layanan Anda. Ini menentukan bagaimana layanan Anda terintegrasi dengan VPC Lattice untuk komunikasi. service-to-service
Anda dapat mengubah parameter ini untuk penerapan bergulir.
AWS CDK pertimbangan
AWS CDK Tidak melacak status sumber daya. Ia tidak tahu apakah Anda membuat atau memperbarui layanan. Pelanggan harus menggunakan pintu keluar untuk mengakses konstruksi ecs Service
L1 secara langsung.
Untuk informasi tentang escape hatch, lihat Menyesuaikan konstruksi dari AWS Construct Library di Panduan Pengembang AWS Cloud Development Kit (AWS CDK) v2.
Untuk memigrasikan layanan Anda yang ada ke ecs.Service
konstruksi, lakukan hal berikut:
-
Gunakan pintu keluar untuk mengakses konstruksi
Service
L1. -
Secara manual mengatur properti berikut dalam konstruksi
Service
L1.Jika layanan Anda menggunakan EC2 kapasitas Amazon:
-
daemon?
-
placementConstraints?
-
placementStrategies?
-
Jika Anda menggunakan mode
awsvpc
jaringan, Anda perlu mengaturvpcSubnets?
dansecurityGroups?
konstruksi.
Jika layanan Anda menggunakan Fargate:
-
FargatePlatformVersion
-
vpcSubnets?
dansecurityGroups?
konstruksinya.
-
-
Atur
launchType
sebagai berikut:const cfnEcsService = service.node.findChild('Service') as ecs.CfnService; cfnEcsService.launchType = "FARGATE";
Untuk bermigrasi dari jenis peluncuran ke penyedia kapasitas, lakukan hal berikut:
-
Gunakan pintu keluar untuk mengakses konstruksi
Service
L1. -
Tambahkan
capacityProviderStrategies?
konstruksinya. -
Menyebarkan layanan.