Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Kebijakan penskalaan langkah dan sederhana untuk Amazon EC2 Auto Scaling
Penskalaan langkah dan kebijakan penskalaan sederhana menskalakan kapasitas grup Penskalaan Otomatis Anda dalam peningkatan yang telah ditentukan berdasarkan CloudWatch alarm. Anda dapat menentukan kebijakan penskalaan terpisah untuk menangani penskalaan (peningkatan kapasitas) dan penskalaan (penurunan kapasitas) saat ambang batas alarm dilanggar.
Kapasitas grup Penskalaan Otomatis diukur dalam bentuk instans atau unit kapasitas jika Anda menggunakan bobot instans. Juga, ada perbedaan antara kapasitas yang diinginkan dan kapasitas saat ini.
-
Kapasitas yang diinginkan — Jumlah instans (atau unit kapasitas) yang ingin Anda miliki di grup Anda. Kapasitas yang diinginkan dapat disesuaikan secara manual atau otomatis menggunakan kebijakan penskalaan.
-
Kapasitas saat ini — Jumlah instans (atau unit kapasitas) di grup Anda yang telah melewati periode pemanasan dan cooldown dan sedang berjalan dan siap digunakan.
Dengan penskalaan langkah dan penskalaan sederhana, Anda membuat dan mengelola CloudWatch alarm yang memanggil proses penskalaan. Saat alarm dilanggar, Amazon EC2 Auto Scaling memulai kebijakan penskalaan yang terkait dengan alarm tersebut.
Kami sangat menyarankan Anda menggunakan kebijakan penskalaan pelacakan target untuk menskalakan metrik seperti pemanfaatan CPU rata-rata atau jumlah permintaan rata-rata per target. Metrik yang menurun saat kapasitas meningkat dan meningkat ketika kapasitas menurun dapat digunakan untuk meningkatkan dan menurunkan jumlah instance secara proporsional menggunakan pelacakan target. Ini membantu memastikan Amazon EC2 Auto Scaling mengikuti kurva permintaan untuk aplikasi Anda dengan ketat. Untuk informasi selengkapnya, lihat Kebijakan penskalaan pelacakan target.
Daftar Isi
Cara kerja kebijakan penskalaan langkah
Untuk menggunakan penskalaan langkah, pertama-tama Anda membuat CloudWatch alarm yang memantau metrik untuk grup Penskalaan Otomatis Anda. Tentukan metrik, nilai ambang batas, dan jumlah periode evaluasi yang menentukan pelanggaran alarm. Kemudian, buat kebijakan penskalaan langkah yang menentukan cara menskalakan grup Anda saat ambang alarm dilanggar. Anda dapat menggunakan persentase kapasitas saat ini dari grup Penskalaan Otomatis atau unit kapasitas untuk jenis penyesuaian penskalaan. Untuk informasi selengkapnya, lihat Jenis penyesuaian penskalaan.
Tambahkan penyesuaian langkah dalam kebijakan. Anda dapat menentukan penyesuaian langkah yang berbeda berdasarkan ukuran pelanggaran alarm. Contoh:
-
Tingkatkan skala 10 instans jika metrik alarm mencapai 60 persen
-
Tingkatkan skala hingga 30 instans jika metrik alarm mencapai 75 persen
-
Tingkatkan skala hingga 40 instans jika metrik alarm mencapai 85 persen
Ketika ambang alarm dilanggar untuk jumlah periode evaluasi yang ditentukan, Amazon EC2 Auto Scaling akan menerapkan penyesuaian langkah yang ditentukan dalam kebijakan. Penyesuaian dapat berlanjut untuk pelanggaran alarm tambahan hingga status alarm kembali keOK.
Setiap instance memiliki periode pemanasan untuk mencegah aktivitas penskalaan menjadi terlalu reaktif terhadap perubahan yang terjadi dalam periode waktu yang singkat. Secara opsional, Anda dapat mengonfigurasi periode pemanasan untuk kebijakan penskalaan Anda. Namun, sebaiknya gunakan pemanasan instans default untuk mempermudah pembaruan semua kebijakan penskalaan saat waktu pemanasan berubah. Untuk informasi selengkapnya, lihat Menetapkan pemanasan instans default untuk grup Auto Scaling.
Kebijakan penskalaan sederhana mirip dengan kebijakan penskalaan langkah, kecuali kebijakan tersebut didasarkan pada penyesuaian penskalaan tunggal, dengan periode cooldown di antara setiap aktivitas penskalaan. Untuk informasi selengkapnya, lihat Kebijakan penskalaan sederhana.
Penyesuaian langkah untuk penskalaan langkah
Saat Anda membuat kebijakan penskalaan langkah, Anda menetapkan satu penyesuaian langkah atau lebih yang secara otomatis menskalakan jumlah instance secara dinamis berdasarkan ukuran pelanggaran alarm. Setiap penyesuaian langkah menentukan hal berikut:
-
Batas bawah untuk nilai metrik
-
Batas atas untuk nilai metrik
-
Jumlah yang ditentukan untuk diskalakan, berdasarkan jenis penyesuaian penskalaan
CloudWatch menggabungkan titik data metrik berdasarkan statistik untuk metrik yang terkait dengan CloudWatch alarm Anda. Ketika alarm dilanggar, kebijakan penskalaan yang sesuai dipanggil. Amazon EC2 Auto Scaling menerapkan jenis agregasi ke titik data metrik terbaru dari CloudWatch (sebagai lawan dari data metrik mentah). Penskalaan ini membandingkan nilai metrik agregat ini terhadap batas atas dan bawah yang ditentukan oleh penyesuaian langkah untuk menentukan penyesuaian langkah mana yang harus dilakukan.
Anda menentukan batas atas dan bawah terkait dengan ambang batas pelanggaran. Misalnya, katakanlah Anda membuat CloudWatch alarm dan kebijakan scale-out ketika metrik di atas 50 persen. Anda kemudian membuat alarm kedua dan kebijakan scale-in ketika metriknya di bawah 50 persen. Anda membuat serangkaian penyesuaian langkah dengan jenis penyesuaian PercentChangeInCapacity (atau Per sentase grup di konsol) untuk setiap kebijakan:
| Batas bawah | Batas atas | Penyesuaian |
|---|---|---|
|
0 |
10 |
0 |
|
10 |
20 |
10 |
|
20 |
nol |
30 |
| Batas bawah | Batas atas | Penyesuaian |
|---|---|---|
|
-10 |
0 |
0 |
|
-20 |
-10 |
-10 |
|
nol |
-20 |
-30 |
Ini membuat konfigurasi penskalaan berikut.
Metric value
-infinity 30% 40% 60% 70% infinity
-----------------------------------------------------------------------
-30% | -10% | Unchanged | +10% | +30%
-----------------------------------------------------------------------
Sekarang, katakanlah Anda menggunakan konfigurasi penskalaan ini pada grup Auto Scaling yang memiliki kapasitas saat ini dan kapasitas yang diinginkan 10. Titik-titik berikut merangkum perilaku konfigurasi penskalaan dalam kaitannya dengan kapasitas grup yang diinginkan dan saat ini:
-
Kapasitas yang diinginkan dan kapasitas saat ini dipertahankan sementara nilai metrik agregat lebih besar dari 40 dan kurang dari 60.
-
Jika nilai metrik mencapai 60, kapasitas yang diinginkan grup meningkat sebesar 1 instance, menjadi 11 instance, berdasarkan penyesuaian langkah kedua kebijakan peningkatan skala (tambah 10 persen dari 10 instance). Setelah instance baru berjalan dan waktu pemanasan yang ditentukan telah berakhir, kapasitas grup saat ini meningkat menjadi 11 instance. Jika nilai metrik meningkat menjadi 70 bahkan setelah peningkatan kapasitas ini, kapasitas yang diinginkan grup meningkat sebesar 3 instance, menjadi 14 instance. Hal ini didasarkan pada penyesuaian langkah ketiga dari kebijakan peningkatan skala (tambah 30 persen dari 11 instance, 3,3 instance, dibulatkan ke 3 instance).
-
Jika nilai metrik mencapai 40, kapasitas yang diinginkan dari grup menurun sebesar 1 kali, menjadi 13 instance, berdasarkan penyesuaian langkah kedua kebijakan penurunan skala (menghapus 10 persen dari 14 instance, 1,4 instance, dibulatkan ke 1 instance). Jika nilai metrik turun menjadi 30 bahkan setelah penurunan kapasitas ini, kapasitas yang diinginkan dari grup turun sebesar 3 instance lagi, menjadi 10 instance. Ini didasarkan pada penyesuaian langkah ketiga kebijakan scale-in (hapus 30 persen dari 13 instance, 3.9 instance, dibulatkan ke bawah menjadi 3 instance).
Saat Anda menentukan penyesuaian langkah untuk kebijakan penskalaan Anda, perhatikan hal berikut:
-
Jika Anda menggunakan Konsol Manajemen AWS, Anda menentukan batas atas dan bawah sebagai nilai absolut. Jika Anda menggunakan AWS CLI atau SDK, Anda menentukan batas atas dan bawah relatif terhadap ambang batas pelanggaran.
-
Rentang penyesuaian langkah Anda tidak dapat tumpang tindih atau memiliki kesenjangan.
-
Hanya satu penyesuaian langkah yang dapat memiliki batas bawah nol (negatif tak terhingga). Jika satu penyesuaian langkah memiliki batas bawah negatif, maka harus ada penyesuaian langkah dengan batas bawah nol.
-
Hanya satu penyesuaian langkah yang dapat memiliki batas atas nol (positif tak terhingga). Jika satu penyesuaian langkah memiliki batas atas positif, maka harus ada penyesuaian langkah dengan batas atas nol.
-
Batas atas dan bawah tidak boleh nol dalam penyesuaian langkah yang sama.
-
Apabila nilai metrik berada di atas ambang batas penembusan, batas bawah bersifat inklusif dan batas atas bersifat eksklusif. Apabila nilai metrik berada di bawah ambang batas penembusan, batas bawah bersifat eksklusitf dan batas atas bersifat inklusif.
Jenis penyesuaian penskalaan
Anda dapat menentukan kebijakan penskalaan yang melakukan tindakan penskalaan optimal, berdasarkan jenis penyesuaian penskalaan yang Anda pilih. Anda dapat menentukan jenis penyesuaian sebagai persentase kapasitas saat ini dari grup Auto Scaling, atau dalam unit kapasitas. Biasanya unit kapasitas berarti satu instance, kecuali jika Anda menggunakan fitur bobot instans.
Amazon EC2 Auto Scaling mendukung jenis penyesuaian berikut untuk penskalaan langkah dan penskalaan sederhana:
-
ChangeInCapacity— Meningkatkan atau mengurangi kapasitas grup saat ini menurut nilai yang telah ditentukan. Nilai positif meningkatkan kapasitas dan nilai penyesuaian negatif menurunkan kapasitas. Misalnya: Jika kapasitas grup saat ini adalah 3 dan penyesuaiannya adalah 5, maka ketika kebijakan ini dilakukan, kami menambahkan 5 unit kapasitas ke kapasitas untuk total 8 unit kapasitas. -
ExactCapacity— Mengubah kapasitas grup saat ini ke nilai yang telah ditentukan. Tentukan nilai non-negatif dengan jenis penyesuaian ini. Misalnya: Jika kapasitas grup saat ini adalah 3 dan penyesuaiannya adalah 5, maka ketika kebijakan ini dilakukan, kami mengubah kapasitas menjadi 5 unit kapasitas. PercentChangeInCapacity— Meningkatkan atau mengurangi kapasitas grup saat ini berdasarkan persentase yang telah ditentukan. Nilai positif meningkatkan kapasitas dan nilai negatif menurunkan kapasitas. Misalnya: Jika kapasitas saat ini adalah 10 dan penyesuaian 10 persen, maka ketika kebijakan ini dilakukan, kami menambahkan 1 unit kapasitas ke kapasitas untuk total 11 unit kapasitas.catatan
Jika nilai yang dihasilkan bukan bilangan bulat, maka akan dibulatkan sebagai berikut:
-
Nilai yang lebih besar dari 1 dibulatkan ke bawah. Misalnya,
12.7dibulatkan ke12. -
Nilai antara 0 dan 1 dibulatkan ke 1. Misalnya,
.67dibulatkan ke1. -
Nilai antara 0 dan -1 dibulatkan ke -1. Misalnya,
-.58dibulatkan ke-1. -
Nilai kurang dari -1 dibulatkan ke atas. Misalnya,
-6.67dibulatkan ke-6.
-
Dengan PercentChangeInCapacity, Anda juga dapat menentukan jumlah minimum instance untuk diskalakan menggunakan parameter MinAdjustmentMagnitude. Misalnya, diasumsikan Anda membuat kebijakan yang menambahkan 25 persen dan Anda menentukan kenaikan minimum 2 instance. Jika Anda memiliki grup Auto Scaling dengan 4 instance dan kebijakan penskalaan dijalankan, 25 persen dari 4 adalah 1 instance. Namun, karena Anda menentukan peningkatan minimum sebesar 2, ada 2 instance yang ditambahkan.
Saat Anda menggunakan bobot instans, efek pengaturan MinAdjustmentMagnitude parameter ke nilai bukan nol berubah. Nilainya adalah dalam unit kapasitas. Untuk menetapkan jumlah minimum instance ke skala, atur parameter ini ke nilai yang setidaknya sebesar bobot instance terbesar Anda.
Jika Anda menggunakan bobot instans, perlu diingat bahwa kapasitas grup Penskalaan Otomatis saat ini dapat melebihi kapasitas yang diinginkan sesuai kebutuhan. Jika jumlah absolut Anda yang akan berkurang, atau jumlah yang menurut persentase tersebut akan berkurang, adalah kurang dari perbedaan antara kapasitas saat ini dan yang diinginkan, tidak ada tindakan penskalaan yang diambil. Anda harus mempertimbangkan perilaku ini ketika Anda melihat hasil kebijakan penskalaan saat alarm ambang batas melanggar. Misalnya, kita asumsikan bahwa kapasitas yang diinginkan adalah 30 dan kapasitas saat ini adalah 32. Ketika alarm melanggar, jika kebijakan penskalaan mengurangi kapasitas yang diinginkan sebesar 1, maka tidak ada tindakan penskalaan yang diambil.
Pemanasan instans
Untuk penskalaan langkah, Anda dapat secara opsional menentukan jumlah detik yang diperlukan untuk pemanasan instance yang baru diluncurkan. Sampai waktu pemanasan yang ditentukan berakhir, instans tidak diperhitungkan dalam agregat metrik instans EC2 grup Auto Scaling.
Sementara instance berada dalam periode pemanasan, kebijakan penskalaan Anda hanya diperkecil jika nilai metrik dari instans yang tidak melakukan pemanasan lebih besar dari ambang batas tinggi alarm kebijakan.
Jika grup mengalami peningkatan skala lagi, instans yang masih melakukan pemanasan dihitung sebagai bagian dari kapasitas yang diinginkan untuk aktivitas penskalaan berikutnya. Oleh karena itu, beberapa penembusan alarm yang masuk dalam rentang penyesuaian langkah yang sama menyebabkan aktivitas penskalaan tunggal. Tujuannya adalah untuk terus (tetapi tidak berlebihan) menskalakan ke luar.
Misalnya, katakanlah Anda membuat kebijakan dengan dua langkah. Langkah pertama menambahkan 10 persen ketika metrik mencapai 60, dan langkah kedua menambahkan 30 persen ketika metrik mencapai 70 persen. Grup Penskalaan Otomatis Anda memiliki kapasitas yang diinginkan dan saat ini 10. Kapasitas yang diinginkan dan saat ini tidak berubah sementara nilai metrik agregat kurang dari 60. Misalkan metrik mencapai 60, jadi 1 instance ditambahkan (10 persen dari 10 instance). Kemudian, metrik mencapai 62 sementara instance baru masih memanas. Kebijakan penskalaan menghitung kapasitas baru yang diinginkan berdasarkan kapasitas saat ini, yang masih 10. Namun, kapasitas grup yang diinginkan telah meningkat menjadi 11 instance, sehingga kebijakan penskalaan tidak meningkatkan kapasitas yang diinginkan lebih lanjut. Jika metrik mencapai 70 pada saat instance baru masih pada tahap persiapan, kita harus menambahkan 3 instance (30 persen dari 10 instance). Namun, kapasitas yang diinginkan dari grup tersebut sudah 11, jadi kami hanya menambahkan 2 instance, untuk kapasitas baru yang diinginkan sebesar 13 instance.
Saat aktivitas scale-out sedang berlangsung, semua aktivitas scale-in yang diprakarsai oleh kebijakan penskalaan diblokir hingga instans selesai melakukan pemanasan. Ketika instance selesai melakukan pemanasan, jika terjadi peristiwa scale-in, setiap instance yang saat ini dalam proses penghentian akan dihitung terhadap kapasitas grup saat ini saat menghitung kapasitas baru yang diinginkan. Oleh karena itu, kami tidak menghapus lebih banyak instance daripada yang diperlukan oleh grup Auto Scaling. Misalnya, saat instance sudah berakhir, jika alarm melanggar dalam rentang penyesuaian langkah yang sama yang mengurangi kapasitas yang diinginkan sebesar 1, maka tidak ada tindakan penskalaan yang diambil.
Nilai default
Jika tidak ada nilai yang ditetapkan, maka kebijakan penskalaan akan menggunakan nilai default, yang merupakan nilai untuk pemanasan instans default yang ditentukan untuk grup. Jika pemanasan instans default adalah null, maka akan kembali ke nilai cooldown default.
Pertimbangan-pertimbangan
Pertimbangan berikut berlaku saat bekerja dengan langkah dan kebijakan penskalaan sederhana:
-
Pertimbangkan apakah Anda dapat memprediksi penyesuaian langkah pada aplikasi dengan cukup akurat untuk menggunakan penskalaan langkah. Jika metrik penskalaan Anda meningkat atau menurun secara proporsional dengan kapasitas target yang dapat diskalakan, sebaiknya gunakan kebijakan penskalaan pelacakan target sebagai gantinya. Anda masih memiliki opsi untuk menggunakan penskalaan langkah sebagai kebijakan tambahan untuk konfigurasi yang lebih canggih. Misalnya, Anda dapat mengonfigurasi respons yang lebih agresif saat pemanfaatan mencapai tingkat tertentu.
-
Pastikan untuk memilih margin yang memadai antara ambang skala keluar dan skala masuk untuk mencegah kepakan. Mengepakkan adalah loop tak terbatas dari penskalaan masuk dan penskalaan keluar. Artinya, jika tindakan penskalaan diambil, nilai metrik akan berubah dan memulai tindakan penskalaan lain dalam arah sebaliknya.