Kebijakan penskalaan pelacakan target untuk Amazon EC2 Auto Scaling - EC2 Auto Scaling Amazon

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

Kebijakan penskalaan pelacakan target untuk Amazon EC2 Auto Scaling

Kebijakan penskalaan pelacakan target secara otomatis menskalakan kapasitas grup Auto Scaling Anda berdasarkan nilai metrik target. Secara otomatis menyesuaikan dengan pola penggunaan unik dari aplikasi individual Anda. Hal ini memungkinkan aplikasi Anda mempertahankan kinerja optimal dan pemanfaatan tinggi untuk EC2 instans Anda untuk efisiensi biaya yang lebih baik tanpa intervensi manual.

Dengan pelacakan target, Anda memilih metrik dan nilai target untuk mewakili tingkat pemanfaatan atau throughput rata-rata yang ideal untuk aplikasi Anda. Amazon EC2 Auto Scaling membuat dan mengelola CloudWatch alarm yang memanggil peristiwa penskalaan saat metrik menyimpang dari target. Sebagai contoh, ini mirip dengan bagaimana termostat mempertahankan suhu target.

Misalnya, katakanlah Anda saat ini memiliki aplikasi yang berjalan pada dua instance, dan Anda ingin pemanfaatan CPU dari grup Auto Scaling tetap sekitar 50 persen saat beban pada aplikasi berubah. Ini memberi Anda kapasitas ekstra untuk menangani lonjakan lalu lintas tanpa mempertahankan jumlah berlebih dari sumber daya yang tidak aktif.

Anda dapat memenuhi kebutuhan ini dengan membuat kebijakan penskalaan pelacakan target yang menargetkan pemanfaatan CPU rata-rata 50 persen. Kemudian, grup Auto Scaling Anda akan meningkatkan skala, atau meningkatkan kapasitas, ketika CPU melebihi 50 persen untuk menangani peningkatan beban. Ini akan menskalakan, atau mengurangi kapasitas, ketika CPU turun di bawah 50 persen untuk mengoptimalkan biaya selama periode pemanfaatan rendah.

Beberapa kebijakan penskalaan pelacakan target

Untuk membantu mengoptimalkan kinerja penskalaan, Anda dapat menggunakan beberapa kebijakan penskalaan pelacakan target secara bersamaan, asalkan masing-masing menggunakan metrik yang berbeda. Misalnya, pemanfaatan dan throughput dapat saling mempengaruhi. Setiap kali salah satu metrik ini berubah, biasanya menyiratkan bahwa metrik lain juga akan terpengaruh. Oleh karena itu, penggunaan beberapa metrik memberikan informasi tambahan tentang beban yang dimiliki grup Auto Scaling Anda. Ini dapat membantu Amazon EC2 Auto Scaling membuat keputusan yang lebih tepat saat menentukan berapa banyak kapasitas yang akan ditambahkan ke grup Anda.

Tujuan dari Amazon EC2 Auto Scaling adalah untuk selalu memprioritaskan ketersediaan. Ini akan memperkecil grup Auto Scaling jika ada kebijakan pelacakan target yang siap untuk diskalakan. Ini akan menskalakan hanya jika semua kebijakan pelacakan target (dengan skala dalam porsi diaktifkan) siap untuk diskalakan.

Pilih metrik

Anda dapat membuat kebijakan penskalaan pelacakan target dengan metrik yang telah ditentukan sebelumnya atau metrik khusus. Metrik yang telah ditentukan sebelumnya memberi Anda akses yang lebih mudah ke metrik yang paling umum digunakan untuk penskalaan. Metrik khusus memungkinkan Anda menskalakan CloudWatch metrik lain yang tersedia termasuk metrik resolusi tinggi yang diterbitkan pada interval yang lebih halus dalam urutan beberapa detik. Anda dapat mempublikasikan metrik atau metrik resolusi tinggi Anda sendiri yang dipublikasikan oleh layanan lain AWS .

Untuk informasi selengkapnya tentang membuat kebijakan pelacakan target menggunakan metrik resolusi tinggi, lihatMembuat kebijakan pelacakan target menggunakan metrik resolusi tinggi untuk respons yang lebih cepat.

Pelacakan target mendukung metrik yang telah ditentukan berikut:

  • ASGAverageCPUUtilization—Penggunaan CPU rata-rata grup Auto Scaling.

  • ASGAverageNetworkIn—Rata-rata jumlah byte yang diterima di semua antarmuka jaringan oleh grup Auto Scaling.

  • ASGAverageNetworkOut—Rata-rata jumlah byte yang dikirim ke semua antarmuka jaringan oleh grup Auto Scaling.

  • ALBRequestCountPerTarget—Rata-rata jumlah permintaan Application Load Balancer per target untuk grup Auto Scaling Anda.

penting

Informasi berharga lainnya tentang metrik untuk pemanfaatan CPU, I/O jaringan, dan jumlah permintaan Application Load Balancer per target dapat ditemukan di Daftar metrik yang CloudWatch tersedia untuk topik instans Anda di Panduan Pengguna EC2 Amazon dan metrik untuk topik Application Load Balancer di Panduan Pengguna CloudWatch untuk Penyeimbang Beban Aplikasi, masing-masing.

Anda dapat memilih CloudWatch metrik lain yang tersedia atau metrik Anda sendiri CloudWatch dengan menentukan metrik khusus. Untuk contoh yang menentukan spesifikasi metrik yang disesuaikan untuk kebijakan penskalaan pelacakan target menggunakan AWS CLI, lihat. Contoh kebijakan penskalaan untuk AWS CLI

Ingatlah hal-hal berikut ini saat memilih metrik:

  • Kami menyarankan Anda hanya menggunakan metrik yang tersedia pada interval satu menit atau lebih rendah untuk membantu Anda menskalakan lebih cepat dalam menanggapi perubahan pemanfaatan. Metrik yang diterbitkan pada interval yang lebih rendah memungkinkan kebijakan pelacakan target mendeteksi dan merespons lebih cepat perubahan dalam pemanfaatan grup Auto Scaling Anda.

  • Jika Anda memilih metrik yang telah ditentukan sebelumnya yang diterbitkan oleh Amazon EC2, seperti pemanfaatan CPU, sebaiknya Anda mengaktifkan pemantauan terperinci. Secara default, semua EC2 metrik Amazon diterbitkan dalam interval lima menit, tetapi dapat dikonfigurasi ke interval yang lebih rendah dari satu menit dengan memungkinkan pemantauan terperinci. Untuk informasi tentang cara mengaktifkan pemantauan terperinci, lihatKonfigurasikan pemantauan untuk instans Auto Scaling.

  • Tidak semua metrik khusus berfungsi untuk pelacakan target. Metrik harus berupa metrik penggunaan yang valid dan menjelaskan seberapa sibuk instance. Nilai metrik harus meningkatkan atau menurunkan secara proporsional jumlah instance dalam grup Auto Scaling. Dengan demikian, data metrik dapat digunakan untuk meningkatkan atau menurunkan jumlah instance secara proporsional. Misalnya, pemanfaatan CPU dari grup Auto Scaling berfungsi (yaitu, CPUUtilization metrik EC2 Amazon dengan AutoScalingGroupName dimensi metrik), jika beban pada grup Auto Scaling didistribusikan di seluruh instance.

  • Metrik berikut tidak berfungsi untuk pelacakan target:

    • Jumlah permintaan yang diterima oleh load balancer di depan grup Auto Scaling (yaitu, metrik Elastic Load Balancing RequestCount). Jumlah permintaan yang diterima oleh load balancer tidak berubah berdasarkan penggunaan grup Auto Scaling.

    • Latensi permintaan penyeimbang muatan (yaitu, metrik Elastic Load Balancing Latency). Permintaan latensi dapat meningkat berdasarkan peningkatan pemanfaatan, tetapi tidak selalu berubah secara proporsional.

    • Metrik antrian CloudWatch Amazon SQS. ApproximateNumberOfMessagesVisible Jumlah pesan dalam antrian mungkin tidak berubah secara proporsional dengan ukuran grup Auto Scaling yang memproses pesan dari antrian. Namun, metrik kustom yang mengukur jumlah pesan dalam antrian per EC2 instance dalam grup Auto Scaling dapat berfungsi. Untuk informasi selengkapnya, lihat Kebijakan penskalaan berdasarkan Amazon SQS.

  • Untuk menggunakan ALBRequestCountPerTarget metrik, Anda harus menentukan ResourceLabel parameter untuk mengidentifikasi kelompok target penyeimbang beban yang terkait dengan metrik. Untuk contoh yang menentukan ResourceLabel parameter untuk kebijakan penskalaan pelacakan target menggunakan AWS CLI, lihat. Contoh kebijakan penskalaan untuk AWS CLI

  • Ketika metrik memancarkan nilai 0 nyata ke CloudWatch (misalnya,ALBRequestCountPerTarget), grup Auto Scaling dapat menskalakan ke 0 ketika tidak ada lalu lintas ke aplikasi Anda untuk jangka waktu yang berkelanjutan. Agar grup Auto Scaling Anda masuk ke 0 saat tidak ada permintaan yang dirutekan, kapasitas minimum grup harus disetel ke 0.

  • Alih-alih menerbitkan metrik baru untuk digunakan dalam kebijakan penskalaan, Anda dapat menggunakan matematika metrik untuk menggabungkan metrik yang ada. Untuk informasi selengkapnya, lihat Membuat kebijakan penskalaan pelacakan target menggunakan matematika metrik.

Tentukan nilai target

Saat membuat kebijakan penskalaan pelacakan target, Anda harus menentukan nilai target. Nilai target mewakili pemanfaatan atau throughput rata-rata optimal untuk grup Auto Scaling. Untuk menggunakan biaya sumber daya secara efisien, tetapkan nilai target setinggi mungkin dengan buffer yang masuk akal untuk peningkatan lalu lintas yang tidak terduga. Ketika aplikasi Anda diskalakan secara optimal untuk arus lalu lintas normal, nilai metrik sebenarnya harus berada pada atau tepat di bawah nilai target.

Ketika kebijakan penskalaan didasarkan pada throughput, seperti jumlah permintaan per target untuk Application Load Balancer, I/O jaringan, atau metrik hitungan lainnya, nilai target mewakili throughput rata-rata optimal dari satu instans, untuk periode satu menit.

Tentukan waktu pemanasan instance

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

Sementara kasus berada dalam periode pemanasan, kebijakan penskalaan Anda hanya akan diperkecil jika nilai metrik dari instans yang tidak memanas lebih besar daripada penggunaan target kebijakan.

Jika kelompok menskalakan lagi, contoh yang masih memanas dihitung sebagai bagian dari kapasitas yang diinginkan untuk aktivitas penskalaan berikutnya. Tujuannya adalah untuk terus (tetapi tidak berlebihan) menskalakan ke luar.

Sementara aktivitas scale-out sedang berlangsung, semua skala dalam aktivitas yang diprakarsai oleh kebijakan penskalaan diblokir hingga instans selesai memanas. Ketika contoh selesai pemanasan, jika skala dalam peristiwa 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.

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. Sebaiknya gunakan pemanasan instans default untuk mempermudah pembaruan semua kebijakan penskalaan saat waktu pemanasan berubah.

Pertimbangan

Pertimbangan berikut berlaku saat bekerja dengan kebijakan penskalaan pelacakan target:

  • Jangan membuat, mengedit, atau menghapus CloudWatch alarm yang digunakan dengan kebijakan penskalaan pelacakan target. Amazon EC2 Auto Scaling membuat dan mengelola CloudWatch alarm yang terkait dengan kebijakan penskalaan pelacakan target Anda dan dapat mengedit, mengganti, atau menghapusnya bila diperlukan untuk menyesuaikan pengalaman penskalaan untuk aplikasi Anda dan pola pemanfaatannya yang berubah.

  • Kebijakan penskalaan pelacakan target memprioritaskan ketersediaan selama periode tingkat lalu lintas yang berfluktuasi dengan menskalakan secara lebih bertahap ketika lalu lintas menurun. Jika Anda menginginkan kontrol yang lebih besar, kebijakan penskalaan langkah mungkin merupakan pilihan yang lebih baik. Anda dapat menonaktifkan sementara bagian scale-in dari kebijakan pelacakan target. Ini membantu mempertahankan jumlah minimum instance untuk penerapan yang berhasil.

  • Jika metrik kehilangan titik data, ini menyebabkan status CloudWatch alarm berubah menjadiINSUFFICIENT_DATA. Ketika ini terjadi, Amazon EC2 Auto Scaling tidak dapat menskalakan grup Anda hingga titik data baru ditemukan.

  • Jika metrik jarang dilaporkan oleh desain, matematika metrik dapat membantu. Misalnya, untuk menggunakan nilai terbaru, maka gunakan FILL(m1,REPEAT) fungsi di m1 mana metrik.

  • Anda mungkin melihat kesenjangan antara nilai target dan titik data metrik aktualnya. Ini karena kami bertindak konservatif dengan membulatkan ke atas atau ke bawah saat menentukan berapa banyak instance untuk ditambahkan atau dihapus. Hal ini mencegah kami menambahkan jumlah instance yang tidak mencukupi atau menghilangkan terlalu banyak instance. Namun, untuk grup Auto Scaling yang lebih kecil dengan lebih sedikit instance, pemanfaatan grup mungkin tampak jauh dari nilai target. Misalnya, katakanlah Anda menetapkan nilai target sebesar 50 persen untuk pemanfaatan CPU dan grup Auto Scaling Anda kemudian melampaui target. Kami dapat menentukan bahwa penambahan 1,5 instance akan mengurangi penggunaan CPU hingga mendekati 50 persen. Karena tidak mungkin untuk menambahkan 1,5 instance, kami membulatkan ke atas dan menambahkan dua instance. Hal ini dapat mengurangi penggunaan CPU menjadi nilai di bawah 50 persen, tetapi memastikan bahwa aplikasi Anda memiliki sumber daya yang cukup untuk mendukungnya. Demikian pula, jika kami menentukan bahwa menghilangkan 1,5 instance meningkatkan penggunaan CPU Anda hingga di atas 50 persen, kami hanya menghapus satu instance.

    Untuk grup Auto Scaling yang lebih besar dengan lebih banyak instance, penggunaan tersebut disebarkan pada sejumlah besar instance, di mana penambahan atau penghapusan instance menyebabkan lebih sedikit kesenjangan antara nilai target dan titik data metrik aktual.

  • Kebijakan penskalaan pelacakan target mengasumsikan bahwa harus meningkatkan skala grup Auto Scaling Anda ketika metrik yang telah ditentukan berada di atas nilai target. Anda tidak dapat menggunakan kebijakan penskalaan pelacakan target untuk memperkecil grup Auto Scaling jika metrik yang ditentukan berada di bawah nilai target.