

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# を使用して Application Auto Scaling のステップスケーリングポリシーを作成する AWS CLI
<a name="create-step-scaling-policy-cli"></a>

この例では、 AWS CLI コマンドを使用して Amazon ECS サービスのステップスケーリングポリシーを作成します。別のスケーラブルターゲットについては、`--service-namespace` でその名前空間、`--scalable-dimension` でそのスケーラブルディメンション、`--resource-id` でそのリソース ID を指定します。

を使用する場合 AWS CLI、コマンドはプロファイル用に AWS リージョン 設定された で実行されることに注意してください。別のリージョンでコマンドを実行する場合は、プロファイルのデフォルトのリージョンを変更するか、コマンドに `--region` パラメータを使用します。

**Topics**
+ [ステップ 1: スケーラブルなターゲットを登録する](#step-scaling-register-scalable-target)
+ [ステップ 2: ステップスケーリングポリシーを作成する](#create-step-scaling-policy)
+ [ステップ 3: スケーリングポリシーを呼び出すアラームを作成する](#step-scaling-create-alarm)

## ステップ 1: スケーラブルなターゲットを登録する
<a name="step-scaling-register-scalable-target"></a>

まだ登録していない場合は、スケーラブルターゲットを登録します。[register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) コマンドを使用して、ターゲットサービス内の特定のリソースをスケーラブルターゲットとして登録します。以下の例は、Amazon ECS サービスを Application Auto Scaling に登録します。Application Auto Scaling は、タスクの数を最小 2 タスク、および最大 10 タスクにスケールできます。各*ユーザー入力プレースホルダー*を独自の情報に置き換えます。

**Linux、macOS、または 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**  
成功した場合、このコマンドはスケーラブルターゲットの ARN を返します。以下は出力の例です。

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

## ステップ 2: ステップスケーリングポリシーを作成する
<a name="create-step-scaling-policy"></a>

スケーラブルターゲットのステップスケーリングポリシーを作成するには、次の例を使用して開始できます。

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

**スケールアウト (容量増加) 用のステップスケーリングポリシーを作成する**

1. 次の `cat` コマンドを使用して、ステップスケーリングポリシー設定をホームディレクトリの `config.json` という名前の JSON ファイルに保存します。以下は、調整タイプが `PercentChangeInCapacity` のサンプル設定で、以下のステップ調整値に基づいてスケーラブルターゲットの容量を増加させます (CloudWatch アラームしきい値を 70 とした場合)。
   + メトリクスの値が 70 パーセント以上、85 パーセント未満の場合は容量を 10 パーセント増やします。
   + メトリクスの値が 85 パーセント以上、95 パーセント未満の場合は容量を 20 パーセント増やします。
   + メトリクスの値が 95 パーセント以上の場合は容量を 30 パーセント増やします。

   ```
   $ 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
       }
     ]
   }
   ```

   詳細については、*Application Auto Scaling API リファレンス*の [StepScalingPolicyConfiguration](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_StepScalingPolicyConfiguration.html) を参照してください。

1. 作成した `config.json` ファイルと共に以下の [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html) コマンドを使用して、`my-step-scaling-policy` という名前のスケーリングポリシーを作成します。

   **Linux、macOS、または 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**  
出力には、ポリシーの一意の名前となる ARN が含まれます。ポリシーの CloudWatch アラームを作成する場合に必要です。以下は出力の例です。

   ```
   {
       "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 ]

**スケールイン (容量減少) 用のステップスケーリングポリシーを作成する**

1. 次の `cat` コマンドを使用して、ステップスケーリングポリシー設定をホームディレクトリの `config.json` という名前の JSON ファイルに保存します。以下は、調整タイプが `ChangeInCapacity` のサンプルステップ設定で、以下のステップ調整値に基づいてスケーラブルターゲットの容量を減少させます (CloudWatch アラームしきい値を 50 とした場合)。
   + メトリクスの値が 50% 以下、40% 超の場合は容量を 1 減らします。
   + メトリクスの値が 40% 以下、30% 超の場合は容量を 2 減らします。
   + メトリクスの値が 30% 以下の場合は容量を 3 減らします。

   ```
   $ 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
       }
     ]
   }
   ```

   詳細については、*Application Auto Scaling API リファレンス*の [StepScalingPolicyConfiguration](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_StepScalingPolicyConfiguration.html) を参照してください。

1. 作成した `config.json` ファイルと共に以下の [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html) コマンドを使用して、`my-step-scaling-policy` という名前のスケーリングポリシーを作成します。

   **Linux、macOS、または 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**  
出力には、ポリシーの一意の名前となる ARN が含まれます。この ARN は、ポリシーの CloudWatch アラームを作成する場合に必要です。以下は出力の例です。

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

------

## ステップ 3: スケーリングポリシーを呼び出すアラームを作成する
<a name="step-scaling-create-alarm"></a>

最後に、以下の CloudWatch [put-metric-alarm](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html) コマンドを使用して、ステップスケーリングポリシーで使用するアラームを作成します。この例では、CPU の平均利用率に基づくアラームもあります。アラームは、少なくとも 2 つの連続する 60 秒の評価期間に 70 パーセントのしきい値に達した場合に、ALARM 状態となるよう設定されます。別の CloudWatch メトリクスを指定する、または独自のカスタムメトリクスを使用するには、`--metric-name` でその名前を指定し、`--namespace` でその名前空間を指定します。

**Linux、macOS、または 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
```