View a markdown version of this page

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

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 Penskalaan Otomatis berdasarkan nilai metrik target. Ini secara otomatis menyesuaikan dengan pola penggunaan unik dari aplikasi individual Anda. Hal ini memungkinkan aplikasi Anda mempertahankan kinerja optimal dan pemanfaatan tinggi untuk instans EC2 Anda untuk efisiensi biaya yang lebih baik tanpa intervensi manual.

Dengan pelacakan target, Anda memilih metrik dan nilai target untuk mewakili tingkat pemanfaatan rata-rata atau throughput 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.

Sebagai contoh, katakanlah saat ini Anda memiliki aplikasi yang berjalan pada dua instance, dan Anda ingin pemanfaatan CPU grup Auto Scaling tetap di 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 menskalakan, atau meningkatkan kapasitas, ketika 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.

Kebijakan penskalaan pelacakan beberapa 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 berada di bawah grup Penskalaan Otomatis 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 meningkatkan skala grup Penskalaan Otomatis jika ada kebijakan pelacakan target yang siap untuk diperbesar. 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 atau metrik khusus. Metrik yang telah ditentukan memberi Anda akses yang lebih mudah ke metrik yang paling umum digunakan untuk penskalaan. Metrik khusus memungkinkan Anda untuk menskalakan CloudWatch metrik lain yang tersedia termasuk metrik resolusi tinggi yang dipublikasikan pada interval yang lebih baik dalam urutan beberapa detik. Anda dapat mempublikasikan metrik atau metrik resolusi tinggi Anda sendiri yang dipublikasikan AWS layanan lain.

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

Pelacakan target mendukung metrik yang telah ditentukan sebelumnya 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 Penyeimbang Beban Aplikasi per target untuk grup Penskalaan Otomatis Anda.

penting

Informasi berharga lainnya tentang metrik untuk pemanfaatan CPU, jaringan I/O, dan jumlah permintaan Penyeimbang Beban Aplikasi per target dapat ditemukan di topik Daftar CloudWatch metrik yang tersedia untuk instans Anda di Panduan Pengguna Amazon EC2 dan CloudWatch metrik untuk topik Penyeimbang B eban Aplikasi Anda di Panduan Pengguna untuk Penyeimbang B eban 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, lihatContoh 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 dipublikasikan pada interval yang lebih rendah memungkinkan kebijakan pelacakan target mendeteksi dan merespons lebih cepat perubahan dalam pemanfaatan grup Penskalaan Otomatis Anda.

  • Jika Anda memilih metrik yang telah ditentukan sebelumnya yang diterbitkan oleh Amazon EC2, seperti pemanfaatan CPU, sebaiknya aktifkan pemantauan terperinci. Secara default, semua metrik Amazon EC2 dipublikasikan dalam interval lima menit, tetapi dapat dikonfigurasi ke interval yang lebih rendah satu menit dengan mengaktifkan 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 pekerjaan grup Auto Scaling (yaitu, CPUUtilization metrik Amazon EC2 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 ApproximateNumberOfMessagesVisible antrian CloudWatch Amazon SQS. Jumlah pesan dalam antrian mungkin tidak berubah secara proporsional dengan ukuran grup Auto Scaling yang memproses pesan dari antrian. Namun, metrik khusus yang mengukur jumlah pesan dalam antrian per instans EC2 di grup Penskalaan Otomatis 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, lihatContoh kebijakan penskalaan untuk AWS CLI.

  • Ketika metrik memancarkan nilai 0 nyata ke CloudWatch (misalnya,ALBRequestCountPerTarget), grup Penskalaan Otomatis dapat menskalakan menjadi 0 ketika tidak ada lalu lintas ke aplikasi Anda untuk jangka waktu yang berkelanjutan. Agar grup Auto Scaling Anda dinaikkan ke 0 saat tidak ada permintaan yang dialihkan, 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 Penskalaan Otomatis. Untuk menggunakan sumber daya secara hemat biaya, tetapkan nilai target setinggi mungkin dengan buffer yang wajar untuk peningkatan lalu lintas yang tidak terduga. Ketika aplikasi Anda diskalakan secara optimal untuk aliran lalu lintas normal, nilai metrik aktual harus berada pada atau tepat di bawah nilai target.

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

Tentukan waktu pemanasan instance

Anda memiliki opsi untuk menentukan jumlah detik yang diperlukan untuk pemanasan instans 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 target pemanfaatan kebijakan.

Jika grup mengalami peningkatan skala lagi, instans yang masih melakukan pemanasan dihitung sebagai bagian dari kapasitas yang diinginkan untuk aktivitas penskalaan berikutnya. Tujuannya adalah untuk terus (tetapi tidak berlebihan) menskalakan ke luar.

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

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

Pertimbangan-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 meningkatkan skala lebih bertahap saat 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 instans minimum untuk penerapan yang berhasil.

  • Jika metrik kehilangan titik data, ini menyebabkan CloudWatch status alarm berubah menjadiINSUFFICIENT_DATA. Ketika ini terjadi, Amazon EC2 Auto Scaling tidak dapat menskalakan grup Anda sampai 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 where m1 is the metric.

  • 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, Anda menetapkan nilai target 50 persen untuk pemanfaatan CPU dan grup Auto Scaling Anda kemudian melebihi 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 menghapus instans 0,5 meningkatkan pemanfaatan CPU Anda hingga di atas 50 persen, kami akan memilih untuk tidak melakukan skala hingga metrik cukup rendah sehingga menurut kami penskalaan tidak akan menyebabkan osilasi.

    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 menskalakan grup Penskalaan Otomatis jika metrik yang ditentukan berada di bawah nilai target.