Redis 用 Amazon ElastiCache
Redis 用 ElastiCache ユーザーガイド (API バージョン 2015-02-02)

Redis (クラスターモードが有効) クラスターのスケーリング

クラスターの需要の変化に応じて Redis (クラスターモードが有効) のクラスター内のシャード数を変更することで、パフォーマンスを向上させたりコストを削減することができます。そのために、スケーリングプロセス中でもクラスターがリクエストを処理し続けることができる、オンライン水平スケーリングの使用をお勧めします。

クラスターを再スケーリングするかどうかの判断条件には、次のようなものがあります。

  • メモリプレッシャー:

    クラスター内のノードがメモリプレッシャーを受けている場合、より多くのリソースがより効率よくデータを保存してリクエストを処理するようにスケールアウトできます。

    ノードがメモリプレッシャーを受けているかどうかは、FreeableMemorySwapUsageBytesUseForCache といったメトリクスをモニタリングすることで判断できます。

  • CPU やネットワークボトルネック:

    レイテンシーやスループットがクラスターの問題となっている場合、問題解決のためにスケールアウトが必要な場合があります。

    CPUUtilizationNetworkBytesInNetworkBytesOutCurrConnections、および NewConnections といったメトリクスをモニタリングすることで、レイテンシーとスループットのレベルを監視できます。

  • クラスターのサイズが大きすぎます:

    現在のクラスターの需要からすると、スケールインを行ってもパフォーマンスに影響せず、コストも削減できます。

    FreeableMemorySwapUseageBytesUseForCacheCPUUtilizationNetworkBytesInNetworkBytesOutCurrConnections および NewConnections といったメトリクスを使用して、安全にスケーリング可能かどうかを判断するためにクラスターの使用を監視できます。

パフォーマンスに対するスケーリングの影響

オフライン処理を使用してスケーリングすると、処理の大部分でクラスターがオフラインになるため、リクエストに対応できなくなります。オンラインメソッドを使用してスケーリングすると、スケーリングは大量の演算を行うオペレーションであるため、パフォーマンスがある程度低下します。その場合でも、クラスターはスケーリングオペレーション全体を通してリクエストに対応しつづけます。エクスペリエンスがどれほど低下するかは、通常の CPU 使用率とデータによって異なります。

Redis (クラスターモードが有効) のクラスターをスケーリングするには、オフラインとオンラインという 2 つの方法があります。どちらを選んだ場合でも、次のことを実行できます。

  • ノードグループを追加または削除して、レプリケーショングループ内のノードグループ (シャード) 数を変更します。

  • 新しいクラスターで、古いクラスターと異なるスロットを設定します。オフラインメソッドに限られます。

  • クラスターのノードのノードタイプを変更します。より小さいノードタイプに変更する場合は、新しいノードサイズに、データと Redis のオーバーヘッドに対する十分なメモリがあることを確認してください。オフラインメソッドに限られます。

    詳細については、「ノードサイズの選択」を参照してください。