View a markdown version of this page

Membuat kebijakan penskalaan pelacakan target menggunakan matematika metrik - Amazon EC2 Auto Scaling

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

Membuat kebijakan penskalaan pelacakan target menggunakan matematika metrik

Menggunakan matematika metrik, Anda dapat menanyakan beberapa CloudWatch metrik dan menggunakan ekspresi matematika untuk membuat deret waktu baru berdasarkan metrik ini. Anda dapat memvisualisasikan deret waktu yang dihasilkan di CloudWatch konsol dan menambahkannya ke dasbor. Untuk informasi selengkapnya tentang matematika metrik, lihat Menggunakan matematika metrik di Panduan CloudWatch Pengguna Amazon.

Pertimbangan berikut berlaku untuk ekspresi matematika metrik:

  • Anda dapat menanyakan met CloudWatch rik apa pun yang tersedia. Setiap metrik adalah kombinasi unik dari nama metrik, namespace, dan nol atau lebih dimensi.

  • Anda dapat menggunakan operator aritmatika apa pun (+ - */^), fungsi statistik (seperti AVG atau SUM), atau fungsi lain yang CloudWatch mendukung.

  • Anda dapat menggunakan kedua metrik dan hasil ekspresi matematika lainnya dalam rumus ekspresi matematika.

  • Setiap ekspresi yang digunakan dalam spesifikasi metrik pada akhirnya harus mengembalikan satu deret waktu.

  • Anda dapat memverifikasi bahwa ekspresi matematika metrik valid dengan menggunakan CloudWatch konsol atau CloudWatch GetMetricData API.

Contoh: Backlog antrian Amazon SQS per instans

Untuk menghitung backlog antrian Amazon SQS per instans, ambil perkiraan jumlah pesan yang tersedia untuk diambil dari antrian dan bagi jumlah tersebut dengan kapasitas berjalan grup Auto Scaling, yang merupakan jumlah instance di negara bagian. InService Untuk informasi selengkapnya, lihat Kebijakan penskalaan berdasarkan Amazon SQS.

Logika untuk ekspresi adalah ini:

sum of (number of messages in the queue)/(number of InService instances)

Maka informasi CloudWatch metrik Anda adalah sebagai berikut.

ID CloudWatch metrik Statistik Periode
m1 ApproximateNumberOfMessagesVisible Jumlah 1 menit
m2 GroupInServiceInstances Rata-rata 1 menit

ID dan ekspresi matematika metrik Anda adalah sebagai berikut.

ID Ekspresi
e1 (m1)/(m2)

Diagram berikut menggambarkan arsitektur untuk metrik ini:

Amazon EC2 Auto Scaling menggunakan diagram arsitektur antrean
Untuk menggunakan matematika metrik ini untuk membuat kebijakan penskalaan pelacakan target (AWS CLI)
  1. Simpan ekspresi matematika metrik sebagai bagian dari spesifikasi metrik yang disesuaikan dalam file JSON bernamaconfig.json.

    Gunakan contoh berikut untuk membantu Anda memulai. Ganti masing-masing user input placeholder dengan informasi Anda sendiri.

    { "CustomizedMetricSpecification": { "Metrics": [ { "Label": "Get the queue size (the number of messages waiting to be processed)", "Id": "m1", "MetricStat": { "Metric": { "MetricName": "ApproximateNumberOfMessagesVisible", "Namespace": "AWS/SQS", "Dimensions": [ { "Name": "QueueName", "Value": "my-queue" } ] }, "Stat": "Sum" }, "ReturnData": false }, { "Label": "Get the group size (the number of InService instances)", "Id": "m2", "MetricStat": { "Metric": { "MetricName": "GroupInServiceInstances", "Namespace": "AWS/AutoScaling", "Dimensions": [ { "Name": "AutoScalingGroupName", "Value": "my-asg" } ] }, "Stat": "Average" }, "ReturnData": false }, { "Label": "Calculate the backlog per instance", "Id": "e1", "Expression": "m1 / m2", "ReturnData": true } ] }, "TargetValue": 100 }

    Untuk informasi lebih lanjut, lihat TargetTrackingConfiguration dalam Referensi API Amazon EC2 Auto Scaling.

    catatan

    Berikut ini adalah beberapa sumber daya tambahan yang dapat membantu Anda menemukan nama metrik, ruang nama, dimensi, dan statistik untuk CloudWatch metrik:

    • Untuk informasi tentang metrik yang tersedia untuk AWS layanan, lihat AWS layanan yang menerbitkan CloudWatch metrik di Panduan CloudWatch Pengguna Amazon.

    • Untuk mendapatkan nama metrik yang tepat, namespace, dan dimensi (jika berlaku) untuk CloudWatch metrik dengan AWS CLI, lihat list -metrics.

  2. Untuk membuat kebijakan ini, jalankan perintah put-scaling-policy menggunakan file JSON sebagai input, seperti yang ditunjukkan dalam contoh berikut.

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

    Jika berhasil, perintah ini mengembalikan Nama Sumber Daya Amazon (ARN) kebijakan dan ARN 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/sqs-backlog-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" } ] }
    catatan

    Jika perintah ini menimbulkan kesalahan, pastikan Anda telah memperbarui secara AWS CLI lokal ke versi terbaru.