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

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

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

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

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

ステップスケーリングポリシーは、一連のスケーリング調整値 (ステップ調整値) に基づいて、スケーラブルなターゲットの現在の容量を増減させます。調整は、アラーム超過のサイズに応じて異なります。超過したアラームはすべて、アラームメッセージ受信の際に Application Auto Scaling によって評価されます。

ステップ調整値

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

  • メトリクス値の下限

  • メトリクス値の上限

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

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

違反しきい値に比例して上限と下限を指定します。たとえば、現在の容量と希望する容量が 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-activitiesAWS リージョンでスケーリングアクティビティに関する情報を返す。

  • describe-scaling-policiesAWS リージョンでスケーリングポリシーに関する情報を返す。

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

Limitations

ステップスケーリングポリシーを使用する場合の制限事項は次のとおりです。

  • 特定のサービスに対してステップスケーリングポリシーを作成することはできません。ステップスケーリングポリシーは、DynamoDB、Amazon Comprehend、Lambda、Amazon Keyspaces、Amazon MSK ではサポートされていません。