

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

# Penskalaan prediktif untuk Application Auto Scaling
<a name="application-auto-scaling-predictive-scaling"></a>

Penskalaan prediktif secara proaktif menskalakan aplikasi Anda. Penskalaan prediktif menganalisis data beban historis untuk mendeteksi pola harian atau mingguan dalam arus lalu lintas. Ini menggunakan informasi ini untuk memperkirakan kebutuhan kapasitas masa depan untuk secara proaktif meningkatkan kapasitas aplikasi Anda agar sesuai dengan beban yang diantisipasi.

Penskalaan prediktif sangat cocok untuk situasi di mana Anda memiliki:
+ Lalu lintas siklus, seperti penggunaan sumber daya yang tinggi selama jam kerja reguler dan penggunaan sumber daya yang rendah selama malam hari dan akhir pekan
+ Pola on-and-off beban kerja berulang, seperti pemrosesan batch, pengujian, atau analisis data berkala.
+ Aplikasi yang membutuhkan waktu lama untuk diinisialisasi, menyebabkan dampak latensi yang nyata pada kinerja aplikasi selama peristiwa penskalaan

**Topics**
+ [Cara kerjanya](aas-predictive-scaling-how-it-works.md)
+ [Buat kebijakan penskalaan prediktif](aas-create-predictive-scaling-policy.md)
+ [Ganti perkiraan](aas-predictive-scaling-overriding-forecast-capacity.md)
+ [Gunakan metrik khusus](aas-predictive-scaling-customized-metric-specification.md)

# Cara kerja penskalaan prediktif Application Auto Scaling
<a name="aas-predictive-scaling-how-it-works"></a>

Untuk menggunakan penskalaan prediktif, buat kebijakan penskalaan prediktif yang menentukan CloudWatch metrik untuk dipantau dan dianalisis. Anda dapat menggunakan metrik yang telah ditentukan atau metrik khusus. Agar penskalaan prediktif mulai meramalkan nilai masa depan, metrik ini harus memiliki setidaknya 24 jam data.

Setelah Anda membuat kebijakan, penskalaan prediktif mulai menganalisis data metrik hingga 14 hari terakhir untuk mengidentifikasi pola. Ini menggunakan analisis ini untuk menghasilkan perkiraan per jam persyaratan kapasitas untuk 48 jam ke depan. Prakiraan diperbarui setiap 6 jam menggunakan CloudWatch data terbaru. Saat data baru masuk, penskalaan prediktif mampu terus meningkatkan akurasi prakiraan masa depan.

Pertama-tama Anda dapat mengaktifkan penskalaan prediktif dalam mode *perkiraan saja*. Dalam mode ini, ini menghasilkan perkiraan kapasitas tetapi tidak benar-benar menskalakan kapasitas Anda berdasarkan perkiraan tersebut. Ini memungkinkan Anda untuk mengevaluasi keakuratan dan kesesuaian ramalan. 

Setelah Anda meninjau data perkiraan dan memutuskan untuk memulai penskalaan berdasarkan data tersebut, alihkan kebijakan penskalaan ke mode perkiraan dan skala. Dalam mode ini:
+ Jika perkiraan mengharapkan peningkatan beban, penskalaan prediktif akan meningkatkan kapasitas.
+ Jika perkiraan mengharapkan penurunan beban, penskalaan prediktif tidak akan menskalakan untuk menghilangkan kapasitas. Ini memastikan bahwa Anda meningkatkan skala hanya ketika permintaan benar-benar turun, dan tidak hanya pada prediksi. Untuk menghapus kapasitas yang tidak lagi diperlukan, Anda harus membuat kebijakan Pelacakan Target atau Penskalaan Langkah karena mereka merespons data metrik waktu nyata. 

Secara default, penskalaan prediktif menskalakan target Anda yang dapat diskalakan pada awal setiap jam berdasarkan perkiraan untuk jam tersebut. Anda dapat menentukan waktu mulai yang lebih awal secara opsional dengan menggunakan `SchedulingBufferTime` properti dalam operasi `PutScalingPolicy` API. Ini memungkinkan Anda untuk meluncurkan kapasitas yang diprediksi sebelum permintaan yang diperkirakan, yang memberikan kapasitas baru waktu yang cukup untuk siap menangani lalu lintas. 

## Batas kapasitas maksimum
<a name="aas-ps-max-capcity-limit"></a>

Secara default, ketika kebijakan penskalaan ditetapkan, mereka tidak dapat meningkatkan kapasitas lebih tinggi dari kapasitas maksimumnya.

Atau, Anda dapat mengizinkan kapasitas maksimum target yang dapat diskalakan ditingkatkan secara otomatis jika kapasitas perkiraan mendekati atau melebihi kapasitas maksimum target yang dapat diskalakan. Untuk mengaktifkan perilaku ini, gunakan `MaxCapacityBuffer` properti `MaxCapacityBreachBehavior` dan dalam operasi `PutScalingPolicy` API atau setelan **perilaku kapasitas Maks** di Konsol Manajemen AWS.

**Awas**  
Berhati-hatilah saat memungkinkan kapasitas maksimum ditingkatkan secara otomatis. Kapasitas maksimum tidak secara otomatis berkurang kembali ke maksimum asli.

## Perintah yang umum digunakan untuk penskalaan pembuatan kebijakan, manajemen, dan penghapusan
<a name="aas-ps-common-commands"></a>

Perintah yang umum digunakan untuk bekerja dengan kebijakan penskalaan prediktif meliputi:
+ `register-scalable-target`untuk mendaftarkan AWS atau menyesuaikan sumber daya sebagai target yang dapat diskalakan, untuk menangguhkan penskalaan, dan untuk melanjutkan penskalaan.
+ `put-scaling-policy`untuk membuat kebijakan penskalaan prediktif.
+ `get-predictive-scaling-forecast`untuk mengambil data perkiraan untuk kebijakan penskalaan prediktif.
+ `describe-scaling-activities`untuk mengembalikan informasi tentang aktivitas penskalaan dalam file Wilayah AWS.
+ `describe-scaling-policies`untuk mengembalikan informasi tentang kebijakan penskalaan dalam file Wilayah AWS.
+ `delete-scaling-policy`untuk menghapus kebijakan penskalaan.

**Metrik-metrik kustom**  
Metrik khusus dapat digunakan untuk memprediksi kapasitas yang dibutuhkan untuk suatu aplikasi. Metrik kustom berguna ketika metrik yang telah ditentukan tidak cukup untuk menangkap beban pada aplikasi Anda.

## Pertimbangan-pertimbangan
<a name="aas-ps-considerations"></a>

Pertimbangan berikut berlaku saat bekerja dengan penskalaan prediktif.
+ Konfirmasikan apakah penskalaan prediktif cocok untuk aplikasi Anda. Aplikasi sangat cocok untuk penskalaan prediktif jika menunjukkan pola beban berulang yang spesifik untuk hari dalam seminggu atau waktu dalam sehari. Evaluasi prakiraan sebelum membiarkan penskalaan prediktif secara aktif menskalakan aplikasi Anda.
+ Penskalaan prediktif membutuhkan setidaknya 24 jam data historis untuk memulai peramalan. Namun, perkiraan lebih efektif jika data historis mencakup dua minggu penuh.
+ Pilih metrik pemuatan yang secara akurat mewakili beban penuh pada aplikasi Anda dan merupakan aspek aplikasi Anda yang paling penting untuk diskalakan.

# Membuat kebijakan penskalaan prediktif untuk Application Auto Scaling
<a name="aas-create-predictive-scaling-policy"></a>

Kebijakan contoh berikut menggunakan kebijakan AWS CLI untuk mengonfigurasi kebijakan penskalaan prediktif untuk layanan Amazon ECS. Ganti masing-masing *user input placeholder* dengan informasi Anda sendiri.

Untuk informasi selengkapnya tentang CloudWatch metrik yang dapat Anda tentukan, lihat [PredictiveScalingMetricSpecification](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_PredictiveScalingMetricSpecification.html)di Referensi API *Amazon EC2 Auto* Scaling.

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

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

Contoh berikut mengilustrasikan pembuatan kebijakan dengan menjalankan [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/put-scaling-policy.html)perintah 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": []
}
```

# Ganti nilai perkiraan menggunakan tindakan terjadwal
<a name="aas-predictive-scaling-overriding-forecast-capacity"></a>

Terkadang, Anda mungkin memiliki informasi tambahan tentang persyaratan aplikasi future Anda yang tidak dapat diperhitungkan oleh perhitungan perkiraan. Misalnya, perhitungan perkiraan mungkin meremehkan kapasitas yang dibutuhkan untuk acara pemasaran yang akan datang. Anda dapat menggunakan tindakan terjadwal untuk mengganti perkiraan sementara selama periode waktu mendatang. Tindakan terjadwal dapat berjalan secara berulang, atau pada tanggal dan waktu tertentu ketika ada fluktuasi permintaan satu kali. 

Misalnya, Anda dapat membuat tindakan terjadwal dengan kapasitas minimum yang lebih tinggi dari yang diperkirakan. Saat runtime, Application Auto Scaling memperbarui kapasitas minimum target yang dapat diskalakan. Karena penskalaan prediktif mengoptimalkan kapasitas, tindakan terjadwal dengan kapasitas minimum yang lebih tinggi dari nilai perkiraan dihormati. Ini mencegah kapasitas menjadi kurang dari yang diharapkan. Untuk berhenti mengesampingkan perkiraan, gunakan tindakan terjadwal kedua untuk mengembalikan kapasitas minimum ke pengaturan aslinya.

Prosedur berikut menguraikan langkah-langkah untuk mengesampingkan perkiraan selama periode waktu mendatang. 

**Topics**
+ [Langkah 1: (Opsional) Analisis data deret waktu](#analyzing-time-series-data)
+ [Langkah 2: Buat dua tindakan terjadwal](#scheduling-capacity)

**penting**  
Topik ini mengasumsikan bahwa Anda mencoba mengesampingkan perkiraan untuk skala ke kapasitas yang lebih tinggi daripada yang diperkirakan. Jika Anda perlu mengurangi kapasitas sementara tanpa campur tangan dari kebijakan penskalaan prediktif, gunakan mode *perkiraan saja*. Sementara dalam mode perkiraan saja, penskalaan prediktif akan terus menghasilkan perkiraan, tetapi tidak akan secara otomatis meningkatkan kapasitas. Anda kemudian dapat memantau pemanfaatan sumber daya dan secara manual mengurangi ukuran grup Anda sesuai kebutuhan. 

## Langkah 1: (Opsional) Analisis data deret waktu
<a name="analyzing-time-series-data"></a>

Mulailah dengan menganalisis data deret waktu perkiraan. Ini adalah langkah opsional, tetapi akan sangat membantu jika Anda ingin memahami detail perkiraan.

1. **Ambil ramalan**

   Setelah perkiraan dibuat, Anda dapat menanyakan periode waktu tertentu dalam perkiraan. Tujuan dari kueri ini adalah untuk mendapatkan tampilan lengkap dari data deret waktu untuk periode waktu tertentu. 

   Kueri Anda dapat mencakup hingga dua hari data perkiraan masa depan. Jika Anda telah menggunakan penskalaan prediktif untuk sementara waktu, Anda juga dapat mengakses data perkiraan sebelumnya. Namun, durasi waktu maksimum antara waktu mulai dan akhir adalah 30 hari. 

   Untuk mengambil ramalan, gunakan [get-predictive-scaling-forecast](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/application-autoscaling/get-predictive-scaling-forecast.html)perintah. Contoh berikut mendapatkan perkiraan penskalaan prediktif untuk layanan Amazon ECS.

   ```
   aws application-autoscaling get-predictive-scaling-forecast --service-namespace ecs \
       --scalable-dimension ecs:service:DesiredCount \
       --resource-id 1234567890abcdef0          
       --policy-name predictive-scaling-policy \     
       --start-time "2021-05-19T17:00:00Z" \
       --end-time "2021-05-19T23:00:00Z"
   ```

   Tanggapan tersebut mencakup dua prakiraan: `LoadForecast` dan`CapacityForecast`. `LoadForecast`menunjukkan perkiraan beban per jam. `CapacityForecast`menunjukkan nilai perkiraan untuk kapasitas yang dibutuhkan setiap jam untuk menangani beban yang diperkirakan sambil mempertahankan yang ditentukan. `TargetValue`

1. **Identifikasi periode waktu target**

   Identifikasi jam atau jam ketika fluktuasi permintaan satu kali harus terjadi. Ingat bahwa tanggal dan waktu yang ditunjukkan dalam perkiraan ada di UTC.

## Langkah 2: Buat dua tindakan terjadwal
<a name="scheduling-capacity"></a>

Selanjutnya, buat dua tindakan terjadwal untuk periode waktu tertentu ketika aplikasi Anda akan memiliki beban yang lebih tinggi dari perkiraan. Misalnya, jika Anda memiliki acara pemasaran yang akan mengarahkan lalu lintas ke situs Anda untuk jangka waktu terbatas, Anda dapat menjadwalkan tindakan satu kali untuk memperbarui kapasitas minimum saat dimulai. Kemudian, jadwalkan tindakan lain untuk mengembalikan kapasitas minimum ke pengaturan asli saat acara berakhir. 

**Untuk membuat dua tindakan terjadwal untuk acara satu kali ()AWS CLI**  
Untuk membuat tindakan yang dijadwalkan, gunakan [ put-scheduled-action](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/application-autoscaling/put-scheduled-action.html)perintah.

Contoh berikut mendefinisikan jadwal untuk Amazon EC2 Auto Scaling yang mempertahankan kapasitas minimum tiga instans pada 19 Mei pukul 17:00 selama delapan jam. Perintah berikut menunjukkan bagaimana menerapkan skenario ini.

Perintah [put-scheduled-update-group-action](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/put-scheduled-update-group-action.html) pertama menginstruksikan Amazon EC2 Auto Scaling untuk memperbarui kapasitas minimum grup Auto Scaling yang ditentukan pada pukul 17:00 UTC pada 19 Mei 2021. 

```
aws autoscaling put-scheduled-update-group-action --scheduled-action-name my-event-start \
  --auto-scaling-group-name my-asg --start-time "2021-05-19T17:00:00Z" --minimum-capacity 3
```

Perintah kedua menginstruksikan Amazon EC2 Auto Scaling untuk mengatur kapasitas minimum grup menjadi satu pada 1:00 UTC pada 20 Mei 2021. 

```
aws autoscaling put-scheduled-update-group-action --scheduled-action-name my-event-end \
  --auto-scaling-group-name my-asg --start-time "2021-05-20T01:00:00Z" --minimum-capacity 1
```

Setelah Anda menambahkan tindakan terjadwal ini ke grup Auto Scaling, Amazon EC2 Auto Scaling melakukan hal berikut: 
+ Pada pukul 17:00 UTC pada 19 Mei 2021, aksi terjadwal pertama berjalan. Jika grup saat ini memiliki kurang dari tiga instance, grup tersebut menskalakan menjadi tiga instance. Selama waktu ini dan selama delapan jam ke depan, Amazon EC2 Auto Scaling dapat terus ditingkatkan jika kapasitas yang diprediksi lebih tinggi dari kapasitas aktual atau jika ada kebijakan penskalaan dinamis yang berlaku. 
+ Pukul 1:00 UTC pada 20 Mei 2021, aksi terjadwal kedua berjalan. Ini mengembalikan kapasitas minimum ke pengaturan aslinya di akhir acara.

### Penskalaan berdasarkan jadwal berulang
<a name="scheduling-recurring-actions"></a>

Untuk mengganti perkiraan untuk periode waktu yang sama setiap minggu, buat dua tindakan terjadwal dan berikan logika waktu dan tanggal menggunakan ekspresi cron. 

Format ekspresi cron terdiri dari lima bidang yang dipisahkan oleh spasi: [Minute] [Hour] [Day\$1of\$1month] [Month\$1of\$1year] [day\$1of\$1week]. Bidang dapat berisi nilai apa pun yang diizinkan, termasuk karakter khusus. 

Misalnya, ekspresi cron berikut menjalankan aksi setiap hari Selasa pukul 6:30 pagi. Tanda bintang digunakan sebagai wildcard untuk mencocokkan semua nilai untuk bidang.

```
30 6 * * 2
```

# Kebijakan penskalaan prediktif lanjutan menggunakan metrik khusus
<a name="aas-predictive-scaling-customized-metric-specification"></a>

Dalam kebijakan penskalaan prediktif, Anda dapat menggunakan metrik yang telah ditentukan atau kustom. Metrik kustom berguna ketika metrik yang telah ditentukan tidak cukup menggambarkan pemuatan aplikasi Anda.

Saat membuat kebijakan penskalaan prediktif dengan metrik kustom, Anda dapat menentukan CloudWatch metrik lain 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. *Ketika Anda menggabungkan nilai dalam data Anda, misalnya, dengan menghitung jumlah atau rata-rata baru, itu disebut agregasi.* Data yang dihasilkan disebut *agregat*.

Bagian berikut berisi praktik terbaik dan contoh bagaimana membangun struktur JSON untuk kebijakan tersebut. 

**Topics**
+ [Praktik terbaik](#custom-metrics-best-practices)
+ [Prasyarat](#custom-metrics-prerequisites)
+ [Membangun JSON untuk metrik khusus](construct-json-custom-metrics.md)
+ [Pertimbangan untuk metrik kustom dalam kebijakan penskalaan prediktif](custom-metrics-troubleshooting.md)

## Praktik terbaik
<a name="custom-metrics-best-practices"></a>

Praktik terbaik berikut dapat membantu Anda menggunakan metrik kustom secara lebih efektif:
+ Untuk spesifikasi metrik beban, metrik yang paling berguna adalah metrik yang mewakili beban pada aplikasi Anda.
+ Metrik penskalaan harus berbanding terbalik dengan kapasitas. Artinya, jika target yang dapat diskalakan meningkat, metrik penskalaan akan berkurang dengan proporsi yang kira-kira sama. Untuk memastikan bahwa penskalaan prediktif berperilaku seperti yang diharapkan, metrik beban dan metrik penskalaan juga harus berkorelasi kuat satu sama lain. 
+ Pemanfaatan target harus sesuai dengan jenis metrik penskalaan. Untuk konfigurasi kebijakan yang menggunakan pemanfaatan CPU, ini adalah persentase target. Untuk konfigurasi kebijakan yang menggunakan throughput, seperti jumlah permintaan atau pesan, ini adalah jumlah target permintaan atau pesan per instance selama interval satu menit.
+ 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. Atau, setelah Anda membuat kebijakan penskalaan prediktif, periksa `LoadForecast` dan `CapacityForecast` objek yang ditampilkan oleh panggilan ke API. [GetPredictiveScalingForecast](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_GetPredictiveScalingForecast.html)
+ Kami sangat menyarankan agar Anda mengonfigurasi penskalaan prediktif dalam mode hanya perkiraan sehingga Anda dapat mengevaluasi perkiraan sebelum penskalaan prediktif mulai secara aktif menskalakan kapasitas.

## Prasyarat
<a name="custom-metrics-prerequisites"></a>

Untuk menambahkan metrik khusus 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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) di *Panduan CloudWatch Pengguna Amazon*. 

Jika Anda mempublikasikan metrik Anda sendiri, pastikan untuk mempublikasikan titik data pada frekuensi minimum lima menit. Application Auto Scaling mengambil titik data CloudWatch berdasarkan panjang 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. 

# Membangun JSON untuk metrik khusus
<a name="construct-json-custom-metrics"></a>

Bagian berikut berisi contoh cara mengonfigurasi penskalaan prediktif ke data kueri dari Amazon EC2 CloudWatch Auto Scaling. Ada dua metode berbeda untuk mengonfigurasi opsi ini, dan metode yang Anda pilih memengaruhi format mana yang Anda gunakan untuk membuat JSON untuk kebijakan penskalaan prediktif Anda. Saat Anda menggunakan matematika metrik, format JSON bervariasi lebih lanjut berdasarkan matematika metrik yang dilakukan.

1. Untuk membuat kebijakan yang mendapatkan data langsung dari CloudWatch metrik lain yang disediakan oleh AWS atau metrik yang Anda publikasikan CloudWatch, lihat. [Contoh kebijakan penskalaan prediktif dengan metrik pemuatan dan penskalaan khusus ()AWS CLI](#custom-metrics-ex1)

1. Untuk membuat kebijakan yang dapat menanyakan beberapa CloudWatch metrik dan menggunakan ekspresi matematika untuk membuat deret waktu baru berdasarkan metrik ini, lihat. [Gunakan ekspresi matematika metrik](using-math-expression-examples.md)

## Contoh kebijakan penskalaan prediktif dengan metrik pemuatan dan penskalaan khusus ()AWS CLI
<a name="custom-metrics-ex1"></a>

Untuk membuat kebijakan penskalaan prediktif dengan metrik pemuatan dan penskalaan kustom dengan AWS CLI, simpan argumen `--predictive-scaling-configuration` dalam file JSON bernama. `config.json`

Anda mulai menambahkan metrik khusus dengan mengganti nilai yang dapat diganti dalam contoh berikut dengan metrik dan pemanfaatan target Anda.

```
{
  "MetricSpecifications": [
    {
      "TargetValue": 50,
      "CustomizedScalingMetricSpecification": {
        "MetricDataQueries": [
          {
            "Id": "scaling_metric",
            "MetricStat": {
              "Metric": {
                "MetricName": "MyUtilizationMetric",
                "Namespace": "MyNameSpace",
                "Dimensions": [
                  {
                    "Name": "MyOptionalMetricDimensionName",
                    "Value": "MyOptionalMetricDimensionValue"
                  }
                ]
              },
              "Stat": "Average"
            }
          }
        ]
      },
      "CustomizedLoadMetricSpecification": {
        "MetricDataQueries": [
          {
            "Id": "load_metric",
            "MetricStat": {
              "Metric": {
                "MetricName": "MyLoadMetric",
                "Namespace": "MyNameSpace",
                "Dimensions": [
                  {
                    "Name": "MyOptionalMetricDimensionName",
                    "Value": "MyOptionalMetricDimensionValue"
                  }
                ]
              },
              "Stat": "Sum"
            }
          }
        ]
      }
    }
  ]
}
```

Untuk informasi lebih lanjut, lihat [MetricDataQuery](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_MetricDataQuery.html) dalam *Referensi API Amazon EC2 Auto Scaling*.

**catatan**  
Berikut adalah beberapa sumber daya tambahan yang dapat membantu Anda menemukan nama metrik, ruang nama, dimensi, dan statistik untuk CloudWatch metrik:   
Untuk informasi tentang metrik yang tersedia untuk AWS layanan, lihat [AWS layanan yang memublikasikan CloudWatch metrik](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) di * CloudWatch Panduan Pengguna Amazon*.
[Untuk mendapatkan nama metrik, namespace, dan dimensi yang tepat (jika ada) untuk CloudWatch metrik dengan metrik AWS CLI, lihat daftar-metrik.](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudwatch/list-metrics.html) 

Untuk membuat kebijakan ini, jalankan [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/put-scaling-policy.html)perintah menggunakan file JSON sebagai input, seperti yang ditunjukkan dalam contoh berikut.

```
aws autoscaling put-scaling-policy --policy-name my-predictive-scaling-policy \
  --auto-scaling-group-name my-asg --policy-type PredictiveScaling \
  --predictive-scaling-configuration file://config.json
```

Jika berhasil, perintah ini mengembalikan Amazon Resource Name (ARN) kebijakan.

```
{
  "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:2f4f5048-d8a8-4d14-b13a-d1905620f345:autoScalingGroupName/my-asg:policyName/my-predictive-scaling-policy",
  "Alarms": []
}
```

# Gunakan ekspresi matematika metrik
<a name="using-math-expression-examples"></a>

Bagian berikut memberikan informasi dan contoh kebijakan penskalaan prediktif yang menunjukkan bagaimana Anda dapat menggunakan matematika metrik dalam kebijakan Anda. 

**Topics**
+ [Memahami matematika metrik](#custom-metrics-metric-math)
+ [Contoh kebijakan penskalaan prediktif untuk Amazon EC2 Auto Scaling yang menggabungkan metrik menggunakan metrik matematika ()AWS CLI](#custom-metrics-ex2)
+ [Contoh kebijakan penskalaan prediktif yang akan digunakan dalam skenario blue/green penerapan ()AWS CLI](#custom-metrics-ex3)

## Memahami matematika metrik
<a name="custom-metrics-metric-math"></a>

Jika yang ingin Anda lakukan hanyalah mengumpulkan data metrik yang ada, matematika CloudWatch metrik menghemat upaya dan biaya penerbitan metrik lain. CloudWatch Anda dapat menggunakan metrik apa pun yang AWS menyediakan, dan Anda juga dapat menggunakan metrik yang Anda tetapkan sebagai bagian dari aplikasi Anda.

Untuk informasi selengkapnya, lihat [Menggunakan matematika metrik](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html) di *Panduan CloudWatch Pengguna Amazon*. 

Jika Anda memilih untuk menggunakan ekspresi matematika metrik dalam kebijakan penskalaan prediktif Anda, pertimbangkan poin-poin berikut:
+ Operasi matematika metrik menggunakan titik data dari kombinasi unik nama metrik, namespace, dan kunci dimensi/pasangan nilai metrik. 
+ Anda dapat menggunakan operator aritmatika (\$1 - \$1/^), fungsi statistik (seperti AVG atau SUM), atau fungsi lain yang mendukung. CloudWatch 
+ Anda dapat menggunakan metrik dan hasil ekspresi matematika lainnya dalam rumus ekspresi matematika. 
+ Ekspresi matematika metrik Anda dapat terdiri dari agregasi yang berbeda. Namun, ini adalah praktik terbaik untuk hasil agregasi akhir yang digunakan `Average` untuk metrik penskalaan dan `Sum` untuk metrik beban.
+ Setiap ekspresi yang digunakan dalam spesifikasi metrik pada akhirnya harus mengembalikan satu deret waktu.

Untuk menggunakan matematika metrik, lakukan hal berikut:
+ Pilih satu atau beberapa CloudWatch metrik. Kemudian, buat ekspresi. Untuk informasi selengkapnya, lihat [Menggunakan matematika metrik](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html) di *Panduan CloudWatch Pengguna Amazon*. 
+ Verifikasi bahwa ekspresi matematika metrik valid dengan menggunakan CloudWatch konsol atau CloudWatch [GetMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html)API.

## Contoh kebijakan penskalaan prediktif untuk Amazon EC2 Auto Scaling yang menggabungkan metrik menggunakan metrik matematika ()AWS CLI
<a name="custom-metrics-ex2"></a>

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 antrean Amazon SQS, 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 metrik Amazon SQS`ApproximateNumberOfMessagesVisible`, yang merupakan jumlah pesan yang tersedia untuk diambil dari antrian. Ini juga menggunakan metrik Amazon EC2 `GroupInServiceInstances` Auto Scaling dan ekspresi matematika untuk menghitung backlog per instance untuk metrik penskalaan.

```
aws autoscaling put-scaling-policy --policy-name my-sqs-custom-metrics-policy \
  --auto-scaling-group-name my-asg --policy-type PredictiveScaling \
  --predictive-scaling-configuration file://config.json
{
  "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 ARN kebijakan.

```
{
  "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:2f4f5048-d8a8-4d14-b13a-d1905620f345:autoScalingGroupName/my-asg:policyName/my-sqs-custom-metrics-policy",
  "Alarms": []
}
```

## Contoh kebijakan penskalaan prediktif yang akan digunakan dalam skenario blue/green penerapan ()AWS CLI
<a name="custom-metrics-ex3"></a>

Ekspresi penelusuran menyediakan opsi lanjutan di mana Anda dapat melakukan kueri metrik dari beberapa grup Auto Scaling dan melakukan ekspresi matematika pada mereka. Ini sangat berguna untuk blue/green penerapan. 

**catatan**  
Penerapan *biru/hijau adalah metode penerapan* di mana Anda membuat dua grup Auto Scaling yang terpisah namun identik. Hanya satu dari kelompok yang menerima lalu lintas produksi. Lalu lintas pengguna awalnya diarahkan ke grup Auto Scaling sebelumnya (“biru”), sedangkan grup baru (“hijau”) digunakan untuk pengujian dan evaluasi versi baru aplikasi atau layanan. Lalu lintas pengguna dialihkan ke grup Auto Scaling hijau setelah penerapan baru diuji dan diterima. Anda kemudian dapat menghapus grup biru setelah penerapan berhasil.

Saat grup Auto Scaling baru dibuat sebagai bagian dari blue/green penerapan, riwayat metrik setiap grup dapat secara otomatis disertakan dalam kebijakan penskalaan prediktif tanpa Anda harus mengubah spesifikasi metriknya. Untuk informasi selengkapnya, lihat [Menggunakan kebijakan penskalaan prediktif EC2 Auto Scaling dengan penerapan Biru/Hijau di Blog Komputasi](https://aws.amazon.com/blogs/compute/retaining-metrics-across-blue-green-deployment-for-predictive-scaling/). AWS 

Contoh kebijakan berikut menunjukkan bagaimana hal ini dapat dilakukan. Dalam contoh ini, kebijakan menggunakan `CPUUtilization` metrik yang dipancarkan oleh Amazon EC2. Ini menggunakan metrik Amazon EC2 `GroupInServiceInstances` Auto Scaling dan ekspresi matematika untuk menghitung nilai metrik penskalaan per instance. Ini juga menentukan spesifikasi metrik kapasitas untuk mendapatkan `GroupInServiceInstances` metrik.

Ekspresi pencarian menemukan instance di beberapa grup Auto Scaling berdasarkan kriteria pencarian yang ditentukan. `CPUUtilization` Jika nanti Anda membuat grup Auto Scaling baru yang cocok dengan kriteria penelusuran yang sama, instance di grup Auto Scaling baru akan disertakan secara otomatis. `CPUUtilization`

```
aws autoscaling put-scaling-policy --policy-name my-blue-green-predictive-scaling-policy \
  --auto-scaling-group-name my-asg --policy-type PredictiveScaling \
  --predictive-scaling-configuration file://config.json
{
  "MetricSpecifications": [
    {
      "TargetValue": 25,
      "CustomizedScalingMetricSpecification": {
        "MetricDataQueries": [
          {
            "Id": "load_sum",
            "Expression": "SUM(SEARCH('{AWS/EC2,AutoScalingGroupName} MetricName=\"CPUUtilization\" ASG-myapp', 'Sum', 300))",
            "ReturnData": false
          },
          {
            "Id": "capacity_sum",
            "Expression": "SUM(SEARCH('{AWS/AutoScaling,AutoScalingGroupName} MetricName=\"GroupInServiceInstances\" ASG-myapp', 'Average', 300))",
            "ReturnData": false
          },
          {
            "Id": "weighted_average",
            "Expression": "load_sum / capacity_sum",
            "ReturnData": true
          }
        ]
      },
      "CustomizedLoadMetricSpecification": {
        "MetricDataQueries": [
          {
            "Id": "load_sum",
            "Expression": "SUM(SEARCH('{AWS/EC2,AutoScalingGroupName} MetricName=\"CPUUtilization\" ASG-myapp', 'Sum', 3600))"
          }
        ]
      },
      "CustomizedCapacityMetricSpecification": {
        "MetricDataQueries": [
          {
            "Id": "capacity_sum",
            "Expression": "SUM(SEARCH('{AWS/AutoScaling,AutoScalingGroupName} MetricName=\"GroupInServiceInstances\" ASG-myapp', 'Average', 300))"
          }
        ]
      }
    }
  ]
}
```

Contoh mengembalikan ARN kebijakan.

```
{
  "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:2f4f5048-d8a8-4d14-b13a-d1905620f345:autoScalingGroupName/my-asg:policyName/my-blue-green-predictive-scaling-policy",
  "Alarms": []
}
```

# Pertimbangan untuk metrik kustom dalam kebijakan penskalaan prediktif
<a name="custom-metrics-troubleshooting"></a>

Jika terjadi masalah saat menggunakan metrik kustom, kami sarankan Anda melakukan hal berikut:
+ Jika pesan kesalahan disediakan, baca pesan dan selesaikan masalah yang dilaporkan, jika memungkinkan. 
+ Jika Anda tidak memvalidasi ekspresi sebelumnya, [ put-scaling-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/application-autoscaling/put-scaling-policy.html)perintah memvalidasinya saat Anda membuat kebijakan penskalaan Anda. 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](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudwatch/get-metric-data.html) Anda juga dapat memecahkan masalah ekspresi dari konsol. CloudWatch 
+ Anda harus menentukan `false` untuk `ReturnData` jika `MetricDataQueries` menentukan fungsi SEARCH () sendiri tanpa fungsi matematika seperti SUM (). Ini karena ekspresi penelusuran 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.

**Batasan**  
Pembatasan berikut berlaku pada:
+ Anda dapat menanyakan titik data hingga 10 metrik dalam satu spesifikasi metrik.
+ Untuk tujuan batas ini, satu ekspresi dihitung sebagai satu metrik.