View a markdown version of this page

Penskalaan otomatis lebih cepat dengan metrik resolusi tinggi - Amazon Elastic Container Service

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

Penskalaan otomatis lebih cepat dengan metrik resolusi tinggi

Secara default, Amazon ECS menerbitkan CPUUtilization dan MemoryUtilization metrik pada resolusi 60 detik. Anda dapat mengonfigurasi resolusi 20 detik untuk mendorong penskalaan otomatis layanan yang lebih cepat.

Metrik standar resolusi tinggi berikut tersedia untuk kebijakan penskalaan pelacakan target:

PredefinedMetricType Deskripsi
ECSServiceAverageCPUUtilizationHighResolution Pemanfaatan CPU rata-rata pada resolusi 20 detik
ECSServiceAverageMemoryUtilizationHighResolution Pemanfaatan memori rata-rata pada resolusi 20 detik

Buat layanan baru dengan metrik resolusi tinggi untuk penskalaan otomatis yang lebih cepat

  1. Pada halaman Cluster, pilih cluster tempat Anda ingin membuat layanan.

  2. Di bagian Layanan, pilih Buat.

  3. Di formulir Buat Layanan, di bagian Konfigurasi pem antauan, pilih Tambahkan konfigurasi metrik.

  4. Untuk Nama metrik, pilih metrik yang ingin Anda kumpulkan pada resolusi tinggi. Pilih CPUUtilization atauMemoryUtilization.

  5. Untuk Resolusi (detik), pilih 20.

  6. (Opsional) Untuk menambahkan kedua metrik pada resolusi tinggi, pilih Tambah konfigurasi metrik lagi dan ulangi dua langkah sebelumnya untuk metrik lainnya.

  7. Di bagian Penskalaan otomatis layanan, pilih Gunakan penskalaan otomatis layanan.

  8. Untuk Jumlah tugas minimum, masukkan batas bawah jumlah tugas untuk penskalaan otomatis layanan yang akan digunakan. Jumlah yang diinginkan tidak akan turun di bawah hitungan ini.

  9. Untuk Jumlah tugas maksimum, masukkan batas atas jumlah tugas untuk penskalaan otomatis layanan yang akan digunakan. Jumlah yang diinginkan tidak akan melebihi hitungan ini.

  10. Untuk Jenis kebijakan penskalaan, pilih Pelacakan target.

  11. Untuk Jenis metrik, pilih metrik resolusi tinggi yang sesuai. Misalnya, pilih ECSServiceAverageCPUUtilizationHighResolution apakah Anda mengonfigurasi CPUUtilization pada resolusi 20 detik, atau ECSServiceAverageMemoryUtilizationHighResolution jika Anda mengonfigurasi MemoryUtilization pada resolusi 20 detik.

  12. Untuk Nilai target, masukkan persentase pemanfaatan target. Penskalaan otomatis layanan meningkatkan kapasitas Anda hingga pemanfaatan rata-rata mencapai nilai target, atau hingga mencapai jumlah tugas maksimum yang Anda tentukan.

  13. Di bawah Pengaturan Tam bahan, konfigurasikan yang berikut:

    1. Untuk periode Scale-out cooldown, masukkan jumlah waktu dalam detik untuk menunggu aktivitas scale-out sebelumnya berlaku.

    2. Untuk periode Scale-in cooldown, masukkan jumlah waktu dalam detik setelah aktivitas scale-in selesai sebelum aktivitas scale-in lainnya dapat dimulai.

  14. Pilih Buat untuk membuat layanan.

  1. Buat layanan dengan konfigurasi pemantauan menggunakan perintah create-service.

    aws ecs create-service --region us-east-1 \ --cluster my-cluster \ --service-name my-service \ --task-definition my-app:1 \ --desired-count 2 \ --monitoring "metricConfigurations=[{metricNames=[CPUUtilization,MemoryUtilization],resolutionSeconds=20}]"
  2. Daftarkan layanan sebagai target yang dapat diskalakan menggunakan perintah register-scal able-target.

    aws application-autoscaling register-scalable-target \ --service-namespace ecs \ --resource-id service/my-cluster/my-service \ --scalable-dimension ecs:service:DesiredCount \ --min-capacity 1 \ --max-capacity 10 \ --region us-east-1
  3. Buat kebijakan penskalaan pelacakan target dengan metrik standar resolusi tinggi menggunakan perintah put-scaling- policy.

    aws application-autoscaling put-scaling-policy \ --service-namespace ecs \ --resource-id service/my-cluster/my-service \ --scalable-dimension ecs:service:DesiredCount \ --policy-name my-highres-cpu-policy \ --policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configuration '{ "TargetValue": 50.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ECSServiceAverageCPUUtilizationHighResolution" } }' \ --region us-east-1
  4. Verifikasi kebijakan dibuat menggunakan perintah describe-scal ing-policies.

    aws application-autoscaling describe-scaling-policies \ --service-namespace ecs \ --resource-id service/my-cluster/my-service \ --scalable-dimension ecs:service:DesiredCount \ --region us-east-1

Memperbarui layanan yang ada untuk menggunakan metrik resolusi tinggi untuk penskalaan otomatis yang lebih cepat

Memperbarui layanan yang ada untuk menggunakan metrik resolusi tinggi untuk penskalaan otomatis layanan yang lebih cepat adalah proses dua langkah. Anda harus terlebih dahulu memperbarui resolusi pemantauan, yang memicu penyebaran layanan. Setelah penerapan selesai dengan sukses dan semua tugas memancarkan metrik pada resolusi 20 detik, Anda kemudian dapat mengonfigurasi kebijakan penskalaan resolusi tinggi.

penting

Jika layanan Anda sebelumnya menggunakan resolusi metrik 60 detik, metrik resolusi tinggi untuk kebijakan penskalaan hanya akan tersedia di konsol Amazon ECS setelah Anda memperbarui layanan untuk menggunakan resolusi metrik 20 detik dan penerapan layanan selesai.

Langkah 1: Perbarui resolusi pemantauan

  1. Pada halaman Cluster, pilih cluster yang berisi layanan yang ingin Anda perbarui.

  2. Di bagian Layanan, pilih layanan dan pilih Per barui.

  3. Di formulir Layanan Pembaruan, di bagian Konfigurasi Pem antauan, pilih Tambahkan konfigurasi metrik.

  4. Untuk Nama metrik, pilih metrik yang ingin Anda kumpulkan pada resolusi tinggi. Pilih CPUUtilization atauMemoryUtilization.

  5. Untuk Resolusi (detik), pilih 20.

  6. (Opsional) Untuk menambahkan kedua metrik pada resolusi tinggi, pilih Tambah konfigurasi metrik lagi dan ulangi dua langkah sebelumnya untuk metrik lainnya.

  7. Pilih Perbarui untuk mengirimkan perubahan. Ini memicu penyebaran layanan.

  8. Tunggu hingga penerapan selesai. Anda dapat memantau kemajuan di halaman detail layanan di tab Deployments.

    catatan

    Opsi metrik penskalaan resolusi tinggi berwarna abu-abu di bagian penskalaan otomatis layanan hingga penerapan berhasil dan semua tugas dipancarkan pada resolusi 20 detik.

Langkah 2: Konfigurasikan kebijakan penskalaan resolusi tinggi

Setelah penerapan selesai, konfigurasikan kebijakan penskalaan menggunakan salah satu metode berikut:

Opsi A: Halaman detail layanan
  1. Pada halaman detail layanan, pilih tab Service auto scaling.

  2. Pilih Buat kebijakan penskalaan (atau edit kebijakan yang ada).

  3. Untuk Jenis kebijakan penskalaan, pilih Pelacakan target.

  4. Untuk Jenis metrik, pilih metrik resolusi tinggi. Misalnya, ECSServiceAverageCPUUtilizationHighResolution atau ECSServiceAverageMemoryUtilizationHighResolution.

  5. Untuk Nilai target, masukkan persentase pemanfaatan target.

  6. Di bawah Pengaturan Tam bahan, konfigurasikan yang berikut:

    1. Untuk periode Scale-out cooldown, masukkan jumlah waktu dalam detik untuk menunggu aktivitas scale-out sebelumnya berlaku.

    2. Untuk periode Scale-in cooldown, masukkan jumlah waktu dalam detik setelah aktivitas scale-in selesai sebelum aktivitas scale-in lainnya dapat dimulai.

  7. Pilih Buat kebijakan penskalaan.

Opsi B: Perbarui formulir Layanan
  1. Pada halaman detail layanan, pilih Per barui.

  2. Di bagian Penskalaan otomatis layanan, pilih Gunakan penskalaan otomatis layanan (jika belum diaktifkan).

  3. Untuk Jumlah tugas minimum, masukkan batas bawah.

  4. Untuk Jumlah tugas maksimum, masukkan batas atas.

  5. Untuk Jenis kebijakan penskalaan, pilih Pelacakan target.

  6. Untuk jenis metrik, pilih metrik resolusi tinggi (sekarang diaktifkan setelah penerapan selesai).

  7. Untuk Nilai target, masukkan persentase pemanfaatan target.

  8. Di bawah Pengaturan Tam bahan, atur periode Scale-out cooldown dan periode Scale-in cooldown.

  9. Pilih Perbarui untuk mengirimkan perubahan.

Langkah 1: Perbarui resolusi pemantauan

  1. Perbarui layanan dengan konfigurasi pemantauan menggunakan perintah update-service.

    aws ecs update-service --region us-east-1 \ --cluster my-cluster \ --service my-service \ --monitoring "metricConfigurations=[{metricNames=[CPUUtilization,MemoryUtilization],resolutionSeconds=20}]"
  2. Tunggu hingga penerapan selesai. Anda dapat memantau kemajuan menggunakan perintah describe-services dan memeriksa status penerapan.

    aws ecs describe-services --region us-east-1 \ --cluster my-cluster \ --services my-service
  3. Setelah penerapan selesai, verifikasi konfigurasi pemantauan aktif dengan menjelaskan revisi layanan. Dapatkan ARN revisi layanan aktif dari describe-services output, lalu jalankan:

    aws ecs describe-service-revisions --region us-east-1 \ --service-revision-arns arn:aws:ecs:us-east-1:012345678910:service-revision/my-cluster/my-service/1234567890123456789

    Konfirmasikan konfigurasi pemantauan muncul dalam respons:

    { "serviceRevisions": [ { ... "monitoring": { "metricConfigurations": [ { "metricNames": ["CPUUtilization", "MemoryUtilization"], "resolutionSeconds": 20 } ] } } ] }
Langkah 2: Konfigurasikan kebijakan penskalaan resolusi tinggi

  1. Daftarkan layanan sebagai target yang dapat diskalakan jika belum terdaftar, menggunakan perintah register-scal able-target.

    aws application-autoscaling register-scalable-target \ --service-namespace ecs \ --resource-id service/my-cluster/my-service \ --scalable-dimension ecs:service:DesiredCount \ --min-capacity 1 \ --max-capacity 10 \ --region us-east-1
  2. Buat kebijakan penskalaan pelacakan target dengan metrik standar resolusi tinggi menggunakan perintah put-scaling- policy. Contoh berikut menargetkan penggunaan CPU 50%:

    aws application-autoscaling put-scaling-policy \ --service-namespace ecs \ --resource-id service/my-cluster/my-service \ --scalable-dimension ecs:service:DesiredCount \ --policy-name my-highres-cpu-policy \ --policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configuration '{ "TargetValue": 50.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ECSServiceAverageCPUUtilizationHighResolution" } }' \ --region us-east-1
  3. Verifikasi kebijakan telah dibuat:

    aws application-autoscaling describe-scaling-policies \ --service-namespace ecs \ --resource-id service/my-cluster/my-service \ --scalable-dimension ecs:service:DesiredCount \ --region us-east-1

Validasi penskalaan otomatis layanan yang lebih cepat

Bagian 1: Verifikasi metrik resolusi tinggi sedang diterbitkan

  1. Arahkan ke CloudWatch konsol.

  2. Di panel navigasi, pilih Metrik, lalu pilih Semua metrik.

  3. Pilih AWS/ECS namespace.

  4. Pilih ClusterName, ServiceName.

  5. Temukan CPUUtilization dan MemoryUtilization metrik untuk layanan Anda.

  6. Atur periode menjadi 20 detik. Anda akan melihat titik data pada interval 20 detik, mengonfirmasi bahwa metrik resolusi tinggi aktif.

Bagian 2: Verifikasi kebijakan penskalaan menggunakan metrik resolusi tinggi

  1. Pada halaman detail layanan, pilih tab Service auto scaling.

  2. Lihat kebijakan penskalaan yang ada dan konfirmasikan metrik disetel ke varian resolusi tinggi (ECSServiceAverageCPUUtilizationHighResolutionatauECSServiceAverageMemoryUtilizationHighResolution).

  3. Atau, verifikasi menggunakan CLI:

    aws application-autoscaling describe-scaling-policies \ --service-namespace ecs \ --resource-id service/my-cluster/my-service \ --scalable-dimension ecs:service:DesiredCount \ --region us-east-1

    Konfir PredefinedMetricType masikan respons diatur ke metrik resolusi tinggi.

Pertimbangan-pertimbangan

  • Pemantauan perubahan konfigurasi membuat revisi layanan baru dan memerlukan penyebaran layanan. Metrik penskalaan resolusi tinggi tidak tersedia sampai penerapan selesai dan semua tugas dipancarkan pada resolusi 20 detik.

  • High-resolution metrik didukung untuk layanan yang menggunakan Application Load Balancers dan Network Load Balancers. Layanan yang menggunakan Classic Load Balancers tanpa kelompok target tidak didukung.

  • High-resolution metrik tidak didukung untuk layanan yang menggunakan jenis pengontrol EXTERNAL penerapan CODE_DEPLOY atau.

  • Anda dapat melihat konfigurasi pemantauan untuk layanan Anda menggunakanDescribeServiceRevisions. Konfigurasi pemantauan tidak dikembalikan CreateService atau menang UpdateService gapi.