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 servis 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 Clusters, pilih cluster tempat Anda ingin membuat layanan.

  2. Di bagian Layanan, pilih Buat.

  3. Dalam formulir Buat Layanan, di bagian Konfigurasi pemantauan, 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 Tambahkan 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 servis yang akan digunakan. Hitungan yang diinginkan tidak akan berada di bawah hitungan ini.

  9. Untuk Jumlah tugas maksimum, masukkan batas atas jumlah tugas untuk penskalaan otomatis servis yang akan digunakan. Hitungan 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. Service auto scaling meningkatkan kapasitas Anda hingga pemanfaatan rata-rata berada pada nilai target, atau hingga mencapai jumlah maksimum tugas yang Anda tentukan.

  13. Di bawah Pengaturan Tambahan, konfigurasikan hal berikut:

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

    2. Untuk periode Scale-in cooldown, masukkan jumlah waktu dalam hitungan 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-scalable-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-scaling-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 berhasil diselesaikan 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 Clusters, pilih cluster yang berisi layanan yang ingin Anda perbarui.

  2. Di bagian Layanan, pilih layanan dan pilih Perbarui.

  3. Dalam formulir Perbarui Layanan, di bagian Konfigurasi pemantauan, 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 Tambahkan 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 pada halaman detail layanan di tab Deployment.

    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 Penskalaan otomatis layanan.

  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 Tambahan, konfigurasikan hal berikut:

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

    2. Untuk periode Scale-in cooldown, masukkan jumlah waktu dalam hitungan 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 Perbarui.

  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 Tambahan, 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 deskripsi-layanan 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 output, describe-services 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-scalable-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 50% pemanfaatan CPU:

    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 servis yang lebih cepat

Bagian 1: Verifikasi metrik resolusi tinggi dipublikasikan

  1. Arahkan ke CloudWatch konsol.

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

  3. Pilih AWS/ECSnamespace.

  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 Penskalaan otomatis layanan.

  2. Lihat kebijakan penskalaan yang ada dan konfirmasikan bahwa 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

    Konfirmasikan PredefinedMetricType dalam respons diatur ke metrik resolusi tinggi.

Pertimbangan-pertimbangan

  • Perubahan konfigurasi pemantauan 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 menggunakan Application Load Balancers dan Network Load Balancers. Layanan yang menggunakan Classic Load Balancer tanpa grup target tidak didukung.

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

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