Application Auto Scaling のステップスケーリングポリシー - Application Auto Scaling

Application Auto Scaling のステップスケーリングポリシー

ステップスケーリングでは、ユーザーがスケーリングメトリクス、およびスケーリングプロセスをトリガーする CloudWatch アラームのしきい値を選択するとともに、指定された数の評価期間にわたってしきい値違反が発生している場合にスケーラブルターゲットをどのようにスケールするかを定義します。

スケーリングメトリクスが、スケーラブルなターゲットのキャパシティに比例してスケールする使用率メトリクスである場合は、ターゲット追跡スケーリングポリシーを使用することをお勧めします。詳細については、「Application Auto Scaling のターゲット追跡スケーリングポリシー」を参照してください。より高度なスケーリングポリシーの設定には、ステップスケーリングによりターゲット追跡スケーリングを使用するオプションが引き続き用意されています。たとえば、必要に応じて、使用率が一定のレベルに達したときにより積極的な応答を設定できます。

ステップスケーリングポリシーは、一連のスケーリング調整値 (ステップ調整値) に基づいて、スケーラブルなターゲットの現在の容量を増減させます。調整値は、アラーム違反の大きさに応じて異なります。すべてのアラーム違反は、Application Auto Scaling がアラームメッセージを受け取るときに評価されます。

ステップ調整値

ステップスケーリングポリシーを作成するときは、アラーム超過のサイズに基づいてスケールできるようにする 1 つ以上のステップ調整値を追加します。各ステップ調整値は、次のように指定します。

  • メトリクス値の下限

  • メトリクス値の上限

  • スケーリング調整タイプに基づいてスケールする量

CloudWatch は、CloudWatch アラームに関連付けられたメトリクスの統計に基づいて、メトリクスデータポイントを集計します。アラーム違反が発生すると、適切なスケーリングポリシーがトリガーされます。Application Auto Scaling は、raw メトリクスデータではなく、CloudWatch からの最新のメトリクスデータポイントに指定された集計タイプを適用します。ステップ調整によって定義された上限と下限に対して、この集約メトリクス値を比較することにより、実行するステップ調整が決定されます。

違反しきい値に比例して上限と下限を指定します。たとえば、現在の容量と希望する容量が 10 のスケーラブルなターゲットがあるとします。違反しきい値が 50% の CloudWatch アラームがあります。PercentChangeInCapacity の調整タイプがあり、スケールアウトおよびスケールインポリシーに以下のステップ調整値が含まれるとします。

例: スケールアウトポリシーのステップ調整値
下限 上限 調整

0

10

0

10

20

10

20

null

30

例: スケールインポリシーのステップ調整値
下限 上限 調整

-10

0

0

-20

-10

-10

null

-20

-30

これにより、次のスケーリング設定が作成されます。

Metric value -infinity 30% 40% 60% 70% infinity ----------------------------------------------------------------------- -30% | -10% | Unchanged | +10% | +30% -----------------------------------------------------------------------

以下の点は、スケーラブルターゲットの希望容量と現在の容量に関連してスケーリング設定の動作をまとめたものです。

  • 集合メトリクス値が 40 より大きく 60 未満である間は、現在の容量と必要な容量が維持されます。

  • メトリクス値が 60 に到達すると、Application Auto Scaling はスケーラブルターゲットの希望容量に 1 を足して 11 にします。これはスケールアウトポリシーの 2 番目のステップ調整値に基づきます (10 の 10% を追加)。新しい容量が追加されると、Application Auto Scaling は現行の容量を 11 に増やします。この容量の増加後にメトリクス値が 70 に上昇すると、Application Auto Scaling はターゲット容量に 3 を足して 14 にします。これはスケールアウトポリシーの 3 番目のステップ調整値に基づきます (11 の 30% である 3.3 を、3 に切り捨てて追加)。

  • メトリクス値が 40 になると、Application Auto Scaling はスケールインポリシーの 2 番目のステップ調整値 (14 の 10%、つまり 1.4 を四捨五入した 1 を削除) に基づき、ターゲット容量から 1 を引いて 13 にします。この容量の減少後にメトリクス値がさらに 30 まで減った場合、Application Auto Scaling はスケールインポリシーの 3 番目のステップ調整 (13 の 30%、つまり 3.9 を四捨五入した 3 を削除) に基づき、ターゲット容量から 3 を引いて 10 にします。

スケーリングポリシーのステップ調整を指定するときは、次の点に注意してください。

  • ステップ調整値の範囲に重複や間隔があってはなりません。

  • 1 つのステップ調整値のみ、下限を null (負の無限大) にすることができます。下限が負のステップ調整値がある場合は、下限が null のステップ調整値が必要です。

  • 1 つのステップ調整値のみ、上限を null (正の無限大) にすることができます。上限が正のステップ調整値がある場合は、上限が null のステップ調整値が必要です。

  • 同じステップ調整値で上限と下限を null にすることはできません。

  • メトリクス値が超過しきい値を上回っている場合、下限にその値を含み、上限には含みません。メトリクス値が超過しきい値を下回っている場合、下限にその値を含まず、上限に含みます。

スケーリング調整タイプ

選択したスケーリング調整タイプに基づいて、最適なスケーリングアクションを実行するスケーリングポリシーを定義できます。調整タイプは、スケーラブルターゲットの現在の容量に対する割合、または絶対数で指定できます。

Application Auto Scaling は、ステップスケーリングポリシーに対して以下の調整タイプをサポートします。

  • ChangeInCapacity – スケーラブルターゲットの現行容量を、指定された値に基づいて増減させます。正の値は容量を増やし、負の値は容量を減らします。例えば、現行容量が 3 で調整値が 5 の場合、Application Auto Scaling は容量に 5 を追加して合計を 8 にします。

  • ExactCapacity – スケーラブルターゲットの現行容量を、指定された値に変更します。この調整タイプには正の値を指定します。例えば、現行容量が 3 で調整値が 5 の場合、Application Auto Scaling は容量を 5 に変更します。

  • PercentChangeInCapacity – スケーラブルターゲットの現行容量を、指定された割合 (%) に基づいて増減させます。正の値は容量を増やし、負の値は容量を減らします。例えば、現行容量が 10 で調整値が 10 パーセントの場合、Application Auto Scaling は容量に 1 を追加して合計を 11 にします。

    注記

    調整後の値が整数ではない場合、Application Auto Scaling はその値を以下のように四捨五入します。

    • 1 より大きい値は小数点以下が切り捨てられます。たとえば、12.712 に丸められます。

    • 0 と 1 の間の値は 1 に丸められます。たとえば、.671 に丸められます。

    • 0 と -1 の間の値は -1 に丸められます。たとえば、-.58-1 に丸められます。

    • -1 未満の値は小数点以下が切り捨てられます。たとえば、-6.67-6 に丸められます。

    PercentChangeInCapacity では、MinAdjustmentMagnitude パラメータを使用してスケーリングする最小の数量を指定できます。たとえば、25% 追加するポリシーを作成して、最小数量を 2 に指定するとします。スケーラブルなターゲットの容量が 4 の時にスケーリングポリシーを実行すると、4 の 25% は 1 です。しかし、最小増分が 2 に指定されていることから、Application Auto Scaling は 2 を追加します。

クールダウン期間

前回のスケーリングアクティビティが有効になるまで待機する時間をクールダウン期間と呼びます。

  • スケールアウトポリシーでは、スケールアウトが継続的に (ただし過剰になることなく) 行われます。ステップスケーリングスケーリングポリシーを使用して Application Auto Scaling が正常にスケールアウトすると、クールダウン時間の計算が開始されます。スケーリングポリシーは、より大きなスケールアウトがトリガーされるか、クールダウン期間が終了しない限り、必要な容量を再度増加させません。このクールダウン期間が有効な間は、スケールアウトアクティビティを開始することで追加された容量は、次のスケールアウトアクティビティに予定される容量の一部として繰り入れられます。たとえば、あるアラームが容量を 2 増加させるステップスケーリングポリシーをトリガーする場合、スケーリングアクティビティは正常に完了し、クールダウン期間が始まります。クールダウン期間中にアラームが再度トリガーし、さらに進んだステップ調整を行う場合 (3 の増加)、以前の 2 の増加は現在の容量の一部とみなされます。したがって、容量に追加されるのは 1 だけです。

  • スケールインポリシーでは、スケールインを控え目に行ってアプリケーションの可用性を保護することを目的としているため、スケールインアクティビティはクールダウン期間が終了するまでブロックされます。ただし、スケールインアクティビティの後、クールダウン期間中に別のアラームがスケールアウトアクティビティをトリガーした場合、Application Auto Scaling scale によってターゲットが即座にスケールアウトされます。この場合、スケールインアクティビティのクールダウン期間は停止し、完了しません。

クールダウン期間は秒単位で測定され、スケーリングポリシー関連のスケーリングアクティビティにのみ適用されます。クールダウン期間中、スケジュールされたアクションがスケジュールされた時間に開始されると、クールダウン期間の期限が切れるのを待たずにスケーリングアクティビティを即座にトリガーできます。

スケーリングポリシーの作成、管理、および削除用によく使用されるコマンド

スケーリングポリシーの操作用によく使用されるコマンドには以下が含まれます。

  • register-scalable-target AWS リソースまたはカスタムリソースをスケーラブルターゲット (Application Auto Scaling がスケールできるリソース) として登録し、スケーリングを一時停止および再開します。

  • put-scaling-policy 既存のスケーラブルターゲットのスケーリングポリシーを追加または変更します。

  • describe-scaling-activities AWS リージョン内でのスケーリングアクティビティに関する情報を返します。

  • describe-scaling-policies AWS リージョン内のスケーリングポリシーに関する情報を返します。

  • delete-scaling-policy スケーリングポリシーを削除します。

Limitations

以下は、ステップスケーリングポリシーの使用時における制限事項です。

  • 特定のサービスにはステップスケーリングポリシーを作成できません。ステップスケーリングポリシーは、DynamoDB、Amazon Comprehend、Lambda、Amazon Keyspaces、Amazon MSK、ElastiCache、または Neptune 向けにサポートされていません。