Application Auto Scaling のターゲット追跡スケーリングポリシー - Application Auto Scaling

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

Application Auto Scaling のターゲット追跡スケーリングポリシー

ターゲット追跡スケーリングポリシーでは、スケーリングメトリクスを選択してターゲット値を設定します。Application Auto Scaling は、スケーリングポリシーをトリガーする CloudWatch アラームを作成および管理し、メトリクスとターゲット値に基づいてスケーリング調整値を計算します。スケーリングポリシーは、指定されたターゲット値、またはそれに近い値にメトリクスを維持するため、必要に応じて容量を追加または削除します。ターゲット追跡スケーリングポリシーは、メトリクスをターゲット値に近い値に維持することに加えて、変化するロードパターンによるメトリクスの変化に適応します。

メトリクスの選択

以下の定義済みメトリックスは、ターゲット追跡スケーリングポリシーを作成するときに使用できます。必要に応じて、カスタムメトリックス仕様を使用して、ターゲット追跡スケーリングポリシーで監視および使用するメトリックスを定義できます。

事前定義メトリクス名

  • DynamoDBReadCapacityUtilization

  • DynamoDBWriteCapacityUtilization

  • ALBRequestCountPerTarget

  • RDSReaderAverageCPUUtilization

  • RDSReaderAverageDatabaseConnections

  • EC2SpotFleetRequestAverageCPUUtilization

  • EC2SpotFleetRequestAverageNetworkIn

  • EC2SpotFleetRequestAverageNetworkOut

  • SageMakerVariantInvocationsPerInstance

  • ECSServiceAverageCPUUtilization

  • ECSServiceAverageMemoryUtilization

  • AppStreamAverageCapacityUtilization

  • ComprehendInferenceUtilization

  • LambdaProvisionedConcurrencyUtilization

  • CassandraReadCapacityUtilization

  • CassandraWriteCapacityUtilization

  • KafkaBrokerStorageUtilization

各メトリクスは、Amazon CloudWatch に格納された時系列のデータポイントのセットを表します。AWS のほとんどのメトリックスはデフォルトで毎分報告されますが、Amazon EC2 メトリックスはデフォルトで 5 分ごとに報告されます。追加料金として、詳細モニタリングを有効にして、1 分間隔でインスタンスのメトリクスデータを取得できます。使用率の変化に迅速に対応できるように、詳細モニタリングを有効にすることをお勧めします。詳細については、「」を参照してください。インスタンスの詳細モニタリングを有効または無効にする()Linux インスタンス用 Amazon EC2 ユーザーガイド

メトリクスを選択するときは、以下の点に注意してください。

  • のすべてのメトリクスがターゲット追跡に使用できるわけではありません。これは、カスタムメトリクスを指定する場合に重要になる場合があります。メトリクスは、有効な使用率メトリクスで、スケーラブルなターゲットの使用頻度を示す必要があります。メトリクス値は、スケーラブルなターゲットを比例的にスケールするためにメトリクスデータを使用できるようにするため、スケーラブルなターゲットの容量に対して比例的に増減する必要があります。

  • ALBRequestCountPerTarget メトリクスを使用するには、ResourceLabel パラメータを指定して、メトリクスに関連付けられているターゲットグループを識別する必要があります。

  • メトリックスが CloudWatch に実際の 0 値を出力する場合(たとえば、ALBRequestCountPerTargetを参照)、アプリケーションへのトラフィックがない場合、アプリケーション Auto Scaling は 0 にスケールインできます。リクエストがルーティングされないときにスケーラブルなターゲットを 0 にスケールインするには、スケーラブルなターゲットの最小容量を 0 に設定する必要があります。

  • すべてのサービスで、ターゲットサービスのコンソールを通じてカスタムメトリクスを管理できるとは限りません。ターゲットサービスがコンソールでカスタムメトリクスをサポートしているかどうかを調べるには、そのサービスのドキュメントを参照してください。

Considerations

次の考慮事項に注意が必要です。

  • ターゲットの追跡スケーリングポリシーでは、指定されたメトリクスがターゲット値を超えている場合、スケールアウトする必要があると見なされます。指定されたメトリクスがターゲット値を下回っている場合、ターゲットの追跡スケーリングポリシーを使用してスケールアウトすることはできません。

  • ターゲット値と実際のメトリクスデータポイント間にギャップが発生する場合があります。これは、Application Auto Scaling が、追加または削除する容量を決定するときに、その数を切り上げまたは切り捨てて常に控えめに動作するためです。これにより、不十分な容量を追加したり、必要以上に容量を削除することを防ぎます。ただし、小容量のスケーラブルなターゲットの場合、実際のメトリクスデータポイントがターゲット値からかなり離れているように見えることがあります。

  • 容量が大きいスケーラブルなターゲットでは、容量を追加または削除することにより、ターゲット値と実際のメトリクスデータポイントの間のギャップが少なくなります。

  • アプリケーションの可用性を高めるために、Application Auto Scaling はメトリクスに比例してできるだけ高速にスケールアウトしますが、スケールインはより緩やかに緩やかなです。

  • それぞれが異なるメトリクスを使用していれば、スケーラブルなターゲットに対して複数のターゲットの追跡スケーリングポリシーを設定できます。Application Auto Scaling の目的は常に可用性を優先することです。そのため、その動作は、ターゲット追跡追跡ポリシーでスケールアウトまたはスケールインの準備ができているかによって異なります。ターゲット追跡ポリシーのいずれかでスケールアウトする準備ができると、スケーラブルなターゲットがスケールアウトされますが、すべてのターゲット追跡ポリシー (スケールイン部分が有効) でスケールインする準備ができている場合のみスケールインされます。

  • 複数のポリシーによって、スケーラブルなターゲットに同時にスケールアウトまたはスケールインするよう指示される場合、Application Auto Scaling はスケールインとスケールアウトの両方で最大の容量を提供するポリシーに基づいてスケールします。これにより、複数のシナリオに対応する柔軟性が高まり、アプリケーションワークロードを処理するのに十分な容量が常に確保されます。

  • ターゲット追跡スケーリングポリシーのスケールイン部分を無効にすることもできます。この機能には、スケールアウトに使用するのとは異なるメソッドをスケーリングに使用できる柔軟性があります。たとえば、スケールアウトにはターゲットの追跡スケーリングポリシーを使用しながら、スケールインにはステップスケーリングポリシーを使用できます。

  • ただし、ターゲット追跡スケーリングポリシーをステップスケーリングポリシーとともに使用する場合、ポリシー間の競合によって望ましくない動作が生じる可能性があるため、注意することをお勧めします。たとえば、ターゲット追跡ポリシーがスケールインする準備が整う前に、ステップスケーリングポリシーがスケールインアクティビティを開始した場合、スケールインアクティビティはブロックされません。スケールインアクティビティが完了した後で、ターゲット追跡ポリシーにより、スケーラブルなターゲットに再びスケールアウトするよう指示できます。

  • アラームの状態が [] の場合、ターゲット追跡スケーリングポリシーによってスケールインされません。INSUFFICIENT_DATA。詳細については、「CloudWatch アラームを使用したモニタリング」を参照してください。

  • ターゲット追跡スケーリングポリシー用に設定された CloudWatch アラームを編集または削除しないでください。ターゲット追跡スケーリングポリシーに関連付けられている CloudWatch アラームは AWS によって管理されており、不要になると自動的に削除されます。

クールダウン期間

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

ターゲット追跡スケーリングポリシーでは、次の 2 種類のクールダウン期間があります。

  • スケールアウトクールダウン期間では、スケールアウトが継続的に (ただし過剰になることなく) 行われます。ターゲット追跡スケーリングポリシーを使用して Application Auto Scaling が正常にスケールアウトすると、クールダウン時間の計算が開始されます。スケーリングポリシーは、より大きなスケールアウトがトリガーされるか、クールダウン期間が終了しない限り、必要な容量を再度増加させません。このスケールアウトクールダウン期間が有効な間は、スケールアウトアクティビティを開始することで追加された容量は、次のスケールアウトアクティビティに予定される容量の一部として繰り入れられます。

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

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

デフォルト値で開始し、値を後で微調整できます。たとえば、ターゲット追跡スケーリングポリシーが短期間に発生する変更に対して積極的になりすぎないように、場合によってはクールダウン期間を延長する必要があります。デフォルト値については、TargetTrackingScalingPolicyConfiguration()Application Auto Scaling API リファレンス

使用率の高い期間中のアプリケーションの可用性のサポート

ターゲット追跡スケーリングポリシーは、使用率が低下したときの容量の削除よりも、使用率が増加したときの容量の追加の方が積極的です。たとえば、ポリシーの指定されたメトリクスがターゲット値に達した場合、ポリシーではアプリケーションの負荷がすでに高いと見なされます。したがって、できるだけ早くメトリクス値に比例した容量を追加することで対応します。メトリクスが大きいほど、より多くの容量が追加されます。

メトリクスがターゲット値を下回ると、ポリシーでは使用率が最終的に再び増加すると予想されます。したがって、使用率がターゲット値(通常は 10% 以上)より十分に低いしきい値を超えた場合にのみ、容量を削除することでスケーリングの速度が低下します。この保守的な動作の意図は、アプリケーションの需要が以前ほど高いレベルでなくなった場合にのみ、容量が削除されるようにすることです。これは現在、すべてのターゲット追跡スケーリングポリシーのデフォルトの動作です (ただし、動作は将来変更される可能性があります)。

周期的な性質のワークロードの場合、スケジュールされたスケーリングを使用してスケジュールに従って容量の変更を自動化することもできます。スケジュールされたアクションごとに、新しい最小容量値と新しい最大容量値を定義できます。これらの値は、スケーリングポリシーの境界を形成します。

スケジュールされたスケーリングとターゲットトラッキングスケーリングの組み合わせにより、容量がすぐに必要になったときに、使用率レベルの急激な増加による影響を軽減できます。

ポリシーの作成、管理、削除のスケーリングに一般的に使用されるコマンド

スケーリングポリシーを操作するために一般的に使用されるコマンドは次のとおりです。

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

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

  • describe-scaling-activitiesAWS リージョンでスケーリングアクティビティに関する情報を返す。

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

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

Limitations

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

  • スケーラブルなターゲットを Amazon EMR クラスターにすることはできません。ターゲット追跡スケーリングポリシーは、Amazon EMR ではサポートされていません。

  • Amazon MSK クラスターがスケーラブルターゲットである場合、スケールインは無効になり、有効にすることはできません。

  • 使用することはできませんRegisterScalableTargetまたはPutScalingPolicyAPI オペレーションを使用して AWS Auto Scaling プランを更新できます。スケーリングプランの使用については、「」を参照してください。AWS Auto Scalingドキュメント内) を参照してください。