クロスリージョン レプリケーションの概要

このページでは、AlloyDB for PostgreSQL のクロスリージョン レプリケーションの概要について説明します。

AlloyDB クロスリージョン レプリケーションを使用すると、プライマリ クラスタからセカンダリ クラスタとインスタンスを作成し、プライマリ リージョンで停止が発生した場合に、別のリージョンでリソースを利用できるようにできます。これらのセカンダリ クラスタとインスタンスは、プライマリ クラスタとインスタンス リソースのコピーとして機能します。

このページの主なコンセプトは次のとおりです。

  • プライマリ クラスタ。単一リージョンの読み取り / 書き込みクラスタ。

  • セカンダリ クラスタ。プライマリとは異なるリージョンにある読み取り専用クラスタ。プライマリ クラスタから非同期でレプリケートされます。AlloyDB プライマリ クラスタで障害が発生した場合は、セカンダリ クラスタをプライマリ クラスタに昇格できます。

    プライマリ クラスタには最大 5 つのセカンダリ クラスタを作成できます。すべてのセカンダリ クラスタは、単一のプライマリ クラスタから複製されます。セカンダリ クラスタを昇格させると、そのセカンダリ クラスタは独立したプライマリ クラスタになります。

  • セカンダリ インスタンス。セカンダリ クラスタの読み取り専用リーダー。プライマリ クラスタからレプリケーション ストリームを受信します。レプリケーション ストリームは、プライマリ リージョンのストレージ ボリュームに基づいてセカンダリ リージョンのストレージ ボリュームを更新します。セカンダリ クラスタがプライマリ クラスタに昇格すると、セカンダリ インスタンスがプライマリ インスタンスになります。

    セカンダリ インスタンスは、基本(ゾーン)または高可用性(リージョン)のいずれかです。

利点

AlloyDB のクロスリージョン レプリケーションのメリットは次のとおりです。

  • 障害復旧。プライマリ クラスタのリージョンが利用できなくなった場合は、別のリージョンの AlloyDB リソースを昇格してリクエストを処理できます。

  • ダウンタイムの短縮。セカンダリ クラスタで高可用性(HA)をサポートすると、メンテナンス イベントや計画外の停止中のダウンタイムを短縮できます。

  • 地理的に分散したデータ。データを地理的に分散すると、データがユーザーに近づき、読み取りレイテンシが短縮されます。

  • 地理的ロード バランシング。1 つのリージョンで接続が遅い場合や過負荷になった場合は、トラフィックを別のリージョンに転送できます。

  • 読み取りスケーリングの向上: 各クロスリージョン レプリカ(またはセカンダリ クラスタ)は最大 20 個の読み取りノードをサポートできるため、読み取りをさらにスケーリングできます。

  • データ損失なしで切り替える。クロスリージョン レプリケーションの設定では、AlloyDB はプライマリ インスタンスとセカンダリ インスタンス間の切り替えをサポートし、データ損失はありません。

クロスリージョン レプリケーションを使用する方法

AlloyDB のクロスリージョン レプリケーションを使用するには、次のタスクが必要です。

  • セカンダリ クラスタを作成します。セカンダリ クラスタは、AlloyDB プライマリ クラスタの継続的に更新されるコピーです。

  • セカンダリ クラスタを表示します。セカンダリ クラスタを作成したら、Google Cloud コンソールの [クラスタ] ページでその詳細を確認できます。

  • 読み取りプール インスタンスを追加します。読み取りプール インスタンスはセカンダリ クラスタに追加できます。読み取り容量を水平方向にスケーリングする場合は、セカンダリ クラスタに最大 20 個の読み取りノードを追加できます。

  • セカンダリ クラスタを昇格させます。セカンダリ クラスタからデータを読み取ることはできますが、フル機能のスタンドアロンのプライマリ クラスタに昇格するまで書き込むことはできません。セカンダリ クラスタを昇格させると、クラスタのセカンダリ インスタンスも、読み取りと書き込みの権限を持つプライマリ インスタンスとして昇格します。

    セカンダリ クラスタを昇格させる主なユースケースは、障害復旧です。プライマリ クラスタのリージョンでリージョンの停止が発生した場合は、セカンダリ クラスタをスタンドアロンのプライマリ クラスタに昇格させ、アプリケーションの提供を再開できます。

  • データ損失なしで切り替える。スイッチオーバーでは、データを損失することなく、プライマリ クラスタとセカンダリ クラスタのロールを入れ替えることができます。障害復旧の設定をテストしたり、ワークロードの移行を実行したりするために、切り替えを行うことができます。切り替えが完了すると、レプリケーションの方向が逆になります。

    複数のセカンダリ クラスタがある場合、スイッチオーバー コマンドを受け取ったセカンダリ クラスタがプライマリ クラスタになり、以前のプライマリ クラスタがセカンダリ クラスタになり、新しいプライマリ クラスタからレプリケートされます。他のすべてのセカンダリ クラスタは、新しいプライマリ クラスタからのレプリケーションに切り替わります。

    セカンダリ クラスタを切り替える一般的なシナリオは次の 2 つです。

    • 障害復旧演習。データ損失なしでアプリケーションを別のリージョンに切り替えて、リージョンの停止をシミュレートすることで、障害復旧プロセスのテストを行うことができます。
    • リージョン移行。AlloyDB リソースをプライマリ リージョンから別のリージョンに計画的に移行します。切り替えにより、セカンダリ クラスタが目標復旧時点(RPO)が 0 のプライマリ クラスタになり、移行でデータが失われることがなくなります。
  • 自動バックアップと継続バックアップを構成します。デフォルトでは、AlloyDB は自動バックアップと継続バックアップの構成をプライマリ クラスタから新しく作成されたセカンダリ クラスタに自動的にコピーします。セカンダリ クラスタに異なるバックアップ構成を使用する場合は、セカンダリ クラスタを作成するときにバックアップ構成を変更できます。

    プライマリ クラスタでバックアップに顧客管理の暗号鍵(CMEK)暗号化を使用する場合は、セカンダリ クラスタを作成するときに次のいずれかを行います。

    • セカンダリ クラスタのバックアップに CMEK 暗号化設定を指定します。
    • セカンダリ クラスタのバックアップを無効にします。

CMEK でバックアップを暗号化する方法については、CMEK を使用するをご覧ください。

セカンダリ クラスタの自動バックアップと継続バックアップの設定は、作成後に変更できます。

次のステップ