View a markdown version of this page

Buat kebijakan penskalaan prediktif untuk penskalaan otomatis layanan Amazon ECS - Amazon Elastic Container Service

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

Buat kebijakan penskalaan prediktif untuk penskalaan otomatis layanan Amazon ECS

Buat kebijakan penskalaan prediktif agar Amazon ECS meningkatkan atau mengurangi jumlah tugas yang dijalankan layanan Anda berdasarkan data historis.

catatan

Layanan baru perlu menyediakan setidaknya 24 jam data sebelum perkiraan dapat dibuat.

  1. Selain izin IAM standar untuk membuat dan memperbarui layanan, Anda memerlukan izin tambahan. Untuk informasi selengkapnya, lihat Izin IAM diperlukan untuk penskalaan otomatis layanan Amazon ECS.

  2. Tentukan metrik yang akan digunakan untuk kebijakan. Metrik berikut tersedia:

    • ECSServiceAverageCPUUtilization— Rata-rata pemanfaatan CPU yang harus digunakan layanan.

    • ECSServiceAverageMemoryUtilization— Rata-rata pemanfaatan memori yang harus digunakan layanan.

    • ALBRequestCountPerTargetJumlah rata-rata permintaan per menit yang idealnya diterima tugas tersebut.

    Sebagai alternatif, Anda dapat menggunakan metrik khusus. Anda perlu menentukan nilai-nilai berikut:

    • Muat - metrik yang secara akurat mewakili beban penuh pada aplikasi Anda dan merupakan aspek aplikasi Anda yang paling penting untuk diskalakan.

    • Metrik penskalaan - prediktor terbaik untuk seberapa banyak pemanfaatan yang ideal untuk aplikasi Anda.

  3. Buka konsol di https://console.aws.amazon.com/ecs/v2.

  4. Pada halaman Cluster, pilih cluster.

  5. Pada halaman detail cluster, di bagian Layanan, pilih layanan.

    Halaman detail layanan muncul.

  6. Pilih Layanan penskalaan otomatis dan kemudian pilih A tur jumlah tugas.

  7. Di bawah Jumlah tugas layanan Amazon ECS, pilih Gunakan penskalaan otomatis.

    Bagian Jumlah tugas muncul.

    1. 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.

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

    3. Pilih Simpan.

      Halaman kebijakan akan muncul.

  8. Pilih Buat kebijakan penskalaan.

    Halaman Buat kebijakan muncul.

  9. Untuk Jenis kebijakan penskalaan, pilih Penskalaan Prediktif.

  10. Untuk Nama kebijakan, masukkan nama kebijakan.

  11. Untuk pasangan metrik, pilih metrik Anda dari daftar opsi.

    Jika Anda memilih jumlah permintaan Penyeimbang Beban Aplikasi per target, pilih grup target di Grup Target. Jumlah permintaan Penyeimbang Beban Aplikasi per target hanya didukung jika Anda telah melampirkan grup target Penyeimbang Beban Aplikasi untuk layanan Anda.

    Jika Anda memilih Pas angan metrik khusus, pilih metrik individual dari daftar untuk Metrik mu at dan Metrik penskalaan.

  12. Untuk Pemanfaatan Target, masukkan nilai target untuk persentase tugas yang harus dipertahankan Amazon ECS. Penskalaan otomatis layanan meningkatkan kapasitas Anda hingga pemanfaatan rata-rata mencapai target pemanfaatan, atau hingga mencapai jumlah tugas maksimum yang Anda tentukan.

  13. Pilih Buat kebijakan penskalaan.

Gunakan cara berikut AWS CLI untuk mengonfigurasi kebijakan penskalaan prediktif untuk layanan Amazon ECS Anda. Ganti masing-masing user input placeholder dengan informasi Anda sendiri.

Untuk informasi selengkapnya tentang CloudWatch metrik yang dapat Anda tentukan, lihat PredictiveScalingMetricSpecification Refer ensi API Penskalaan Otomatis Amazon EC2.

Contoh 1: Kebijakan penskalaan prediktif dengan memori yang telah ditentukan sebelumnya.

Berikut ini adalah contoh kebijakan dengan konfigurasi memori yang telah ditentukan sebelumnya.

cat policy.json { "MetricSpecifications": [ { "TargetValue": 40, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ECSServiceMemoryUtilization" } } ], "SchedulingBufferTime": 3600, "MaxCapacityBreachBehavior": "HonorMaxCapacity", "Mode": "ForecastOnly" }

Contoh berikut menggambarkan pembuatan kebijakan dengan menjalankan perintah put-scaling-policy dengan file konfigurasi yang ditentukan.

aws application-autoscaling put-scaling-policy \ --service-namespace ecs \ --region us-east-1 \ --policy-name predictive-scaling-policy-example \ --resource-id service/MyCluster/test \ --policy-type PredictiveScaling \ --scalable-dimension ecs:service:DesiredCount \ --predictive-scaling-policy-configuration file://policy.json

Jika berhasil, perintah ini mengembalikan ARN kebijakan.

{ "PolicyARN": "arn:aws:autoscaling:us-east-1:012345678912:scalingPolicy:d1d72dfe-5fd3-464f-83cf-824f16cb88b7:resource/ecs/service/MyCluster/test:policyName/predictive-scaling-policy-example", "Alarms": [] }

Contoh 2: Kebijakan penskalaan prediktif dengan CPU yang telah ditentukan sebelumnya.

Berikut ini adalah contoh kebijakan dengan konfigurasi CPU yang telah ditentukan sebelumnya.

cat policy.json { "MetricSpecifications": [ { "TargetValue": 0.00000004, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ECSServiceCPUUtilization" } } ], "SchedulingBufferTime": 3600, "MaxCapacityBreachBehavior": "HonorMaxCapacity", "Mode": "ForecastOnly" }

Contoh berikut menggambarkan pembuatan kebijakan dengan menjalankan perintah put-scaling-policy dengan file konfigurasi yang ditentukan.

aws aas put-scaling-policy \ --service-namespace ecs \ --region us-east-1 \ --policy-name predictive-scaling-policy-example \ --resource-id service/MyCluster/test \ --policy-type PredictiveScaling \ --scalable-dimension ecs:service:DesiredCount \ --predictive-scaling-policy-configuration file://policy.json

Jika berhasil, perintah ini mengembalikan ARN kebijakan.

{ "PolicyARN": "arn:aws:autoscaling:us-east-1:012345678912:scalingPolicy:d1d72dfe-5fd3-464f-83cf-824f16cb88b7:resource/ecs/service/MyCluster/test:policyName/predictive-scaling-policy-example", "Alarms": [] }