Kebijakan penskalaan pelacakan target 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.

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. Hal ini memungkinkan aplikasi Anda untuk mempertahankan kinerja optimal dan efisiensi biaya 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 CPU pemanfaatan 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 CPU pemanfaatan rata-rata 50 persen. Kemudian, grup Auto Scaling Anda akan meningkatkan skala, atau meningkatkan kapasitas, jika CPU melebihi 50 persen untuk menangani peningkatan beban. Ini akan meningkatkan, 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.

Saat membuat kebijakan penskalaan pelacakan target dengan tipe metrik yang telah ditentukan sebelumnya, Anda memilih satu metrik dari daftar metrik yang telah ditentukan berikut:

  • ASGAverageCPUUtilizationCPU—Pemanfaatan rata-rata grup Auto Scaling.

  • ASGAverageNetworkInRata-rata jumlah byte yang diterima oleh satu instance pada semua antarmuka jaringan.

  • ASGAverageNetworkOutRata-rata jumlah byte yang dikirim keluar dari satu instance pada semua antarmuka jaringan.

  • ALBRequestCountPerTarget—Rata-rata jumlah permintaan Application Load Balancer per target.

penting

Informasi berharga lainnya tentang metrik untuk CPU pemanfaatan, 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 Anda 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. Anda harus menggunakan AWS CLI atau SDK untuk membuat kebijakan pelacakan target dengan spesifikasi metrik yang disesuaikan. 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 untuk membantu Anda menskalakan lebih cepat dalam menanggapi perubahan pemanfaatan. Pelacakan target akan mengevaluasi metrik yang dikumpulkan pada perincian satu menit untuk semua metrik dan metrik khusus yang telah ditentukan sebelumnya, tetapi metrik yang mendasarinya mungkin lebih jarang mempublikasikan data. Misalnya, semua EC2 metrik Amazon dikirim dalam interval lima menit secara default, tetapi dapat dikonfigurasi hingga satu menit (dikenal sebagai pemantauan terperinci). Pilihan ini terserah layanan individu. Sebagian besar mencoba menggunakan interval sekecil mungkin. Untuk informasi tentang 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, CPU pemanfaatan 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 SQS ApproximateNumberOfMessagesVisible antrian CloudWatch Amazon. 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 Buat 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 menghapusnya saat tidak diperlukan lagi.

  • Kebijakan penskalaan pelacakan target memprioritaskan ketersediaan selama periode tingkat lalu lintas yang berfluktuasi dengan menskalakan lebih bertahap ketika lalu lintas menurun. Jika ingin grup Auto Scaling segera masuk saat beban kerja selesai, Anda dapat menonaktifkan bagian penskalaan kebijakan. Ini memberi Anda fleksibilitas untuk menggunakan metode scale-in yang paling sesuai dengan kebutuhan Anda saat pemanfaatannya rendah. Untuk memastikan bahwa skala terjadi secepat mungkin, sebaiknya jangan menggunakan kebijakan penskalaan sederhana untuk mencegah periode cooldown ditambahkan.

  • 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 50 persen untuk CPU pemanfaatan dan grup Auto Scaling Anda kemudian melebihi target. Kami mungkin menentukan bahwa menambahkan 1,5 instance akan mengurangi CPU pemanfaatan hingga mendekati 50 persen. Karena tidak mungkin untuk menambahkan 1,5 instance, kami membulatkan ke atas dan menambahkan dua instance. Ini mungkin mengurangi CPU pemanfaatan ke nilai di bawah 50 persen, tetapi ini memastikan bahwa aplikasi Anda memiliki sumber daya yang cukup untuk mendukungnya. Demikian pula, jika kami memutuskan bahwa menghapus 1,5 instance meningkatkan CPU penggunaan 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.