MemoryDB マルチリージョンでのスケーリング
クラスターの需要の変化に応じて MemoryDB のクラスター内のノードタイプまたはシャード数を変更することで、パフォーマンスを向上させたりコストを削減したりできます。MemoryDB マルチリージョンクラスターをスケーリングすると、そのクラスターに含まれているすべてのリージョンクラスターがスケーリングされます。MemoryDB マルチリージョンクラスターでは、オンラインリシャーディングがサポートされています。MemoryDB マルチリージョンクラスターでは、オフラインリシャーディングはサポートされていません。
クラスターを再スケーリングするかどうかの判断条件には、次のようなものがあります。
-
メモリプレッシャー:
リージョンクラスター内のノードがメモリプレッシャーを受けている場合、より多くのリソースがより効率よくデータを保存してリクエストを処理するようにスケールアウトまたはスケールアップできます。
ノードがメモリプレッシャーを受けているかどうかは、FreeableMemory、SwapUsage、BytesUsedForMemoryDB、MultiRegionClusterReplicationLag といったメトリクスをモニタリングすることで判断できます。
-
CPU やネットワークボトルネック:
レイテンシーやスループットがクラスターの問題となっている場合、問題解決のためにスケールアウトまたはスケールアップが必要な場合があります。
レイテンシーとスループットのレベルは、
CPUUtilization、NetworkBytesIn、NetworkBytesOut、CurrConnections、NewConnections、and MultiRegionClusterReplicationLagの各メトリクスを監視することでモニタリングできます。 -
クラスターのサイズが大きすぎます:
現在のクラスターの需要からすると、スケールインまたはスケールダウンを行ってもパフォーマンスに影響せず、コストも削減できます。
クラスターの使用状況をモニタリングし、FreeableMemory、SwapUsage、BytesUsedForMemoryDB、CPUUtilization、NetworkBytesIn、NetworkBytesOut、CurrConnections、NewConnections、および MultiRegionClusterReplicationLag といったメトリクスを使用して安全にスケールインまたはスケールダウンできるかどうかを判断できます。
MemoryDB マルチリージョンクラスターをスケールするには、水平スケーリングと垂直スケーリングの 2 つの方法があります。
水平スケーリングでは、シャードを追加または削除することで、MemoryDB マルチリージョンクラスター内のシャードの数を変更できます。オンラインのリシャーディングプロセスでは、リージョンクラスターによる受信リクエストの処理を継続しながら、スケールイン/スケールアウトすることができます。
垂直スケーリングでは、ノードタイプを変更することで、MemoryDB マルチリージョンクラスターのサイズを変更します。オンラインの垂直スケーリングでは、リージョンクラスターによる受信リクエストの処理を継続しながら、スケールアップ/スケールダウンすることができます。
スケーリングでは、デフォルトで「調整された」更新戦略が使用されます。つまり、すべてのリージョンクラスターが正常にスケールされるか、どのリージョンクラスターもスケールされないかのいずれかです。
スケールアウトオペレーションでは、「調整されない」更新戦略もサポートされます。つまり、正常にスケールアウトされるリージョンクラスターもあれば、スケールアウト試行に失敗するリージョンクラスターもあるということです。1 つのリージョンクラスターのスケールアウトが成功した場合、それ以外のすべてのリージョンクラスターは、それぞれのスケールアウトも成功するまでスケールアウトを再試行し続けます。
すべてのリージョンクラスターがスケールアウトに失敗した場合、マルチリージョンクラスターは「調整されない」スケールアウトに失敗します。
注記
「調整されない」スケールアウトでは、各リージョンクラスターのスケールアウトが異なる時間に行われた場合、リージョンクラスター間での容量の不均衡が長期間続く可能性があります。これにより、MultiRegionClusterReplicationLag メトリクスが増加し、リージョンクラスターのデータが長時間にわたって異なるものになる可能性があります。
MemoryDB マルチリージョンクラスターのリージョンクラスターはレプリカノードの数の設定を異なるものにすることができますが、リージョンクラスター内のシャードはすべて同じ数のレプリカノードを持ちます。
スケールインまたはスケールダウンのいずれかを実行して MemoryDB マルチリージョンクラスターのサイズとメモリ容量を減らす場合は、新しい設定にデータ用の十分なメモリおよび空き IP と十分なエンジンオーバーヘッドがあること、およびリージョンクラスターの MultiRegionClusterReplicationLag メトリクスが数秒以内または 1 分以内であることを確認してください。
AWS マネジメントコンソール、AWS CLI、および MemoryDB API を使用して、MemoryDB マルチリージョンクラスターを水平および垂直にスケールできます。