このページでは、Memorystore for Valkey のクロスリージョン レプリケーションの概要について説明します。
クロスリージョン レプリケーションの管理方法については、クロスリージョン レプリケーションを使用するをご覧ください。
クロスリージョン レプリケーションを使用すると、プライマリ インスタンスからセカンダリ インスタンスを作成して、異なるリージョンでインスタンスを読み取り可能にできます。 また、セカンダリ インスタンスは、リージョンで障害が発生した場合の障害復旧シナリオで冗長性を提供します。
このページで説明する重要なコンセプトは次のとおりです。
- プライマリ インスタンス: 単一リージョンの読み取り / 書き込みインスタンス。
- セカンダリ インスタンス: プライマリ インスタンスから非同期で複製される読み取り専用インスタンス。セカンダリ インスタンスのプロモートと切り離しについては、クロスリージョン レプリケーションを管理する方法に記載されている 切り離しタスクと スイッチオーバータスクをご覧ください。
- レプリケータ ノード: プライマリ インスタンスのシャード内のノードで、セカンダリ インスタンスのフォロワー ノードに 複製されます。シャード内のプライマリ ノードまたはレプリカ ノードは、レプリケータの役割を果たすことができます。
- フォロワー ノード: プライマリ インスタンスの レプリケータ ノードから複製されるセカンダリ インスタンス内のノード。セカンダリ インスタンスのプライマリ ノードのみがフォロワーの役割を持つことができます。
- シャード数とスロット割り当て: プライマリ インスタンスとセカンダリ インスタンスの シャード数とスロット割り当ては同じです。
特典
Memorystore for Valkey のクロスリージョン レプリケーションのメリットは次のとおりです。
- 障害復旧: プライマリ インスタンスのリージョンが使用できなくなった場合は、 別のリージョンのセカンダリ インスタンスに切り離すか、スイッチオーバーして、 読み取りリクエストと書き込みリクエストを処理できます。セカンダリ インスタンスは、スイッチオーバー コマンドまたは切り離しコマンドを発行せずに読み取りリクエストを処理します。
- 地理的に分散したデータ: データを地理的に分散すると、 データがユーザーに近づき、読み取りレイテンシが短縮されます。
- 読み取りトラフィックの地理的負荷分散: 1 つのリージョンで接続が遅い場合や過負荷になった場合は、トラフィックを別のリージョンに転送できます。
機能の動作
このセクションでは、クロスリージョン レプリケーション機能の重要な動作について説明します。
- インスタンスの容量をスケーリングする: プライマリ インスタンスの容量をスケーリングすると、 Memorystore for Valkey はプライマリ インスタンスに合わせてセカンダリ インスタンスを自動的にスケーリングします。
- レプリカ数をスケーリングする: ワークロードのニーズに応じて、プライマリ インスタンスとセカンダリ インスタンスのレプリカ数を個別にスケーリングできます。レプリカ数の更新はローカルでのみ行われ、クロスリージョン レプリケーション インスタンス コレクション内の他のインスタンスには伝播されません。
- 障害が発生する可能性のあるときにスイッチオーバーする: 障害によりプライマリ インスタンスが使用できない場合でも、スイッチオーバーを実行して セカンダリ インスタンスをプロモート できます。障害が解決すると、使用できないプライマリ インスタンスはセカンダリ インスタンスになります。
- オンライン セカンダリ インスタンスを作成する: プライマリ インスタンスにセカンダリ インスタンスを追加しても、プライマリ インスタンスはオンラインのままになります。Memorystore for Valkey がセカンダリ インスタンスを作成している間、プライマリ インスタンスはリクエストを処理してデータを複製します。
- セカンダリ インスタンスを作成する: 最大 2 つのセカンダリ インスタンスを作成できます。 同じリージョンに配置することも、異なるリージョンに配置することもできます。既存のインスタンスをセカンダリ インスタンスにすることはできません。セカンダリ インスタンスとして追加できるのは、新しいインスタンスのみです。
- 設定を同期する: Memorystore for Valkey は、プライマリ インスタンスとセカンダリ インスタンス間でほとんどのインスタンス 設定を自動的に同期します。これらの設定の詳細については、インスタンスの設定をご覧ください。
- 料金: Memorystore for Valkey は、クロスリージョン レプリケーションを使用するお客様に対して、Memorystore for Valkey がクロスリージョン レプリケーション用にプロビジョニングするセカンダリ インスタンスに対して課金します。Memorystore for Valkey がセカンダリ インスタンスにデプロイするノードとレプリカごとに、他のプライマリ インスタンスと同様に課金されます。また、異なるリージョン内の インスタンス間でデータを転送する際のネットワーク料金も発生します。
- メンテナンス アップデートを実行する: クロスリージョン レプリケーションとの互換性を確保するため、セカンダリ インスタンスの作成中に、プライマリ インスタンスで メンテナンス アップデートが行われることがあります。プライマリ インスタンスが必要なソフトウェア バージョンを実行していない場合、このアップデートが行われます。アップデート プロセスでは、セカンダリ インスタンスの作成時にレイテンシが追加される可能性があります。詳細については、メンテナンスについてをご覧ください。
- ACL ポリシーを使用する: クロスリージョン レプリケーションを使用してプライマリ インスタンスから セカンダリ インスタンスを作成する場合は、プライマリ インスタンスとセカンダリ インスタンスのアクセス 制御リスト(ACL)ポリシーを 個別に管理する必要があります。Memorystore for Valkey は、プライマリ インスタンスからセカンダリ インスタンスに ACL ポリシーを伝播しません。
クロスリージョン レプリケーションを管理する方法
クロスリージョン レプリケーションには次のタスクが含まれます。
- セカンダリ インスタンスを作成する: プライマリ インスタンスからデータを継続的に複製する セカンダリ インスタンスを作成します 。
- セカンダリ インスタンスを表示する: セカンダリ インスタンスに関する情報 を表示します。レプリケーション グループ内のプライマリ インスタンスの名前や 他のセカンダリ インスタンスなどが含まれます。
セカンダリ インスタンスを切り離す: セカンダリ インスタンスを切り離すオペレーションでは、セカンダリ インスタンスをプライマリ インスタンスから切り離します。これにより、読み取りと書き込みの両方に対応する完全な独立したインスタンスになります。切り離しオペレーションの後、セカンダリ インスタンスは、以前に関連付けられていたプライマリ インスタンスからデータを複製しなくなります。元のプライマリ インスタンスと新しく切り離されたインスタンス(以前のセカンダリ)は、互いに独立したインスタンスとして機能します。
セカンダリ インスタンスを切り離す理由は次のとおりです。
- リージョン移行: Memorystore for Valkey リソースをプライマリ リージョンから別の リージョンに計画的に移行します。
- 障害復旧: プライマリ リージョンのリソースが使用できなくなった場合は、セカンダリ リージョンの Memorystore for Valkey リソースを迅速に有効にします。セカンダリ インスタンスがプライマリ インスタンスに完全に追いついていない場合は、データが失われる可能性があります。
インスタンスを切り替える: スイッチオーバーを実行して プライマリ インスタンスとセカンダリ インスタンスのロールを入れ替えます。スイッチオーバーを実行する理由は次のとおりです。
- 障害復旧の設定をテストする
- 実際の障害復旧シナリオでスイッチオーバーする
- ワークロードの移行を実行する
スイッチオーバーが完了すると、Memorystore for Valkey はレプリケーションの方向を逆にします。以前のセカンダリ インスタンスは読み取りと書き込みの両方を受け入れることができ、以前のプライマリ インスタンスは読み取り専用に切り替わります。
クロスリージョン レプリケーションのアーキテクチャ例
この図は、us-east1 リージョンのプライマリ インスタンスと、us-west1 リージョンと asia-east1 リージョンのセカンダリ インスタンスを示しています。レプリケーションの方向は常にプライマリ インスタンスからセカンダリ インスタンスです(この例では、us-east1 リージョンから他のリージョン)。
この図では、すべてのリージョンでレプリカの数が同じですが、クロスリージョン レプリケーションでは、要件に応じてレプリカの数を変更できます。

インスタンスの設定
このセクションでは、クロスリージョン レプリケーションを使用するプライマリ インスタンスとセカンダリ インスタンスに必要な設定、コピーされる設定、オーバーライドされる設定について説明します。また、プライマリ インスタンスで構成する設定と、ローカルで構成する設定についても説明します。
セカンダリ インスタンスを作成するために必要なパラメータ
セカンダリ インスタンスを作成するには、次のパラメータの 値を設定する必要があります。
- Google Cloud **project**: プライマリ インスタンスが配置されているプロジェクト と、セカンダリ インスタンスを作成するプロジェクト。
- リージョン: セカンダリ インスタンスを配置するリージョン。
- Private Service Connect の構成: セカンダリ インスタンスのネットワーク設定。
- プライマリ インスタンス: セカンダリ インスタンスを作成するときに、プライマリ インスタンスを 指定する必要があります。セカンダリ インスタンス以外のインスタンスは、プライマリ インスタンスとして使用できます。プライマリ インスタンスがない場合は、作成します。
セカンダリ インスタンスがプライマリ インスタンスからコピーする設定
セカンダリ インスタンスを作成すると、このインスタンスはプライマリ インスタンスから次の設定をコピーします。
デフォルト設定をオーバーライドする
セカンダリ インスタンスを作成するときに、次の設定を使用してデフォルト設定をオーバーライドできます。
インスタンスの設定を更新する
Memorystore for Valkey インスタンスの設定を更新する場合、プライマリ インスタンスでのみ一部の設定を変更できます。Memorystore for Valkey は、これらの変更をセカンダリ インスタンスに自動的に同期します。
プライマリ インスタンスとセカンダリ インスタンスで、他の設定を個別に変更できます。Memorystore for Valkey は、これらの変更をローカルでのみ適用し、他のインスタンスとは同期しません。
プライマリ インスタンスの設定を構成する
プライマリ インスタンスで次の設定を変更する必要があります。 Memorystore for Valkey は、これらの変更をセカンダリ インスタンスと自動的に同期します。
ローカル設定を構成する
次の設定はローカルで構成します。
プライマリ インスタンスとセカンダリ インスタンスを切り替える際のベスト プラクティス
スイッチオーバーを実行する場合は、このセクションの手順に沿って操作することをおすすめします。これにより、アプリケーションは書き込みを追跡し、書き込みを適切なインスタンスに送信できます。
- アプリケーションによるプライマリ インスタンスへの書き込みを停止します。
プロモートするセカンダリ インスタンスが複数ある場合は、プライマリ インスタンスにプロモートするセカンダリ インスタンスを決定します。プロモートするセカンダリ インスタンスを決定する際は、次の要素を考慮してください。
- アプリケーションとインスタンスの距離。これは書き込みレイテンシに影響する可能性があります。
- データに関して最も追いついているセカンダリ インスタンス。
- 設定に関してプライマリ インスタンスに最も近いセカンダリ インスタンス。
スイッチオーバー オペレーションが完了するまで待ちます。
ステップ 2 で選択した新しくプロモートされたインスタンスに書き込みを送信するようにアプリケーションを更新します。