

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

# Buat kebijakan penskalaan langkah untuk Application Auto Scaling menggunakan AWS CLI
<a name="create-step-scaling-policy-cli"></a>

Contoh ini menggunakan AWS CLI perintah untuk membuat kebijakan penskalaan langkah untuk layanan Amazon ECS. Untuk target skalabel yang berbeda, tentukan namespace di`--service-namespace`, dimensi yang dapat diskalakan di`--scalable-dimension`, dan ID sumber dayanya di. `--resource-id`

Saat menggunakan AWS CLI, ingatlah bahwa perintah Anda berjalan di Wilayah AWS konfigurasi untuk profil Anda. Jika Anda ingin menjalankan perintah di Wilayah yang berbeda, ubah Wilayah default untuk profil Anda, atau gunakan parameter `--region` bersama perintah tersebut.

**Topics**
+ [Langkah 1: Daftarkan target yang dapat diskalakan](#step-scaling-register-scalable-target)
+ [Langkah 2: Buat kebijakan penskalaan langkah](#create-step-scaling-policy)
+ [Langkah 3: Buat alarm yang memanggil kebijakan penskalaan](#step-scaling-create-alarm)

## Langkah 1: Daftarkan target yang dapat diskalakan
<a name="step-scaling-register-scalable-target"></a>

Jika Anda belum melakukannya, daftarkan target yang dapat diskalakan. Gunakan perintah [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) untuk mendaftar sumber daya tertentu dalam layanan target sebagai target yang dapat diskalakan. Contoh berikut mendaftarkan layanan ECS Amazon dengan Application Auto Scaling. Application Auto Scaling dapat menskalakan jumlah tugas pada minimum 2 tugas dan maksimum 10 tugas. Ganti masing-masing *user input placeholder* dengan informasi Anda sendiri.

**Linux, macOS, atau Unix**

```
aws application-autoscaling register-scalable-target --service-namespace ecs \
  --scalable-dimension ecs:service:DesiredCount \
  --resource-id service/my-cluster/my-service \
  --min-capacity 2 --max-capacity 10
```

**Windows**

```
aws application-autoscaling register-scalable-target --service-namespace ecs ^
  --scalable-dimension ecs:service:DesiredCount ^
  --resource-id service/my-cluster/my-service ^
  --min-capacity 2 --max-capacity 10
```

**Output**  
Jika berhasil, perintah ini mengembalikan ARN dari target yang dapat diskalakan. Berikut ini adalah output contoh.

```
{
    "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
}
```

## Langkah 2: Buat kebijakan penskalaan langkah
<a name="create-step-scaling-policy"></a>

Untuk membuat kebijakan penskalaan langkah untuk target yang dapat diskalakan, Anda dapat menggunakan contoh berikut untuk membantu Anda memulai.

------
#### [ Scale out ]

**Untuk membuat kebijakan penskalaan langkah untuk skala keluar (meningkatkan kapasitas)**

1. Gunakan `cat` perintah berikut untuk menyimpan konfigurasi kebijakan penskalaan langkah dalam file JSON bernama `config.json` di direktori home Anda. Berikut ini adalah contoh konfigurasi dengan jenis penyesuaian `PercentChangeInCapacity` yang meningkatkan kapasitas target yang dapat diskalakan berdasarkan penyesuaian langkah berikut (dengan asumsi ambang CloudWatch alarm 70): 
   + Tingkatkan kapasitas sebesar 10 persen ketika nilai metrik lebih besar dari atau sama dengan 70 tetapi kurang dari 85
   + Tingkatkan kapasitas sebesar 20 persen ketika nilai metrik lebih besar dari atau sama dengan 85 tetapi kurang dari 95
   + Tingkatkan kapasitas sebesar 30 persen ketika nilai metrik lebih besar dari atau sama dengan 95

   ```
   $ cat ~/config.json
   {
     "AdjustmentType": "PercentChangeInCapacity",
     "MetricAggregationType": "Average",
     "Cooldown": 60,
     "MinAdjustmentMagnitude": 1,
     "StepAdjustments": [ 
       {
         "MetricIntervalLowerBound": 0.0,
         "MetricIntervalUpperBound": 15.0,
         "ScalingAdjustment": 10
       },
       {
         "MetricIntervalLowerBound": 15.0,
         "MetricIntervalUpperBound": 25.0,
         "ScalingAdjustment": 20
       },
       {
         "MetricIntervalLowerBound": 25.0,
         "ScalingAdjustment": 30
       }
     ]
   }
   ```

   Untuk informasi lebih lanjut, lihat [StepScalingPolicyConfiguration](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_StepScalingPolicyConfiguration.html) dalam *Referensi API Application Auto Scaling*.

1. Gunakan perintah berikut [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html), beserta file `config.json` yang Anda buat, untuk membuat kebijakan penskalaan dengan nama `my-step-scaling-policy`.

   **Linux, macOS, atau Unix**

   ```
   aws application-autoscaling put-scaling-policy --service-namespace ecs \
     --scalable-dimension ecs:service:DesiredCount \
     --resource-id service/my-cluster/my-service \
     --policy-name my-step-scaling-policy --policy-type StepScaling \
     --step-scaling-policy-configuration file://config.json
   ```

   **Windows**

   ```
   aws application-autoscaling put-scaling-policy --service-namespace ecs ^
     --scalable-dimension ecs:service:DesiredCount ^
     --resource-id service/my-cluster/my-service ^
     --policy-name my-step-scaling-policy --policy-type StepScaling ^
     --step-scaling-policy-configuration file://config.json
   ```

**Output**  
Output mencakup ARN yang berfungsi sebagai nama unik untuk kebijakan tersebut. Anda membutuhkannya untuk membuat CloudWatch alarm untuk kebijakan Anda. Berikut ini adalah output contoh.

   ```
   {
       "PolicyARN": "arn:aws:autoscaling:region:123456789012:scalingPolicy:ac542982-cbeb-4294-891c-a5a941dfa787:resource/ecs/service/my-cluster/my-service:policyName/my-step-scaling-policy"
   }
   ```

------
#### [ Scale in ]

**Untuk membuat kebijakan penskalaan langkah untuk skala (kurangi kapasitas)**

1. Gunakan `cat` perintah berikut untuk menyimpan konfigurasi kebijakan penskalaan langkah dalam file JSON bernama `config.json` di direktori home Anda. Berikut ini adalah contoh konfigurasi dengan jenis penyesuaian `ChangeInCapacity` yang mengurangi kapasitas target yang dapat diskalakan berdasarkan penyesuaian langkah berikut (dengan asumsi ambang CloudWatch alarm 50): 
   + Kurangi kapasitas sebesar 1 ketika nilai metrik kurang dari atau sama dengan 50 tetapi lebih besar dari 40
   + Kurangi kapasitas sebesar 2 ketika nilai metrik kurang dari atau sama dengan 40 tetapi lebih besar dari 30
   + Kurangi kapasitas sebesar 3 ketika nilai metrik kurang dari atau sama dengan 30

   ```
   $ cat ~/config.json
   {
     "AdjustmentType": "ChangeInCapacity",
     "MetricAggregationType": "Average",
     "Cooldown": 60,
     "StepAdjustments": [ 
       {
         "MetricIntervalUpperBound": 0.0,
         "MetricIntervalLowerBound": -10.0,
         "ScalingAdjustment": -1
       },
       {
         "MetricIntervalUpperBound": -10.0,
         "MetricIntervalLowerBound": -20.0,
         "ScalingAdjustment": -2
       },
       {
         "MetricIntervalUpperBound": -20.0,
         "ScalingAdjustment": -3
       }
     ]
   }
   ```

   Untuk informasi lebih lanjut, lihat [StepScalingPolicyConfiguration](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_StepScalingPolicyConfiguration.html) dalam *Referensi API Application Auto Scaling*.

1. Gunakan perintah berikut [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html), beserta file `config.json` yang Anda buat, untuk membuat kebijakan penskalaan dengan nama `my-step-scaling-policy`.

   **Linux, macOS, atau Unix**

   ```
   aws application-autoscaling put-scaling-policy --service-namespace ecs \
     --scalable-dimension ecs:service:DesiredCount \
     --resource-id service/my-cluster/my-service \
     --policy-name my-step-scaling-policy --policy-type StepScaling \
     --step-scaling-policy-configuration file://config.json
   ```

   **Windows**

   ```
   aws application-autoscaling put-scaling-policy --service-namespace ecs ^
     --scalable-dimension ecs:service:DesiredCount ^
     --resource-id service/my-cluster/my-service ^
     --policy-name my-step-scaling-policy --policy-type StepScaling ^
     --step-scaling-policy-configuration file://config.json
   ```

**Output**  
Output mencakup ARN yang berfungsi sebagai nama unik untuk kebijakan tersebut. Anda memerlukan ARN ini untuk membuat CloudWatch alarm untuk kebijakan Anda. Berikut ini adalah output contoh.

   ```
   {
       "PolicyARN": "arn:aws:autoscaling:region:123456789012:scalingPolicy:ac542982-cbeb-4294-891c-a5a941dfa787:resource/ecs/service/my-cluster/my-service:policyName/my-step-scaling-policy"
   }
   ```

------

## Langkah 3: Buat alarm yang memanggil kebijakan penskalaan
<a name="step-scaling-create-alarm"></a>

Terakhir, gunakan CloudWatch [put-metric-alarm](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html)perintah berikut untuk membuat alarm untuk digunakan dengan kebijakan penskalaan langkah Anda. Dalam contoh ini, Anda memiliki alarm yang didasarkan pada pemanfaatan CPU rata-rata. Alarm dikonfigurasi untuk berada dalam status ALARM jika mencapai ambang batas 70 persen selama setidaknya dua periode evaluasi sepanjang 60 detik secara berturut-turut. Untuk menentukan CloudWatch metrik yang berbeda atau menggunakan metrik kustom Anda sendiri, tentukan namanya di `--metric-name` dan namespace di. `--namespace` 

**Linux, macOS, atau Unix**

```
aws cloudwatch put-metric-alarm --alarm-name Step-Scaling-AlarmHigh-ECS:service/my-cluster/my-service \
  --metric-name CPUUtilization --namespace AWS/ECS --statistic Average \
  --period 60 --evaluation-periods 2 --threshold 70 \
  --comparison-operator GreaterThanOrEqualToThreshold \
  --dimensions Name=ClusterName,Value=default Name=ServiceName,Value=sample-app-service \
  --alarm-actions PolicyARN
```

**Windows**

```
aws cloudwatch put-metric-alarm --alarm-name Step-Scaling-AlarmHigh-ECS:service/my-cluster/my-service ^
  --metric-name CPUUtilization --namespace AWS/ECS --statistic Average ^
  --period 60 --evaluation-periods 2 --threshold 70 ^
  --comparison-operator GreaterThanOrEqualToThreshold ^
  --dimensions Name=ClusterName,Value=default Name=ServiceName,Value=sample-app-service ^
  --alarm-actions PolicyARN
```