View a markdown version of this page

ターゲット追跡スケーリングポリシー - Amazon ElastiCache

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

ターゲット追跡スケーリングポリシー

ターゲット追跡スケーリングポリシーで、メトリクスを選択してターゲット値を設定します。Valkey と Redis OSS に対応した ElastiCache AutoScaling は、スケーリングポリシーをトリガーする CloudWatch アラームを作成および管理し、メトリクスとターゲット値に基づいてスケーリング調整値を計算します。スケーリングポリシーは、指定されたターゲット値、またはそれに近い値にメトリクスを維持するため、必要に応じてすべてのシャードで均一にレプリカを追加または削除します。ターゲットの追跡スケーリングポリシーは、メトリクスをターゲット値近くに維持することに加えて、負荷パターンの変動によるメトリクスの変動に合わせて調整し、フリートの容量の急速な変動を最小化します。

レプリカの Auto Scaling 基準

Auto Scaling ポリシーでは、クラスターの次の事前定義されたメトリクスを定義します。

ElastiCacheReplicaEngineCPUUtilization: ElastiCache が auto-scaling オペレーションをトリガーするために使用する、すべてのレプリカで集計された AVG EngineCPU 使用率のしきい値。使用率ターゲットは 35 パーセントから 70 パーセントの間で設定できます。

サービスが ElastiCacheReplicaEngineCPUUtilization メトリクスが Target 設定以上であることを検出した場合、シャードでレプリカを自動的に増加させます。ElastiCache は、ターゲットからの変動率と 1 つのレプリカの 2 つの数字のうち、大きい方の数に等しい数だけクラスターレプリカをスケールアウトします。スケールインの場合、全体的なメトリクス値が定義されたターゲットの 75% を下回らない限り、ElastiCache は自動スケールインしません。

スケールアウトの例では、それぞれ 5 つのシャードと 1 つのレプリカがある場合:

ターゲットを 30% 超過した場合、Valkey と Redis OSS に対応した ElastiCache はすべてのシャードにわたって 1 つのレプリカ (max(0.3, default 1)) でスケールアウトし、その結果、それぞれ 2 つのレプリカを持つ 5 つのシャードになります。

スケールインの例では、ターゲット値として 60% を選択した場合、Valkey と Redis OSS に対応した ElastiCache は、メトリクスが 45% 以下 (ターゲットの 60% を 25% 下回る) になるまで自動スケールインしません。

Auto Scaling に関する考慮事項

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

  • ターゲットの追跡スケーリングポリシーでは、指定されたメトリクスがターゲット値を超えている場合、スケールアウトする必要があると見なされます。指定されたメトリクスがターゲット値を下回っている場合、ターゲットの追跡スケーリングポリシーを使用してスケールアウトすることはできません。Valkey と Redis OSS に対応した ElastiCache は、クラスター内のすべてのシャードで既存のレプリカの最大値 (ターゲットからの偏差 % を四捨五入した値、デフォルト 1) でレプリカをスケールアウトします。

  • 指定されたメトリクスに十分なデータがない場合、ターゲットの追跡スケーリングポリシーによってスケールされません。不十分なデータは低い使用率として解釈されないため、スケールインされません。

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

  • アプリケーションの可用性を高めるために、サービスのスケールアウトはメトリクスに比例して可能な限り高速に行われますが、スケールインはより緩やかで、クラスター内のシャードで 1 個のレプリカの最大スケールインで行われます。

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

  • ターゲットの追跡スケーリングポリシーのために ElastiCache の Auto Scaling が管理する CloudWatch アラームを編集または削除しないでください。自動スケーリングは、スケーリングポリシーを削除するかクラスターを削除するときに、アラームを自動的に削除します。

  • ElastiCache の Auto Scaling は、シャード間でレプリカを手動で変更できなくすることはありません。これらの手動調整は、スケーリングポリシーにアタッチされている CloudWatch アラームに影響しませんが、これらの CloudWatch アラームをトリガーする可能性のあるメトリクスに影響する可能性があります。

  • Auto Scaling によって管理されるこれらの CloudWatch アラームは、クラスター内のすべてのシャードでの AVG メトリクスで定義されます。したがって、ホットシャードを持つと、次のいずれかのシナリオが発生する可能性があります。

    • CloudWatch アラームをトリガーするいくつかのホットシャードへの負荷が原因で、必要のない場合にスケーリングする

    • アラームが違反しないように影響を及ぼすすべてのシャードで集約された AVG が原因で、必要な場合にスケーリングしない。

  • クラスターあたりのノードに対する ElastiCache のデフォルト制限は引き続き適用されます。したがって、Auto Scaling を選択するときに、最大ノード数がデフォルトの制限を超えると予測される場合は、[AWS サービス制限] で制限の増加をリクエストし、制限タイプ [インスタンスタイプごとのクラスターあたりのノード] を選択します。

  • スケールアウト時に必要な、VPC で十分な ENI(Elastic Network Interfaces)が使用可能であることを確認します。詳細については、「Elastic Network Interface」を参照してください。

  • EC2 から十分な容量を利用できない場合、容量が利用可能になるか、十分な容量を持つインスタンスタイプにクラスターを手動で変更するまで、ElastiCache の Auto Scaling はスケールアウトしません。

  • ElastiCache の Auto Scaling は、ReservedMemoryPercent が 25% 未満のクラスターによるレプリカのスケーリングをサポートしていません。詳細については、「Valkey および Redis OSS の予約済みメモリを管理する」を参照してください。