Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengonfigurasi penskalaan berdasarkan Amazon SQS
Prosedur berikut menjelaskan cara mengonfigurasi penskalaan otomatis berdasarkan Amazon SQS. Anda akan mempelajari cara membuat metrik CloudWatch khusus, cara mengatur kebijakan pelacakan target menggunakan AWS CLI, dan cara menguji konfigurasi Anda.
Sebelum Anda mulai, pastikan bahwa Anda telah AWS CLI menginstal dan dikonfigurasi. Selain itu, Anda harus memiliki antrian Amazon SQS untuk digunakan. Tugas berikut mengasumsikan bahwa Anda sudah memiliki antrian (standar atau FIFO), grup Auto Scaling, dan instans EC2 yang menjalankan aplikasi yang menggunakan antrian.
Untuk informasi lebih lanjut tentang Amazon SQS, lihat Panduan Pengembang Amazon Simple Queue Service.
Tugas
Langkah 1: Buat metrik CloudWatch khusus
Metrik khusus ditentukan menggunakan nama metrik dan ruang nama pilihan Anda. Ruang nama untuk metrik khusus tidak dapat dimulai dengan. AWS/ Untuk informasi selengkapnya tentang menerbitkan metrik khusus, lihat topik Publikasikan metrik kustom di Panduan CloudWatch Pengguna Amazon.
Ikuti prosedur ini untuk membuat metrik khusus dengan membaca informasi terlebih dahulu dari AWS akun Anda. Kemudian, hitung backlog per metrik instance, seperti yang disarankan di bagian sebelumnya. Terakhir, publikasikan nomor ini dengan CloudWatch perincian 1 menit. Jika memungkinkan, kami sangat menyarankan agar Anda menskalakan metrik dengan granularitas 1 menit untuk memastikan respons yang lebih cepat terhadap perubahan beban sistem.
Untuk membuat metrik CloudWatch khusus (AWS CLI)
-
Gunakan perintah SQS
get-queue-untuk mendapatkan jumlah pesan yang menunggu dalam antrean (). ApproximateNumberOfMessagesaws sqs get-queue-attributes --queue-urlhttps://sqs.region.amazonaws.com/123456789/MyQueue\ --attribute-names ApproximateNumberOfMessages -
Gunakan perintah
describe-auto-scaling-groups untuk mendapatkan kapasitas berjalan grup, yang merupakan jumlah instance dalam status siklus hidup. InServicePerintah ini mengembalikan instance grup Auto Scaling beserta keadaan siklus aktifnya.aws autoscaling describe-auto-scaling-groups --auto-scaling-group-namesmy-asg -
Hitung backlog per instance dengan membagi perkiraan jumlah pesan yang tersedia untuk diambil dari antrian dengan kapasitas grup yang sedang berjalan.
-
Buat skrip yang berjalan setiap menit untuk mengambil backlog per nilai instance dan menerbitkannya ke metrik CloudWatch khusus. Saat Anda menerbitkan metrik kustom, Anda menentukan nama metrik, namespace, unit, nilai, dan dimensi nol atau lebih. Dimensi terdiri dari nama dimensi dan nilai dimensi.
Untuk menerbitkan metrik kustom Anda, ganti nilai placeholder
italicsdengan nama metrik pilihan Anda, nilai metrik, namespace (asalkan tidak dimulai dengan "AWS“), dan dimensi (opsional), lalu jalankan perintah put-metric-data berikut.aws cloudwatch put-metric-data --metric-nameMyBacklogPerInstance--namespaceMyNamespace\ --unit None --value20--dimensionsMyOptionalMetricDimensionName=MyOptionalMetricDimensionValue
Setelah aplikasi Anda memancarkan metrik yang diinginkan, data dikirim ke CloudWatch. Metrik terlihat di CloudWatch konsol. Anda dapat mengaksesnya dengan masuk ke Konsol Manajemen AWS dan menavigasi ke CloudWatch halaman. Lalu, lihat metrik dengan menavigasi ke halaman metrik atau dengan mencarinya menggunakan kotak pencarian. Untuk informasi tentang melihat metrik, lihat Melihat metrik yang tersedia di Panduan CloudWatch Pengguna Amazon.
Langkah 2: Buat kebijakan penskalaan pelacakan target
Metrik yang Anda buat sekarang dapat ditambahkan ke kebijakan penskalaan pelacakan target.
Untuk membuat kebijakan penskalaan pelacakan target (AWS CLI)
-
Gunakan
catperintah berikut untuk menyimpan nilai target kebijakan penskalaan Anda dan spesifikasi metrik yang disesuaikan dalam file JSON yang diberi namaconfig.jsondi direktori home Anda. Ganti masing-masinguser input placeholderdengan informasi Anda sendiri. UntukTargetValue, hitung backlog yang dapat diterima per metrik instance dan masukkan di sini. Untuk menghitung angka ini, tentukan nilai latensi normal dan bagi dengan waktu rata-rata yang diperlukan untuk memproses pesan, seperti yang dijelaskan di bagian sebelumnya.Jika Anda tidak menentukan dimensi apa pun untuk metrik yang Anda buat pada langkah 1, jangan sertakan dimensi apa pun dalam spesifikasi metrik yang disesuaikan.
$ cat ~/config.json { "TargetValue":100, "CustomizedMetricSpecification":{ "MetricName":"MyBacklogPerInstance", "Namespace":"MyNamespace", "Dimensions":[ { "Name":"MyOptionalMetricDimensionName", "Value":"MyOptionalMetricDimensionValue" } ], "Statistic":"Average", "Unit":"None" } } -
Gunakan perintah
put-scaling-policy, bersama dengan config.jsonfile yang Anda buat pada langkah sebelumnya, untuk membuat kebijakan penskalaan Anda.aws autoscaling put-scaling-policy --policy-namesqs100-target-tracking-scaling-policy\ --auto-scaling-group-namemy-asg--policy-type TargetTrackingScaling \ --target-tracking-configurationfile://~/config.jsonIni menciptakan dua alarm: satu untuk peningkatan skala dan satu untuk penurunan skala. Ini juga mengembalikan Nama Sumber Daya Amazon (ARN) dari kebijakan yang terdaftar CloudWatch, yang digunakan untuk memang CloudWatch gil penskalaan setiap kali ambang metrik melanggar.
Langkah 3: Menguji kebijakan penskalaan
Setelah penyiapan selesai, periksa apakah kebijakan penskalaan Anda berfungsi. Anda dapat mengujinya dengan meningkatkan jumlah pesan dalam antrean SQS Anda dan kemudian memverifikasi bahwa grup Auto Scaling Anda telah meluncurkan instance EC2 tambahan. Anda juga dapat mengujinya dengan mengurangi jumlah pesan dalam antrean SQS Anda dan kemudian memverifikasi bahwa grup Auto Scaling telah menghentikan instance EC2.
Untuk menguji fungsi peningkatan skala
-
Ikuti langkah-langkah di Membuat antrian standar Amazon SQS dan mengirim pesan atau Membuat antrian Amazon SQS FIFO dan mengirim pesan untuk menambahkan pesan ke antrian Anda. Pastikan Anda telah meningkatkan jumlah pesan di antrean sehingga backlog per instance metrik melebihi nilai target.
Diperlukan beberapa menit untuk perubahan Anda untuk memanggil alarm.
-
Gunakan perintah
describe-auto-scaling-groups untuk memverifikasi bahwa grup telah meluncurkan instance. aws autoscaling describe-auto-scaling-groups --auto-scaling-group-namemy-asg
Untuk menguji skala dalam fungsi
-
Ikuti langkah-langkah di Terima dan hapus pesan (konsol) untuk menghapus pesan dari antrian. Pastikan Anda telah mengurangi jumlah pesan di antrean sehingga backlog per instance metrik berada di bawah nilai target.
Diperlukan beberapa menit untuk perubahan Anda untuk memanggil alarm.
-
Gunakan perintah
describe-auto-scaling-groups untuk memverifikasi bahwa grup telah menghentikan instance. aws autoscaling describe-auto-scaling-groups --auto-scaling-group-namemy-asg