Saat beban kerja berfluktuasi akibat lonjakan lalu lintas atau kegagalan perangkat keras, penskalaan manual tidak dapat merespons dengan cukup cepat. Aturan penskalaan pelacakan target secara otomatis menyesuaikan jumlah instans untuk mempertahankan metrik CloudMonitor pada nilai target yang Anda tentukan.
Cara kerja
Aturan penskalaan pelacakan target mengaitkan metrik CloudMonitor dengan nilai target. Auto Scaling terus-menerus memantau metrik tersebut, menghitung jumlah instans yang diperlukan, lalu menambah atau menghapus instans agar metrik tetap mendekati target. Aturan ini dibangun di atas aturan penskalaan simple, namun menghilangkan kebutuhan penyetelan ambang batas secara manual.
Auto Scaling mendukung empat jenis aturan penskalaan: simple, step, predictive, dan target tracking. Untuk informasi selengkapnya, lihat Ikhtisar aturan penskalaan.
Tugas berbasis peristiwa yang dibuat otomatis
Saat Anda membuat aturan penskalaan pelacakan target, Auto Scaling secara otomatis membuat dua tugas berbasis peristiwa:
| Task | Metric collection interval | Trigger condition |
|---|---|---|
| Progressive scale-out | Setiap 60 detik | Ambang batas terlampaui selama 3 menit berturut-turut |
| Conservative scale-in | Setiap 60 detik | Ambang batas terlampaui selama 15 menit berturut-turut |
Tugas-tugas ini tidak dapat dimodifikasi atau dihapus secara langsung. Untuk menghapusnya, hapus aturan penskalaan pelacakan target tersebut. Anda dapat melihat, menonaktifkan, dan mengaktifkan tugas-tugas ini.
Perhitungan jumlah instans
Auto Scaling menghitung jumlah instans yang tepat untuk setiap aktivitas penskalaan berdasarkan riwayat metrik dan nilai target:
-
Scale-out: Dibulatkan ke atas. Jika diperlukan 1,5 instans, maka 2 instans ditambahkan.
-
Scale-in: Dibulatkan ke bawah. Jika 1,5 instans dapat dihapus, hanya 1 instans yang dihapus.
Tidak ada aktivitas penskalaan yang terjadi jika data metrik tidak mencapai ambang batas. Jika jumlah instans yang dihitung kurang dari satu, alert tetap dilaporkan tetapi tidak memicu scale-in.
Metrik yang didukung
Metrik yang digunakan untuk pelacakan target harus merepresentasikan beban kerja instans dan berskala proporsional dengan jumlah instans dalam grup penskalaan.
Grup penskalaan tipe ECS
|
API metric |
Console metric |
Description |
|
CpuUtilization |
(ECS) Average CPU Utilization |
Rata-rata penggunaan CPU di seluruh instans |
|
IntranetRx |
(ECS) Average Inbound Internal Traffic |
Rata-rata lalu lintas masuk melalui jaringan internal |
|
IntranetTx |
(ECS) Average Outbound Internal Traffic |
Rata-rata lalu lintas keluar melalui jaringan internal |
|
ClassicInternetRx / VpcInternetRx |
(ECS) Average Inbound Public Traffic |
Rata-rata lalu lintas masuk dari Internet. Menggunakan jaringan klasik atau VPC berdasarkan Network Type grup penskalaan. |
|
ClassicInternetTx / VpcInternetTx |
(ECS) Average Outbound Public Traffic |
Rata-rata lalu lintas keluar ke Internet. Menggunakan jaringan klasik atau VPC berdasarkan Network Type grup penskalaan. |
|
MemoryUtilization |
(Agent) Memory |
Penggunaan memori yang dikumpulkan oleh Agen CloudMonitor |
|
LoadBalancerRealServerAverageQps |
(ALB) QPS per Backend Server |
Jumlah kueri per detik per server backend. Memerlukan konfigurasi ALB Server Group. |
Grup penskalaan tipe Elastic Container Instance
|
API metric |
Console metric |
Description |
|
EciPodCpuUtilization |
CPU Utilization |
Rata-rata penggunaan CPU di seluruh Pod |
|
EciPodMemoryUtilization |
Memory |
Rata-rata penggunaan memori di seluruh Pod |
|
LoadBalancerRealServerAverageQps |
(ALB) QPS per Backend Server |
Jumlah kueri per detik per server backend. Memerlukan konfigurasi ALB Server Group. |
Nonaktifkan scale-in
Secara default, aturan penskalaan pelacakan target membuat dua tugas berbasis peristiwa, yaitu scale-out dan scale-in. Aktifkan Disable Scale-in untuk mencegah aturan menghapus instans.
Saat Disable Scale-in diaktifkan:
-
Hanya tugas berbasis peristiwa scale-out yang dibuat. Tidak ada tugas scale-in yang dibuat.
-
Gunakan metode lain untuk menangani scale-in, seperti tugas berbasis peristiwa terpisah dengan aturan penskalaan simple.
Saat Disable Scale-in dinonaktifkan, kedua tugas scale-out dan scale-in dibuat.
Konfigurasikan Disable Scale-in melalui salah satu metode berikut:
-
Console: Di kotak dialog Create Scaling Rule, aktifkan toggle di samping Disable Scale-in.
-
API: Setel
DisableScaleInketruedalam operasi CreateScalingRule.
Konfigurasikan waktu pemanasan instans
Instance Warmup Time adalah periode yang dibutuhkan instans baru sebelum dapat menangani lalu lintas produksi. Selama masa pemanasan, Auto Scaling tidak mengumpulkan data metrik dari instans tersebut. Hal ini mencegah penskalaan prematur yang dipicu oleh data metrik yang belum lengkap.
Tentukan periode pemanasan berdasarkan waktu yang diperlukan untuk men-deploy layanan, lulus Pemeriksaan kesehatan Server Load Balancer (SLB), dan mulai melaporkan metrik yang stabil.
Perilaku selama pemanasan
-
Instans termasuk dalam grup penskalaan tetapi tidak berkontribusi terhadap metrik CloudMonitor.
-
Instans yang sedang dalam masa pemanasan tidak dihitung sebagai dasar perhitungan scale-out.
-
Selama periode pemanasan, Auto Scaling menolak permintaan untuk menjalankan aturan penskalaan dalam grup penskalaan.
-
Setelah periode pemanasan berakhir, instans mulai melaporkan data ke CloudMonitor dan dihitung sebagai bagian dari kapasitas grup penskalaan.
Contoh: Grup penskalaan berisi 2 instans. Scale-out menambahkan 5 instans baru dengan periode pemanasan 300 detik. Hingga masa pemanasan berakhir, hanya 2 instans awal yang digunakan sebagai dasar perhitungan scale-out berikutnya.
Proteksi scale-in selama pemanasan
Auto Scaling menetapkan waktu pendinginan default yang sesuai selama scale-in untuk mencegah penghapusan instans yang masih dalam masa pemanasan akibat latensi data.
Buat aturan penskalaan pelacakan target
Buat aturan penskalaan pelacakan target melalui Konsol Auto Scaling atau dengan memanggil API:
-
Console: Buka grup penskalaan, lalu buat aturan penskalaan. Untuk petunjuk langkah demi langkah, lihat Manage scaling rules.
-
API: Panggil operasi CreateScalingRule.
Batasan
-
Setiap metrik hanya dapat ditetapkan ke satu aturan penskalaan pelacakan target per grup penskalaan.
-
Jika grup penskalaan memiliki jumlah instans yang kecil, nilai metrik dapat berbeda signifikan dari nilai target karena setiap instans memiliki dampak besar terhadap metrik agregat.
Perbandingan pelacakan target vs. aturan penskalaan simple
|
Aspect |
Simple scaling rule |
Target tracking scaling rule |
|
User involvement |
Tinggi. Memerlukan pembuatan aturan manual, pemantauan ambang batas, dan pengelolaan aktivitas penskalaan. |
Rendah. Cukup tentukan metrik dan nilai target. Auto Scaling menangani sisanya. |
|
Adjustment precision |
Tetap. Aturan didasarkan pada ambang batas statis tanpa adaptasi dinamis. |
Dinamis. Auto Scaling menghitung jumlah instans yang tepat berdasarkan riwayat metrik. |
|
Metric reliability |
Tidak mendukung pemanasan. Instans baru mungkin melaporkan metrik yang tidak lengkap, menyebabkan alert palsu. |
Mendukung pemanasan. Metrik dari instans baru dikecualikan hingga masa pemanasan selesai. |
|
Scaling stability |
Rentan osilasi. Aturan scale-out dan scale-in terpisah dapat saling bertentangan. |
Stabil. Auto Scaling menghitung rentang target berdasarkan riwayat metrik, sehingga mengurangi aktivitas penskalaan yang tidak perlu. |
|
Data latency handling |
Perubahan metrik tertinggal dari perubahan jumlah instans. Alert mungkin terus muncul setelah penskalaan, memicu aktivitas yang tidak perlu. |
Auto Scaling memperhitungkan latensi data dengan menggunakan kebijakan scale-in konservatif dan scale-out progresif. |