AWS CLIを使用して 1 つのステップスケーリングポリシーを作成する - Application Auto Scaling

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

AWS CLIを使用して 1 つのステップスケーリングポリシーを作成する

次の設定タスクにを使用して、アプリケーションの Auto Scaling AWS CLI のステップスケーリングポリシーを作成できます。

  1. スケーラブルターゲットを登録します。

  2. スケーラブルターゲットに対するステップスケーリングポリシーを追加します。

  3. CloudWatch ポリシーのアラームを作成します。

簡略化のため、このトピックの例では、Amazon ECS サービス用の CLI コマンドを例示しています。別のスケーラブルターゲットを指定するには、--service-namespace でその名前空間、--scalable-dimension でそのスケーラブルディメンション、--resource-id でそのリソース ID を指定します。各サービスの詳細情報および例については、AWS Application Auto Scaling で使用できる のサービス のトピックを参照してください。

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

スケーラブルターゲットを登録する

まだ登録していない場合は、スケーラブルターゲットを登録します。register-scalable-targetコマンドを使用して、特定のリソースをスケーラブルターゲットとしてターゲットサービスに登録します。以下の例は、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

成功した場合、このコマンドはスケーラブルターゲットの ARN を返します。

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

ステップスケーリングポリシーを作成する

スケーラブルターゲット用のステップスケーリングポリシーを作成するには、以下の例を参考にしてください。

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

  2. put-scaling-policyconfig.json作成したファイルとともに以下のコマンドを使用して、という名前のスケーリングポリシーを作成します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

    出力には、ポリシーの一意の名前となる 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

  2. put-scaling-policyconfig.json作成したファイルとともに以下のコマンドを使用して、という名前のスケーリングポリシーを作成します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

    出力には、ポリシーの一意の名前となる 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" }

スケーリングポリシーを呼び出すアラームを作成する

最後に、 CloudWatch put-metric-alarm以下のコマンドを使用して、ステップスケーリングポリシーで使用するアラームを作成します。この例では、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

ステップスケーリングポリシーを記述する

describe-scaling-policies次のコマンドを使用して、指定したサービス名前空間のすべてのスケーリングポリシーを記述できます。

aws application-autoscaling describe-scaling-policies --service-namespace ecs

--query パラメータを使用して、結果をステップスケーリングポリシーのみにフィルタリングすることができます。query 用の構文の詳細については、AWS Command Line Interface ユーザーガイドの「AWS CLIからのコマンド出力の制御」を参照してください。

Linux、macOS、または Unix

aws application-autoscaling describe-scaling-policies --service-namespace ecs \ --query 'ScalingPolicies[?PolicyType==`StepScaling`]'

Windows

aws application-autoscaling describe-scaling-policies --service-namespace ecs --query "ScalingPolicies[?PolicyType==`StepScaling`]"

以下は出力例です。

[ { "PolicyARN": "PolicyARN", "StepScalingPolicyConfiguration": { "MetricAggregationType": "Average", "Cooldown": 60, "StepAdjustments": [ { "MetricIntervalLowerBound": 0.0, "MetricIntervalUpperBound": 15.0, "ScalingAdjustment": 1 }, { "MetricIntervalLowerBound": 15.0, "MetricIntervalUpperBound": 25.0, "ScalingAdjustment": 2 }, { "MetricIntervalLowerBound": 25.0, "ScalingAdjustment": 3 } ], "AdjustmentType": "ChangeInCapacity" }, "PolicyType": "StepScaling", "ResourceId": "service/my-cluster/my-service", "ServiceNamespace": "ecs", "Alarms": [ { "AlarmName": "Step-Scaling-AlarmHigh-ECS:service/my-cluster/my-service", "AlarmARN": "arn:aws:cloudwatch:region:012345678910:alarm:Step-Scaling-AlarmHigh-ECS:service/my-cluster/my-service" } ], "PolicyName": "my-step-scaling-policy", "ScalableDimension": "ecs:service:DesiredCount", "CreationTime": 1515024099.901 } ]

ステップスケーリングポリシーを削除する

不要になったステップのスケーリングポリシーは削除できます。 CloudWatch スケーリングポリシーとアラームの両方を削除するには、以下のタスクを実行します。

スケーリングポリシーを削除する

次の delete-scaling-policy コマンドを使用します。

Linux、macOS、または Unix

aws application-autoscaling delete-scaling-policy --service-namespace ecs \ --scalable-dimension ecs:service:DesiredCount \ --resource-id service/my-cluster/my-service \ --policy-name my-step-scaling-policy

Windows

aws application-autoscaling delete-scaling-policy --service-namespace ecs --scalable-dimension ecs:service:DesiredCount --resource-id service/my-cluster/my-service --policy-name my-step-scaling-policy
CloudWatch アラームを削除するには

delete-alarms コマンドを使用します。1 つ以上のアラームを一度に削除することができます。例えば、次のコマンドを使用して Step-Scaling-AlarmHigh-ECS:service/my-cluster/my-service アラームおよび Step-Scaling-AlarmLow-ECS:service/my-cluster/my-service アラームを削除します。

aws cloudwatch delete-alarms --alarm-name Step-Scaling-AlarmHigh-ECS:service/my-cluster/my-service Step-Scaling-AlarmLow-ECS:service/my-cluster/my-service