Langkah dan kebijakan penskalaan sederhana untuk Amazon EC2 Auto Scaling - EC2Auto Scaling Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Langkah dan kebijakan penskalaan sederhana untuk Amazon EC2 Auto Scaling

Kebijakan penskalaan langkah dan penskalaan sederhana menskalakan kapasitas grup Auto Scaling Anda dalam peningkatan yang telah ditentukan berdasarkan alarm. CloudWatch Anda dapat menentukan kebijakan penskalaan terpisah untuk menangani penskalaan (peningkatan kapasitas) dan penskalaan (penurunan kapasitas) saat ambang alarm dilanggar.

Dengan penskalaan langkah dan penskalaan sederhana, Anda membuat dan mengelola CloudWatch alarm yang menjalankan proses penskalaan. Saat alarm dilanggar, Amazon EC2 Auto Scaling memulai kebijakan penskalaan yang terkait dengan alarm tersebut.

Kami sangat menyarankan agar Anda menggunakan kebijakan penskalaan pelacakan target untuk menskalakan metrik seperti CPU pemanfaatan 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 bahwa Amazon EC2 Auto Scaling mengikuti kurva permintaan untuk aplikasi Anda dengan cermat. Untuk informasi selengkapnya, lihat Kebijakan penskalaan pelacakan target.

Cara kerja kebijakan penskalaan langkah

Untuk menggunakan penskalaan langkah, pertama-tama Anda membuat CloudWatch alarm yang memantau metrik untuk grup Auto Scaling 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.

Tambahkan penyesuaian langkah dalam kebijakan. Anda dapat menentukan penyesuaian langkah yang berbeda berdasarkan ukuran pelanggaran alarm. Sebagai contoh:

  • Skalakan 10 instance jika metrik alarm mencapai 60 persen

  • Skala hingga 30 instance jika metrik alarm mencapai 75 persen

  • Skala hingga 40 instance jika metrik alarm mencapai 85 persen

Jika ambang batas alarm dilanggar untuk jumlah periode evaluasi yang ditentukan, EC2 Auto Scaling Amazon akan menerapkan penyesuaian langkah yang ditentukan dalam kebijakan. Penyesuaian dapat berlanjut untuk pelanggaran alarm tambahan hingga status alarm kembali ke. OK

Setiap instance memiliki periode pemanasan untuk mencegah aktivitas penskalaan menjadi terlalu reaktif terhadap perubahan yang terjadi selama periode waktu yang singkat. Anda dapat mengonfigurasi periode pemanasan secara opsional untuk kebijakan penskalaan Anda. Namun, sebaiknya gunakan pemanasan instans default untuk mempermudah pembaruan semua kebijakan penskalaan saat waktu pemanasan berubah. Untuk informasi selengkapnya, lihat Mengatur pemanasan instance default untuk grup Auto Scaling.

Kebijakan penskalaan sederhana mirip dengan kebijakan penskalaan langkah, kecuali kebijakan tersebut didasarkan pada penyesuaian penskalaan tunggal, dengan periode cooldown 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 mengumpulkan titik data metrik berdasarkan statistik untuk metrik yang terkait dengan CloudWatch alarm Anda. Ketika alarm dilanggar, kebijakan penskalaan yang sesuai akan 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. Sebagai contoh, katakanlah Anda membuat CloudWatch alarm dan kebijakan scale-out ketika metrik di atas 50 persen. Anda kemudian membuat alarm kedua dan kebijakan skala dalam ketika metrik di bawah 50 persen. Anda membuat serangkaian penyesuaian langkah dengan jenis penyesuaian PercentChangeInCapacity (atau Persentase grup di konsol) untuk setiap kebijakan:

Contoh: Penyesuaian langkah untuk kebijakan menskalakan keluar
Batas bawah Batas atas Penyesuaian

0

10

0

10

20

10

20

nol

30

Contoh: Penyesuaian langkah untuk kebijakan penskalaaan kedalam
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 kedaluwarsa, 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 AWS Management Console, Anda menentukan batas atas dan bawah sebagai nilai absolut. Jika Anda menggunakan AWS CLI atauSDK, 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 contoh, kecuali jika Anda menggunakan fitur bobot instance.

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.7 dibulatkan ke 12.

    • Nilai antara 0 dan 1 dibulatkan ke 1. Misalnya, .67 dibulatkan ke 1.

    • Nilai antara 0 dan -1 dibulatkan ke -1. Misalnya, -.58 dibulatkan ke -1.

    • Nilai kurang dari -1 dibulatkan ke atas. Misalnya, -6.67 dibulatkan 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 instance, 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, ingatlah bahwa kapasitas grup Auto Scaling Anda 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 dari kebijakan penskalaan ketika alarm ambang batas dilanggar. 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.

Contoh pemanasan

Untuk penskalaan langkah, Anda dapat menentukan jumlah detik yang diperlukan untuk pemanasan instans yang baru diluncurkan. Sampai waktu pemanasan yang ditentukan telah kedaluwarsa, instance tidak dihitung terhadap metrik instans agregat dari grup Auto EC2 Scaling.

Saat instans berada dalam periode pemanasan, kebijakan penskalaan Anda hanya dapat ditingkatkan jika nilai metrik dari instans yang tidak memanas lebih besar daripada ambang batas tinggi alarm kebijakan.

Jika kelompok menskalakan lagi, contoh yang masih memanas 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 Auto Scaling Anda memiliki kapasitas 10 yang diinginkan dan saat ini. Kapasitas yang diinginkan dan saat ini tidak berubah sedangkan nilai metrik agregat kurang dari 60. Misalkan metrik mencapai 60, jadi 1 instance ditambahkan (10 persen dari 10 instance). Kemudian, metrik mencapai 62 saat 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 penskalaan sedang berlangsung, semua aktivitas penskalaan yang dimulai oleh kebijakan penskalaan diblokir hingga instans selesai memanas. Ketika contoh selesai pemanasan, jika peristiwa skala dalam terjadi, setiap contoh yang saat ini dalam proses penghentian akan dihitung terhadap kapasitas grup saat ini ketika menghitung kapasitas baru yang diinginkan. Oleh karena itu, kami tidak menghapus lebih banyak instance daripada yang diperlukan oleh grup Auto Scaling. Misalnya, ketika sebuah instance sudah berakhir, jika alarm dilanggar dalam kisaran 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 disetel, maka kebijakan penskalaan akan menggunakan nilai default, yang merupakan nilai untuk pemanasan instance default yang ditentukan untuk grup. Jika pemanasan instance default adalah null, maka itu kembali ke nilai cooldown default.

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 scale-out dan scale-in untuk mencegah flapping. Flapping adalah lingkaran penskalaan dan penskalaan yang tak terbatas. Artinya, jika tindakan penskalaan diambil, nilai metrik akan berubah dan memulai tindakan penskalaan lain dalam arah sebaliknya.