高可用性とリードレプリカ

このページでは、Memorystore for Redis Cluster でリードレプリカを使用して高可用性を実現する方法の概要を説明します。レプリカは、高可用性と読み取りスループットという 2 つの目的に対応しています。

高可用性

Memorystore for Redis Cluster では、プライマリ Redis ノードを 1 つ以上のレプリカノードに複製することで高可用性(HA)を実現します。本番環境のワークロードには、HA 構成を使用することをおすすめします。

プライマリ ノードのデータに加えられた変更は、Redis 非同期レプリケーション プロトコルを使用してレプリカにコピーされます。レプリケーションは非同期なので、プライマリへの書き込みレートによっては、レプリカがプライマリ ノードより遅れる場合があります。プライマリに障害が発生すると、インスタンスは自動的にいずれかのレプリカにフェイルオーバーします。フェイルオーバー後、リクエストは自動的に新しいプライマリとレプリカにリダイレクトされます。

リードレプリカ

Memorystore Cluster for Redis では、ノードあたり 0、1、または 2 個のリードレプリカを持つインスタンスがサポートされています。

ノードごとに 0 個のリードレプリカを持つクラスタ形状

リードレプリカがなく、ノードが 3 つのゾーンに均等に分割された Memorystore Cluster for Redis インスタンス。

ノードごとに 1 つのリードレプリカを持つクラスタ形状

ノードごとに 1 個のリードレプリカがあり、ノードが 3 つのゾーンに均等に分割された Memorystore Cluster for Redis インスタンス。

ノードごとに 2 つのリードレプリカを持つクラスタ形状

ノードごとに 2 つのリードレプリカがあり、ノードが 3 つのゾーンに均等に分割された Memorystore Cluster for Redis インスタンス。

自動フェイルオーバー

プライマリに障害が発生すると、自動フェイルオーバーが発生します。この場合、レプリカがプライマリに昇格されます。

フェイルオーバーの場合、クライアント アプリケーションのコマンドは約 30 秒間遅延することがありますが、コマンドは破棄されず、接続は失われません。

一時的にブロックされたコマンドを再試行すると、サービス側の負荷が原因でクライアント アプリケーションのレイテンシが増加する可能性があります。