Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Kontrol instans yang dihentikan Amazon ECS
penting
Anda harus mengaktifkan perlindungan penskalaan instans Auto Scaling pada grup Auto Scaling untuk menggunakan fitur proteksi terminasi terkelola dari penskalaan otomatis cluster.
Perlindungan terminasi terkelola memungkinkan penskalaan otomatis cluster untuk mengontrol instance mana yang dihentikan. Saat Anda menggunakan perlindungan penghentian terkelola, Amazon ECS hanya menghentikan EC2 instans yang tidak menjalankan tugas AmazonECS. Tugas yang dijalankan oleh layanan yang menggunakan strategi DAEMON
penjadwalan diabaikan dan sebuah instance dapat dihentikan oleh penskalaan otomatis cluster bahkan ketika instance menjalankan tugas-tugas ini. Ini karena semua instance di cluster menjalankan tugas-tugas ini.
Amazon ECS pertama-tama mengaktifkan opsi perlindungan skala masuk instans untuk EC2 instans di grup Auto Scaling. Kemudian, Amazon ECS menempatkan tugas pada instance. Ketika semua tugas non-daemon dihentikan pada sebuah instance, Amazon ECS memulai proses scale-in dan mematikan perlindungan scale-in untuk instance tersebut. EC2 Grup Auto Scaling kemudian dapat menghentikan instance.
Auto Scaling instance scale-in protection mengontrol EC2 instance mana yang dapat dihentikan oleh Auto Scaling. Instans dengan fitur scale-in diaktifkan tidak dapat dihentikan selama proses scale-in. Untuk informasi selengkapnya tentang perlindungan penskalaan instans Auto Scaling, lihat Menggunakan perlindungan penskalaan instans di Panduan Pengguna Penskalaan Otomatis EC2 Amazon.
Anda dapat mengatur targetCapacity
persentase sehingga Anda memiliki kapasitas cadangan. Ini membantu tugas future diluncurkan lebih cepat karena grup Auto Scaling tidak harus meluncurkan lebih banyak instance. Amazon ECS menggunakan nilai kapasitas target untuk mengelola CloudWatch metrik yang dibuat layanan. Amazon ECS mengelola CloudWatch metrik. Grup Auto Scaling diperlakukan sebagai kondisi tunak sehingga tidak diperlukan tindakan penskalaan. Nilainya bisa dari 0-100%. Misalnya, untuk mengonfigurasi Amazon ECS agar tetap 10% kapasitas bebas di atas yang digunakan oleh ECS tugas Amazon, tetapkan nilai kapasitas target menjadi 90%. Pertimbangkan hal berikut saat menetapkan targetCapacity
nilai pada penyedia kapasitas.
-
targetCapacity
Nilai kurang dari 100% mewakili jumlah kapasitas gratis (EC2instans Amazon) yang perlu ada di cluster. Kapasitas bebas berarti tidak ada tugas yang berjalan. -
Batasan penempatan seperti Availability Zones, tanpa tambahan memaksa
binpack
Amazon ECS untuk akhirnya menjalankan satu tugas untuk setiap instance, yang mungkin bukan perilaku yang diinginkan.
Anda harus mengaktifkan perlindungan penskalaan instans Auto Scaling pada grup Auto Scaling untuk menggunakan perlindungan terminasi terkelola. Jika Anda tidak mengaktifkan perlindungan skala dalam, maka mengaktifkan perlindungan terminasi terkelola dapat menyebabkan perilaku yang tidak diinginkan. Misalnya, Anda mungkin memiliki instance yang terjebak dalam keadaan menguras. Untuk informasi selengkapnya, lihat Menggunakan perlindungan penskalaan instans di Panduan Pengguna Amazon Auto EC2 Scaling.
Saat Anda menggunakan perlindungan penghentian dengan penyedia kapasitas, jangan lakukan tindakan manual apa pun, seperti melepaskan instance, pada grup Auto Scaling yang terkait dengan penyedia kapasitas. Tindakan manual dapat mematahkan operasi skala dalam penyedia kapasitas. Jika Anda melepaskan instance dari grup Auto Scaling, Anda juga perlu membatalkan pendaftaran instance terpisah dari klaster Amazon. ECS
Perilaku penskalaan keluar yang terkelola
Jika Anda memiliki penyedia kapasitas grup Auto Scaling yang menggunakan penskalaan terkelola, Amazon ECS memperkirakan jumlah instans optimal untuk ditambahkan ke klaster Anda dan menggunakan nilainya untuk menentukan berapa banyak instans yang akan diminta.
Amazon ECS memilih penyedia kapasitas untuk setiap tugas dengan mengikuti strategi penyedia kapasitas dari layanan, tugas mandiri, atau default cluster. Amazon ECS mengikuti langkah-langkah lainnya untuk penyedia kapasitas tunggal.
Tugas tanpa strategi penyedia kapasitas diabaikan oleh penyedia kapasitas. Tugas yang tertunda yang tidak memiliki strategi penyedia kapasitas tidak akan menyebabkan penyedia kapasitas untuk meningkatkan skala. Tugas atau layanan tidak dapat menetapkan strategi penyedia kapasitas jika tugas atau layanan tersebut menetapkan jenis peluncuran.
Berikut ini menjelaskan perilaku penskalaan keluar secara lebih rinci.
-
Kelompokkan semua tugas penyediaan untuk penyedia kapasitas ini sehingga setiap kelompok memiliki persyaratan sumber daya yang sama persis.
-
Bila Anda menggunakan beberapa tipe instans dalam grup Auto Scaling, tipe instans dalam grup Auto Scaling akan diurutkan berdasarkan parameternya. Parameter ini termasuk vCPU, memori, antarmuka jaringan elastis (ENIs), port, danGPUs. Jenis instance terkecil dan terbesar untuk setiap parameter dipilih. Untuk informasi selengkapnya tentang cara memilih jenis instans, lihatContoh EC2 kontainer Amazon untuk Amazon ECS.
penting
Jika sekelompok tugas memiliki persyaratan sumber daya yang lebih besar dari jenis instans terkecil di grup Auto Scaling, maka grup tugas tersebut tidak dapat dijalankan dengan penyedia kapasitas ini. Penyedia kapasitas tidak menskalakan grup Auto Scaling. Tugas tetap di
PROVISIONING
negara bagian.Untuk mencegah tugas tetap berada dalam
PROVISIONING
status, kami sarankan Anda membuat grup Auto Scaling terpisah dan penyedia kapasitas untuk persyaratan sumber daya minimum yang berbeda. Saat menjalankan tugas atau membuat layanan, tambahkan saja penyedia kapasitas ke strategi penyedia kapasitas yang dapat menjalankan tugas pada jenis instans terkecil di grup Auto Scaling. Untuk parameter lain, Anda dapat menggunakan batasan penempatan -
Untuk setiap grup tugas, Amazon ECS menghitung jumlah instance yang diperlukan untuk menjalankan tugas yang tidak ditempatkan. Perhitungan ini menggunakan
binpack
strategi. Strategi ini memperhitungkan vCPU, memori, antarmuka jaringan elastis (ENI), port, dan GPUs persyaratan tugas. Ini juga memperhitungkan ketersediaan sumber daya dari EC2 instans Amazon. Nilai untuk jenis instans terbesar diperlakukan sebagai jumlah instans terhitung maksimum. Nilai untuk jenis instance terkecil digunakan sebagai perlindungan. Jika jenis instance terkecil tidak dapat menjalankan setidaknya satu instance tugas, perhitungan menganggap tugas sebagai tidak kompatibel. Akibatnya, tugas tersebut dikecualikan dari perhitungan scale-out. Ketika semua tugas tidak kompatibel dengan jenis instance terkecil, penskalaan otomatis cluster berhenti danCapacityProviderReservation
nilainya tetap padatargetCapacity
nilainya. -
Amazon ECS menerbitkan
CapacityProviderReservation
metrik sehubungan CloudWatch denganminimumScalingStepSize
jika salah satu dari berikut ini adalah kasusnya.-
Jumlah instans maksimum yang dihitung kurang dari ukuran langkah penskalaan minimum.
-
Nilai yang lebih rendah dari jumlah instans yang dihitung
maximumScalingStepSize
atau maksimum.
-
-
CloudWatch alarm menggunakan
CapacityProviderReservation
metrik untuk penyedia kapasitas. KetikaCapacityProviderReservation
metrik lebih besar daritargetCapacity
nilainya, alarm juga meningkatkan grupDesiredCapacity
Auto Scaling.targetCapacity
Nilainya adalah pengaturan penyedia kapasitas yang dikirim ke CloudWatch alarm selama fase aktivasi penskalaan otomatis cluster.targetCapacity
Defaultnya adalah 100%. -
Grup Auto Scaling meluncurkan instance tambahan. EC2 Untuk mencegah penyediaan berlebih, Auto Scaling memastikan bahwa kapasitas EC2 instans yang baru diluncurkan distabilkan sebelum meluncurkan instance baru. Auto Scaling memeriksa apakah semua instance yang ada telah melewati
instanceWarmupPeriod
(sekarang dikurangi waktu peluncuran instance). Penskalaan diblokir untuk instance yang ada di dalam.instanceWarmupPeriod
Jumlah detik default untuk instance yang baru diluncurkan untuk pemanasan adalah 300.
Untuk informasi selengkapnya, lihat Menyelam mendalam tentang penskalaan otomatis ECS klaster Amazon
Pertimbangan skala-out
Pertimbangkan hal berikut untuk proses scale-out:
-
Meskipun ada beberapa kendala penempatan, kami menyarankan Anda hanya menggunakan kendala penempatan
distinctInstance
tugas. Ini mencegah proses scale-out berhenti karena Anda menggunakan batasan penempatan yang tidak kompatibel dengan instance sampel. -
Penskalaan terkelola berfungsi paling baik jika grup Auto Scaling Anda menggunakan jenis instans yang sama atau serupa.
-
Ketika proses scale-out diperlukan dan tidak ada instance container yang sedang berjalan, Amazon ECS selalu melakukan scale-out ke dua instance pada awalnya, lalu melakukan proses scale-out atau scale-in tambahan. Setiap scale-out tambahan menunggu periode pemanasan instance. Untuk proses scale-in, Amazon ECS menunggu 15 menit setelah proses scale-out sebelum memulai proses scale-in setiap saat.
-
Langkah scale-out kedua harus menunggu sampai
instanceWarmupPeriod
habis masa berlakunya, yang mungkin mempengaruhi batas skala keseluruhan. Jika Anda perlu mengurangi waktu ini, pastikan waktu tersebutinstanceWarmupPeriod
cukup besar untuk EC2 meluncurkan dan memulai ECS agen Amazon (yang mencegah penyediaan berlebih). -
Penskalaan otomatis cluster mendukung Konfigurasi Peluncuran, Template Peluncuran, dan beberapa jenis instans di grup Auto Scaling penyedia kapasitas. Anda juga dapat menggunakan pemilihan tipe instans berbasis atribut tanpa beberapa jenis instance.
-
Saat menggunakan grup Auto Scaling dengan instans Sesuai Permintaan dan beberapa jenis instans atau Instans Spot, tempatkan jenis instans yang lebih besar lebih tinggi dalam daftar prioritas dan jangan tentukan bobot. Menentukan bobot tidak didukung saat ini. Untuk informasi selengkapnya, lihat grup Auto Scaling dengan beberapa jenis instans di AWS Auto Scaling Panduan Pengguna.
-
Amazon ECS kemudian meluncurkan
minimumScalingStepSize
, jika jumlah instans maksimum yang dihitung kurang dari ukuran langkah penskalaan minimum, atau yang lebih rendah dari nilai hitungan instans terhitung maksimummaximumScalingStepSize
atau maksimum. -
Jika ECS layanan Amazon atau
run-task
meluncurkan tugas dan instance wadah penyedia kapasitas tidak memiliki sumber daya yang cukup untuk memulai tugas, Amazon ECS membatasi jumlah tugas dengan status ini untuk setiap cluster dan mencegah tugas apa pun melebihi batas ini. Untuk informasi selengkapnya, lihat Kuota ECS layanan Amazon.
Perilaku scale-in yang dikelola
Amazon ECS memonitor instans kontainer untuk setiap penyedia kapasitas dalam sebuah cluster. Saat instance container tidak menjalankan tugas apa pun, instance container dianggap kosong dan Amazon ECS memulai proses scale-in.
CloudWatch alarm scale-in memerlukan 15 titik data (15 menit) sebelum proses scale-in untuk grup Auto Scaling dimulai. Setelah proses penskalaan dimulai hingga Amazon ECS perlu mengurangi jumlah instans kontainer terdaftar, grup Auto Scaling menetapkan DesireCapacity
nilainya menjadi lebih besar dari satu instance dan kurang dari 50% setiap menit.
Saat Amazon ECS meminta scale-out (bila CapacityProviderReservation
lebih besar dari 100) saat proses scale-in sedang berlangsung, proses scale-in dihentikan dan dimulai dari awal jika diperlukan.
Berikut ini menjelaskan perilaku scale-in secara lebih rinci:
-
Amazon ECS menghitung jumlah instance kontainer yang kosong. Sebuah instance container dianggap kosong bahkan ketika tugas daemon sedang berjalan.
-
Amazon ECS menetapkan
CapacityProviderReservation
nilai ke angka antara 0-100 yang menggunakan rumus berikut untuk mewakili rasio seberapa besar kelompok Auto Scaling harus relatif terhadap seberapa besar sebenarnya, dinyatakan sebagai persentase. Kemudian, Amazon ECS menerbitkan metrik ke CloudWatch. Untuk informasi selengkapnya tentang cara penghitungan metrik, lihat Deep Dive di Auto Scaling Amazon ECS ClusterCapacityProviderReservation = (number of instances needed) / (number of running instances) x 100
-
CapacityProviderReservation
Metrik menghasilkan CloudWatch alarm. Alarm ini memperbaruiDesiredCapacity
nilai untuk grup Auto Scaling. Kemudian, salah satu tindakan berikut terjadi:-
Jika Anda tidak menggunakan penghentian terkelola penyedia kapasitas, grup Auto Scaling akan memilih EC2 instans menggunakan kebijakan penghentian grup Auto Scaling dan mengakhiri instans hingga jumlah instans mencapai. EC2
DesiredCapacity
Instance kontainer kemudian dideregistrasi dari cluster. -
Jika semua instance container menggunakan proteksi terminasi terkelola, Amazon akan ECS menghapus proteksi scale-in pada instance container yang kosong. Grup Auto Scaling kemudian akan dapat menghentikan instance. EC2 Instance kontainer kemudian dideregistrasi dari cluster.
-