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 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. Auto Scaling Amazon EC2 membuat dan mengelola alarm yang memanggil peristiwa CloudWatch 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 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 Auto Scaling Amazon EC2 membuat keputusan yang lebih tepat saat menentukan berapa banyak kapasitas yang akan ditambahkan ke grup Anda.

Tujuan Auto Scaling Amazon EC2 adalah untuk selalu memprioritaskan ketersediaan. Ini akan memperkecil grup Auto Scaling jika ada kebijakan pelacakan target yang siap untuk diskalakan. Ini akan diskalakan hanya jika semua kebijakan pelacakan target (dengan bagian penskalaan 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:

  • ASGAverageCPUUtilization—Penggunaan CPU 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 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 Amazon EC2 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 Command Line Interface ()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 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. 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, 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 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 instans EC2 di grup Auto Scaling dapat berfungsi. Untuk informasi selengkapnya, lihat 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 Command Line Interface ()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 untuk Auto Scaling Amazon EC2 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 EC2 agregat dari grup Auto 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.

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.

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. Auto Scaling Amazon EC2 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 memenuhi 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, Auto Scaling Amazon EC2 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.

Buat kebijakan penskalaan pelacakan target

Untuk membuat kebijakan penskalaan pelacakan target untuk grup Auto Scaling Anda, gunakan salah satu metode berikut.

Sebelum memulai, konfirmasikan bahwa metrik pilihan Anda tersedia pada interval 1 menit (dibandingkan dengan interval 5 menit default metrik Amazon EC2).

Console
Untuk membuat kebijakan penskalaan pelacakan target untuk grup Auto Scaling baru
  1. Buka konsol Amazon EC2 di https://console.aws.amazon.com/ec2/, dan pilih Grup Auto Scaling dari panel navigasi.

  2. Pilih Buat grup Auto Scaling.

  3. Pada Langkah 1, 2, dan 3, pilih opsi yang diinginkan dan lanjutkan ke Langkah 4: Konfigurasikan ukuran grup dan kebijakan penskalaan.

  4. Di bawah Penskalaan, tentukan rentang yang ingin Anda skalakan dengan memperbarui kapasitas Min yang diinginkan dan kapasitas Maks yang diinginkan. Kedua pengaturan ini memungkinkan grup Auto Scaling Anda untuk menskalakan secara dinamis. Untuk informasi selengkapnya, lihat Tetapkan batas penskalaan untuk grup Auto Scaling Anda.

  5. Di bawah Penskalaan otomatis, pilih Kebijakan penskalaan pelacakan target.

  6. Untuk menentukan kebijakan, lakukan hal berikut:

    1. Tentukan nama untuk kebijakan tersebut.

    2. Untuk Jenis metrik, pilih metrik.

      Jika Anda memilih jumlah permintaan Application Load Balancer per target, pilih grup target di grup Target.

    3. Tentukan Nilai target untuk metrik.

    4. (Opsional) Untuk pemanasan Instance, perbarui nilai pemanasan instance sesuai kebutuhan.

    5. (Opsional) Pilih Nonaktifkan penurunan skala untuk membuat hanya kebijakan peningkatan skala. Ini memungkinkan Anda membuat kebijakan penurunan skala terpisah dari jenis yang berbeda jika diinginkan.

  7. Lanjutkan untuk membuat grup Auto Scaling. Kebijakan penskalaan Anda akan dibuat setelah grup Auto Scaling dibuat.

Untuk membuat kebijakan penskalaan pelacakan target untuk grup Auto Scaling yang ada
  1. Buka konsol Amazon EC2 di https://console.aws.amazon.com/ec2/, dan pilih Grup Auto Scaling dari panel navigasi.

  2. Pilih kotak centang di samping grup Auto Scaling Anda.

    Panel split terbuka di bagian bawah halaman.

  3. Verifikasi bahwa batas penskalaan ditetapkan dengan tepat. Misalnya, jika kapasitas yang diinginkan grup Anda sudah maksimal, Anda perlu menentukan maksimum baru untuk meningkatkan skala. Untuk informasi selengkapnya, lihat Tetapkan batas penskalaan untuk grup Auto Scaling Anda.

  4. Pada tab Penskalaan otomatis, dalam Kebijakan penskalaan dinamis, pilih Buat kebijakan penskalaan dinamis.

  5. Untuk menentukan kebijakan, lakukan hal berikut:

    1. Untuk jenis Kebijakan, pertahankan default penskalaan pelacakan Target.

    2. Tentukan nama untuk kebijakan tersebut.

    3. Untuk Jenis metrik, pilih metrik. Anda hanya dapat memilih satu jenis metrik. Untuk menggunakan lebih dari satu metrik, buat beberapa kebijakan.

      Jika Anda memilih jumlah permintaan Application Load Balancer per target, pilih grup target di grup Target.

    4. Tentukan Nilai target untuk metrik.

    5. (Opsional) Untuk pemanasan Instance, perbarui nilai pemanasan instance sesuai kebutuhan.

    6. (Opsional) Pilih Nonaktifkan penurunan skala untuk membuat hanya kebijakan peningkatan skala. Ini memungkinkan Anda membuat kebijakan penurunan skala terpisah dari jenis yang berbeda jika diinginkan.

  6. Pilih Buat.

AWS CLI

Untuk membuat kebijakan penskalaan pelacakan target, Anda dapat menggunakan contoh berikut untuk membantu Anda memulai. Ganti setiap placeholder masukan pengguna dengan informasi Anda sendiri.

Untuk membuat kebijakan penskalaan pelacakan target ()AWS CLI
  1. Gunakan cat perintah berikut untuk menyimpan nilai target untuk kebijakan penskalaan Anda dan spesifikasi metrik yang telah ditentukan sebelumnya dalam file JSON yang diberi nama config.json di direktori home Anda. Berikut ini adalah contoh konfigurasi pelacakan target yang menjaga pemanfaatan CPU rata-rata sebesar 50 persen.

    $ cat ~/config.json { "TargetValue": 50.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ASGAverageCPUUtilization" } }

    Untuk informasi selengkapnya, lihat PredefinedMetricSpesifikasi di Referensi API Auto Scaling Amazon EC2.

  2. Gunakan perintah put-scaling-policy, bersama dengan config.json file yang Anda buat pada langkah sebelumnya, untuk membuat kebijakan penskalaan Anda.

    aws autoscaling put-scaling-policy --policy-name cpu50-target-tracking-scaling-policy \ --auto-scaling-group-name my-asg --policy-type TargetTrackingScaling \ --target-tracking-configuration file://config.json

    Jika berhasil, perintah ini mengembalikan ARN dan nama dari dua CloudWatch alarm yang dibuat atas nama Anda.

    { "PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:228f02c2-c665-4bfd-aaac-8b04080bea3c:autoScalingGroupName/my-asg:policyName/cpu50-target-tracking-scaling-policy", "Alarms": [ { "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e", "AlarmName": "TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e" }, { "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2", "AlarmName": "TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2" } ] }