Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Kebijakan penskalaan prediktif lanjutan menggunakan metrik khusus untuk Amazon ECS
Anda dapat menggunakan metrik yang telah ditentukan atau kustom dalam kebijakan penskalaan prediktif. Metrik kustom berguna ketika metrik yang telah ditentukan sebelumnya, seperti, memoriCPU, dll) tidak cukup untuk menggambarkan pemuatan aplikasi Anda secara memadai.
Saat membuat kebijakan penskalaan prediktif dengan metrik khusus, Anda dapat menentukan metrik lain CloudWatch yang disediakan oleh. AWS Atau, Anda dapat menentukan metrik yang Anda tentukan dan publikasikan sendiri. Anda juga dapat menggunakan matematika metrik untuk menggabungkan dan mengubah metrik yang ada menjadi deret waktu baru yang AWS tidak dilacak secara otomatis. Contohnya adalah menggabungkan nilai dalam data Anda dengan menghitung jumlah atau rata-rata baru yang disebut agregasi. Data yang dihasilkan disebut agregat.
Bagian berikut berisi praktik terbaik dan contoh bagaimana membangun JSON struktur untuk kebijakan tersebut.
Prasyarat
Untuk menambahkan metrik kustom ke kebijakan penskalaan prediktif, Anda harus memiliki izin. cloudwatch:GetMetricData
Untuk menentukan metrik Anda sendiri, bukan metrik yang AWS disediakan, Anda harus terlebih dahulu mempublikasikan metrik Anda. CloudWatch Untuk informasi selengkapnya, lihat Menerbitkan metrik kustom di Panduan CloudWatch Pengguna Amazon.
Jika Anda mempublikasikan metrik Anda sendiri, pastikan untuk mempublikasikan titik data pada frekuensi minimum lima menit. Titik data diambil dari CloudWatch berdasarkan lamanya periode yang dibutuhkannya. Misalnya, spesifikasi metrik beban menggunakan metrik per jam untuk mengukur beban pada aplikasi Anda. CloudWatch menggunakan data metrik yang Anda publikasikan untuk memberikan nilai data tunggal untuk periode satu jam dengan menggabungkan semua titik data dengan stempel waktu yang termasuk dalam setiap periode satu jam.
Praktik terbaik
Praktik terbaik berikut dapat membantu Anda menggunakan metrik kustom secara lebih efektif:
-
Metrik yang paling berguna untuk spesifikasi metrik beban adalah metrik yang mewakili beban pada grup Auto Scaling secara keseluruhan.
-
Metrik yang paling berguna untuk spesifikasi metrik penskalaan untuk diskalakan adalah throughput rata-rata atau pemanfaatan per metrik tugas.
-
Pemanfaatan target harus sesuai dengan jenis metrik penskalaan. Untuk konfigurasi kebijakan yang menggunakan CPU pemanfaatan, ini adalah persentase target, misalnya.
-
Jika rekomendasi ini tidak diikuti, nilai future yang diperkirakan dari deret waktu mungkin akan salah. Untuk memvalidasi bahwa data sudah benar, Anda dapat melihat nilai yang diperkirakan di konsol. Atau, setelah Anda membuat kebijakan penskalaan prediktif, periksa
LoadForecast
objek yang dikembalikan oleh panggilan ke. GetPredictiveScalingForecastAPI -
Kami sangat menyarankan Anda mengonfigurasi penskalaan prediktif dalam mode hanya perkiraan sehingga Anda dapat mengevaluasi perkiraan sebelum penskalaan prediktif mulai aktif penskalaan.
Batasan
-
Anda dapat menanyakan titik data hingga 10 metrik dalam satu spesifikasi metrik.
-
Untuk tujuan batas ini, satu ekspresi dihitung sebagai satu metrik.
Memecahkan masalah kebijakan penskalaan prediktif dengan metrik khusus
Jika terjadi masalah saat menggunakan metrik kustom, sebaiknya Anda melakukan hal berikut:
-
Jika Anda mengalami masalah dalam penerapan biru/hijau saat menggunakan ekspresi penelusuran, pastikan Anda membuat ekspresi penelusuran yang mencari kecocokan sebagian dan bukan kecocokan persis. Anda juga harus memeriksa apakah kueri hanya menemukan grup Auto Scaling yang berjalan di aplikasi tertentu. Untuk informasi selengkapnya tentang sintaks ekspresi penelusuran, lihat sintaks ekspresi CloudWatch penelusuran di CloudWatch Panduan Pengguna Amazon.
-
put-scaling-policyPerintah memvalidasi ekspresi saat Anda membuat kebijakan penskalaan. Namun, ada kemungkinan bahwa perintah ini mungkin gagal mengidentifikasi penyebab pasti dari kesalahan yang terdeteksi. Untuk memperbaiki masalah, pecahkan masalah kesalahan yang Anda terima dalam respons dari permintaan ke perintah. get-metric-data Anda juga dapat memecahkan masalah ekspresi dari konsol. CloudWatch
-
Anda harus menentukan
false
forReturnData
ifMetricDataQueries
menentukan fungsi SEARCH () sendiri tanpa fungsi matematika seperti SUM (). Ini karena ekspresi pencarian mungkin mengembalikan beberapa deret waktu, dan spesifikasi metrik berdasarkan ekspresi hanya dapat mengembalikan satu deret waktu. -
Semua metrik yang terlibat dalam ekspresi pencarian harus memiliki resolusi yang sama.
Contoh kebijakan penskalaan prediktif yang menggabungkan metrik menggunakan metrik matematika ()AWS CLI
Terkadang, alih-alih menentukan metrik secara langsung, Anda mungkin perlu terlebih dahulu memproses datanya dengan cara tertentu. Misalnya, Anda mungkin memiliki aplikasi yang menarik pekerjaan dari SQS antrian Amazon, dan Anda mungkin ingin menggunakan jumlah item dalam antrian sebagai kriteria untuk penskalaan prediktif. Jumlah pesan dalam antrian tidak hanya menentukan jumlah instance yang Anda butuhkan. Oleh karena itu, lebih banyak pekerjaan diperlukan untuk membuat metrik yang dapat digunakan untuk menghitung backlog per instance.
Berikut ini adalah contoh kebijakan penskalaan prediktif untuk skenario ini. Ini menentukan metrik penskalaan dan pemuatan yang didasarkan pada SQS ApproximateNumberOfMessagesVisible
metrik Amazon, yang merupakan jumlah pesan yang tersedia untuk diambil dari antrian. Ini juga menggunakan GroupInServiceInstances
metrik EC2 Auto Scaling Amazon dan ekspresi matematika untuk menghitung backlog per instance untuk metrik penskalaan.
aws application-autoscaling put-scaling-policy --policy-name my-sqs-custom-metrics-policy
\
--policy-type PredictiveScaling \
--predictive-scaling-configuration file://config.json
--service-namespace ecs \
--resource-id service/MyCluster/test \
"MetricSpecifications": [
{
"TargetValue": 100
,
"CustomizedScalingMetricSpecification": {
"MetricDataQueries": [
{
"Label": "Get the queue size (the number of messages waiting to be processed)",
"Id": "queue_size
",
"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 running instances)",
"Id": "running_capacity
",
"MetricStat": {
"Metric": {
"MetricName": "GroupInServiceInstances
",
"Namespace": "AWS/AutoScaling
",
"Dimensions": [
{
"Name": "AutoScalingGroupName
",
"Value": "my-asg
"
}
]
},
"Stat": "Sum
"
},
"ReturnData": false
},
{
"Label": "Calculate the backlog per instance",
"Id": "scaling_metric
",
"Expression": "queue_size / running_capacity
",
"ReturnData": true
}
]
},
"CustomizedLoadMetricSpecification": {
"MetricDataQueries": [
{
"Id": "load_metric
",
"MetricStat": {
"Metric": {
"MetricName": "ApproximateNumberOfMessagesVisible
",
"Namespace": "AWS/SQS
",
"Dimensions": [
{
"Name": "QueueName
",
"Value": "my-queue
"
}
],
},
"Stat": "Sum
"
},
"ReturnData": true
}
]
}
}
]
}
Contoh mengembalikan kebijakanARN.
{
"PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:2f4f5048-d8a8-4d14-b13a-d1905620f345:autoScalingGroupName/my-asg:policyName/my-sqs-custom-metrics-policy",
"Alarms": []
}