このページでは、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 を使用するをご覧ください。
セカンダリ クラスタの自動バックアップと継続バックアップの設定は、作成後に変更できます。