Cara kerja penskalaan pelacakan target untuk Application Auto Scaling - Application Auto Scaling

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

Cara kerja penskalaan pelacakan target untuk Application Auto Scaling

Topik ini menjelaskan cara kerja penskalaan pelacakan target dan memperkenalkan elemen kunci dari kebijakan penskalaan pelacakan target.

Cara kerjanya

Untuk menggunakan penskalaan pelacakan target, Anda membuat kebijakan penskalaan pelacakan target dan menentukan hal berikut:

  • Metrik CloudWatch —Metrik untuk dilacak, seperti pemanfaatan CPU rata-rata atau jumlah permintaan rata-rata per target.

  • Nilai target — Nilai target untuk metrik, seperti 50 persen pemanfaatan CPU atau 1000 permintaan per target per menit.

Application Auto Scaling membuat dan mengelola CloudWatch alarm yang menjalankan kebijakan penskalaan dan menghitung penyesuaian penskalaan berdasarkan metrik dan nilai target. Ini menambah dan menghapus kapasitas seperti yang diperlukan untuk menjaga metrik pada, atau mendekati, nilai target yang ditentukan.

Ketika metrik berada di atas nilai target, Application Auto Scaling keluar dengan menambahkan kapasitas untuk mengurangi perbedaan antara nilai metrik dan nilai target. Ketika metrik berada di bawah nilai target, Application Auto Scaling masuk dengan menghapus kapasitas.

Aktivitas penskalaan dilakukan dengan periode cooldown di antara mereka untuk mencegah fluktuasi kapasitas yang cepat. Anda dapat secara opsional mengonfigurasi periode cooldown untuk kebijakan penskalaan Anda.

Diagram berikut menunjukkan gambaran umum tentang cara kerja kebijakan penskalaan pelacakan target saat penyiapan selesai.

Diagram ikhtisar kebijakan penskalaan pelacakan target

Perhatikan bahwa kebijakan penskalaan pelacakan target lebih agresif dalam menambah kapasitas saat pemanfaatan meningkat daripada menghilangkan kapasitas saat pemanfaatan menurun. Misalnya, jika metrik yang ditentukan kebijakan mencapai nilai targetnya, kebijakan tersebut mengasumsikan bahwa aplikasi Anda sudah banyak dimuat. Jadi metrik akan merespons dengan menambahkan kapasitas proporsional terhadap nilai metrik secepat mungkin. Semakin tinggi metrik, semakin banyak kapasitas yang ditambahkan.

Ketika metrik berada di bawah nilai target, kebijakan “mengharapkan” bahwa pemanfaatan pada akhirnya akan meningkat lagi. Dalam hal ini, memperlambat penskalaan dengan menghapus kapasitas hanya ketika pemanfaatan melewati ambang batas yang cukup jauh di bawah nilai target (biasanya lebih dari 10% lebih rendah) agar pemanfaatan dianggap melambat. Tujuan dari perilaku yang lebih konservatif ini adalah untuk memastikan bahwa menghapus kapasitas hanya terjadi ketika aplikasi tidak lagi mengalami permintaan pada tingkat yang sama tinggi seperti sebelumnya.

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 sebelumnya. Metrik yang telah ditentukan sebelumnya untuk kebijakan penskalaan pelacakan target

Ingatlah hal-hal berikut ini saat memilih metrik:

  • Tidak semua metrik khusus berfungsi untuk pelacakan target. Metrik harus berupa metrik pemanfaatan yang valid dan menjelaskan seberapa sibuk target yang dapat diskalakan. Nilai metrik harus meningkat atau menurun secara proporsional sesuai kapasitas target yang dapat diskalakan, sehingga data metrik dapat digunakan untuk skala proporsional pada target yang dapat diskalakan.

  • Untuk menggunakan metrik ALBRequestCountPerTarget, Anda harus menentukan parameter ResourceLabel guna mengidentifikasi grup target yang terkait dengan metrik.

  • Ketika metrik memancarkan nilai 0 nyata ke CloudWatch (misalnya,ALBRequestCountPerTarget), Application Auto Scaling dapat menskalakan ke 0 ketika tidak ada lalu lintas ke aplikasi Anda untuk jangka waktu yang berkelanjutan. Untuk memiliki skala target yang dapat diskalakan Anda ke 0 ketika tidak ada permintaan yang dirutekan, kapasitas minimum target yang dapat diskalakan harus diatur 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 untuk Application Auto Scaling menggunakan matematika metrik.

  • Untuk melihat apakah layanan yang Anda gunakan mendukung penetapan metrik kustom di konsol layanan, lihat dokumentasi untuk layanan tersebut.

  • Kami menyarankan Anda 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 metrik Amazon EC2 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.

Tentukan nilai target

Saat membuat kebijakan penskalaan pelacakan target, Anda harus menentukan nilai target. Nilai target mewakili pemanfaatan atau throughput rata-rata optimal untuk aplikasi Anda. 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.

Jika 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 entitas (seperti target tunggal grup target Application Load Balancer Anda), selama satu menit.

Tentukan periode cooldown

Anda dapat secara opsional menentukan periode cooldown dalam kebijakan penskalaan pelacakan target Anda.

Periode cooldown menentukan jumlah waktu kebijakan penskalaan menunggu aktivitas penskalaan sebelumnya berlaku.

Ada dua jenis periode cooldown:

  • Dengan periode jeda pakai untuk pengecilan skala, tujuannya adalah untuk menskalakan secara terus-menerus (tetapi tidak berlebihan). Setelah Application Auto Scaling berhasil menskalakan menggunakan kebijakan penskalaan, Application Auto Scaling mulai menghitung waktu cooldown. Kebijakan penskalaan tidak akan meningkatkan kapasitas yang diinginkan lagi kecuali jika skala keluar yang lebih besar dipicu atau periode cooldown berakhir. Selama periode pendinginan penskalaan keluar berlaku, kapasitas yang ditambahkan dengan cara memulai aktivitas penskalaan keluar dihitung sebagai bagian dari kapasitas yang diinginkan untuk aktivitas penskalaan keluar berikutnya.

  • Dengan periode cooldown scale-in, tujuannya adalah untuk menskalakan secara konservatif untuk melindungi ketersediaan aplikasi Anda, sehingga aktivitas scale-in diblokir hingga periode cooldown scale-in berakhir. Namun, jika alarm lain memicu aktivitas pengecilan skala selama periode jeda pakai untuk pembesaran skala, Application Auto Scaling akan langsung memperkecil skala target. Dalam hal ini, periode cooldown scale-in berhenti dan tidak selesai.

Setiap periode jeda pakai diukur dalam hitungan detik dan hanya berlaku untuk aktivitas penskalaan terkait kebijakan. Selama periode jeda pakai, ketika tindakan terjadwal dimulai pada waktu yang dijadwalkan, tindakan ini dapat segera memicu aktivitas penskalaan tanpa menunggu periode jeda pakai berakhir.

Anda dapat memulai dengan nilai default, yang dapat diatur kemudian. Misalnya, Anda mungkin perlu meningkatkan periode jeda pakai untuk mencegah kebijakan penskalaan pelacakan target Anda menjadi terlalu agresif terhadap perubahan yang terjadi dalam periode waktu singkat.

Nilai default

Application Auto Scaling memberikan nilai default 600 untuk grup ElastiCache replikasi dan nilai default 300 untuk target skalabel berikut:

  • AppStream 2.0 armada

  • Klaster DB Aurora

  • Layanan ECS

  • Cluster Neptunus

  • SageMaker varian titik akhir

  • SageMaker komponen inferensi

  • SageMaker Konkurensi yang disediakan tanpa server

  • Armada Spot

  • Kolam renang WorkSpaces

  • Sumber daya khusus

Untuk semua target skalabel lainnya, nilai defaultnya adalah 0 atau null:

  • Klasifikasi dokumen dan titik akhir pengenal entitas Amazon Comprehend

  • Tabel DynamoDB dan indeks sekunder global

  • Tabel Amazon Keyspaces

  • Konkurensi terprovisi Lambda

  • Penyimpanan broker Amazon MSK

Nilai nol diperlakukan sama dengan nilai nol saat Application Auto Scaling mengevaluasi periode cooldown.

Anda dapat memperbarui salah satu nilai default, termasuk nilai nol, untuk mengatur periode cooldown Anda sendiri.

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. Application Auto Scaling membuat dan mengelola CloudWatch alarm yang terkait dengan kebijakan penskalaan pelacakan target Anda dan menghapusnya saat tidak diperlukan lagi.

  • Jika metrik kehilangan titik data, ini menyebabkan status CloudWatch alarm berubah menjadiINSUFFICIENT_DATA. Ketika ini terjadi, Application Auto Scaling tidak dapat menskalakan target Anda yang dapat diskalakan hingga titik data baru ditemukan. Untuk informasi selengkapnya, lihat Mengonfigurasi cara CloudWatch alarm menangani data yang hilang di CloudWatch Panduan Pengguna Amazon.

  • 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 aktual. Ini karena Application Auto Scaling selalu bertindak konservatif dengan membulatkan ke atas atau ke bawah saat menentukan berapa banyak kapasitas yang dapat ditambahkan atau dihapus. Hal ini mencegah penambahan kapasitas yang tidak memadai atau menghilangkan kapasitas yang terlalu banyak. Namun, untuk target yang dapat diskalakan dengan kapasitas kecil, titik data metrik aktual mungkin tampak jauh dari nilai target.

    Untuk target yang dapat diskalakan dengan kapasitas yang lebih besar, menambah atau menghilangkan kapasitas menyebabkan berkurangnya kesenjangan antara nilai target dan titik data metrik aktual.

  • Kebijakan penskalaan pelacakan target mengasumsikan bahwa penskalaan ke luar harus dilakukan saat metrik yang ditentukan berada di atas nilai target. Anda tidak dapat menggunakan kebijakan penskalaan pelacakan target untuk menskalakan ke luar jika metrik yang ditentukan berada di bawah nilai target.

Beberapa kebijakan penskalaan

Anda dapat memiliki beberapa kebijakan penskalaan pelacakan target untuk target yang dapat diskalakan, asalkan setiapnya menggunakan metrik yang berbeda. Tujuan Application Auto Scaling adalah untuk selalu memprioritaskan ketersediaan, sehingga perilakunya berbeda tergantung pada apakah kebijakan pelacakan target siap untuk diperkecil atau diperbesar. Hal ini akan memperkecil skala target yang dapat diskala jika salah satu kebijakan pelacakan target siap untuk diperkecil skalanya, tetapi hanya akan memperbesar skala jika semua kebijakan pelacakan target (dengan penskalaan dalam porsi aktif) siap untuk diperbesar skalanya.

Jika beberapa kebijakan penskalaan menginstruksikan target yang dapat diskalakan untuk skala keluar atau masuk pada saat yang sama, Application Auto Scaling menskalakan berdasarkan kebijakan yang menyediakan kapasitas terbesar untuk skala masuk dan skala keluar. Ini memberikan fleksibilitas yang lebih besar untuk mencakup beberapa skenario dan memastikan bahwa selalu ada kapasitas yang cukup untuk memproses beban kerja Anda.

Anda dapat menonaktifkan bagian penskalaan dari kebijakan penskalaan pelacakan target untuk menggunakan metode penskalaan yang berbeda dari yang Anda gunakan untuk skala keluar. Misalnya, Anda dapat menggunakan kebijakan penskalaan langkah untuk memperbesar skala saat menggunakan kebijakan penskalaan pelacakan target untuk memperkecil skala.

Namun, kami menyarankan untuk berhati-hati ketika menggunakan kebijakan penskalaan pelacakan target dengan kebijakan penskalaan langkah karena konflik antarkebijakan ini dapat menyebabkan hal yang tidak diinginkan. Misalnya, jika kebijakan penskalaan langkah memulai aktivitas pembesaran skala sebelum kebijakan pelacakan target siap untuk memulai pembesaran skala, aktivitas pembesaran skala tidak akan diblokir. Setelah aktivitas pembesaran skala selesai, kebijakan pelacakan target dapat menginstruksikan target yang dapat diskalakan untuk kembali diperkecil skalanya.

Untuk muatan kerja yang bersifat siklus, Anda juga memiliki opsi untuk mengotomatisasi perubahan kapasitas pada jadwal menggunakan penskalaan terjadwal. Untuk setiap tindakan terjadwal, nilai kapasitas minimum dan maksimum yang baru dapat ditentukan. Nilai ini membentuk batasan kebijakan penskalaan. Kombinasi penskalaan terjadwal dan penskalaan pelacakan target dapat membantu mengurangi dampak peningkatan tajam pada tingkat pemanfaatan, ketika kapasitas diperlukan dengan segera.

Perintah yang umum digunakan untuk penskalaan pembuatan kebijakan, manajemen, dan penghapusan

Perintah yang umum digunakan untuk bekerja dengan kebijakan penskalaan meliputi:

  • register-scalable-targetuntuk mendaftarkan AWS atau menyesuaikan sumber daya sebagai target yang dapat diskalakan (sumber daya yang dapat diskalakan oleh Application Auto Scaling), dan untuk menangguhkan dan melanjutkan penskalaan.

  • put-scaling-policyuntuk menambah atau memodifikasi kebijakan penskalaan untuk target skalabel yang ada.

  • describe-scaling-activitiesuntuk mengembalikan informasi tentang aktivitas penskalaan di suatu AWS Wilayah.

  • describe-scaling-policiesuntuk mengembalikan informasi tentang kebijakan penskalaan di AWS Wilayah.

  • delete-scaling-policy untuk menghapus kebijakan penskalaan.

Untuk informasi tentang membuat kebijakan penskalaan pelacakan target untuk grup Auto Scaling, lihat Kebijakan penskalaan pelacakan target untuk Penskalaan Otomatis Amazon EC2 di Panduan Pengguna Penskalaan Otomatis Amazon EC2.

Batasan

Berikut ini adalah keterbatasan saat menggunakan kebijakan penskalaan pelacakan target:

  • Target yang dapat diskalakan tidak bisa menjadi klaster Amazon EMR. Kebijakan penskalaan pelacakan target untuk Amazon EMR tidak didukung.

  • Ketika sebuah klaster Amazon MSK adalah target yang dapat diskalakan, skala di dinonaktifkan dan tidak dapat diaktifkan.

  • Anda tidak dapat menggunakan operasi RegisterScalableTarget atau PutScalingPolicy API untuk memperbarui rencana AWS Auto Scaling penskalaan.

  • Akses konsol untuk melihat, menambah, memperbarui, atau menghapus kebijakan penskalaan pelacakan target pada sumber daya yang dapat diskalakan bergantung pada sumber daya yang Anda gunakan. Untuk informasi selengkapnya, lihat Layanan AWS yang dapat Anda gunakan dengan Application Auto Scaling.