このページでは、AlloyDB for PostgreSQL のクロスリージョン レプリケーションの概要について説明します。
AlloyDB クロスリージョン レプリケーションを使用すると、プライマリ クラスタからセカンダリ クラスタとインスタンスを作成し、プライマリ リージョンで停止が発生した場合に、別のリージョンでリソースを利用できるようにできます。これらのセカンダリ クラスタとインスタンスは、プライマリ クラスタとインスタンス リソースのコピーとして機能します。
このページの主なコンセプトは次のとおりです。
- プライマリ クラスタ。単一リージョンの読み取り / 書き込みクラスタ。
- セカンダリ クラスタ。プライマリとは異なるリージョンにある読み取り専用クラスタ。プライマリ クラスタから非同期でレプリケートされます。AlloyDB プライマリ クラスタで障害が発生した場合は、セカンダリ クラスタをプライマリ クラスタに昇格できます。
- セカンダリ インスタンス。セカンダリ クラスタの読み取り専用リーダー。プライマリ クラスタからレプリケーション ストリームを受信します。レプリケーション ストリームは、プライマリ リージョンのストレージ ボリュームに基づいてセカンダリ リージョンのストレージ ボリュームを更新します。セカンダリ クラスタがプライマリ クラスタに昇格すると、セカンダリ インスタンスがプライマリ インスタンスになります。
- アクティブなセカンダリ ノード。セカンダリ インスタンスの一部であるノード。このノードはアクティブなままで、リクエストに応答します。
- スタンバイ セカンダリ ノード。セカンダリ インスタンスの一部であるノード。AlloyDB がアクティブ ノードの可用性の欠如を検出すると、スタンバイ ノードを昇格させて新しいアクティブ ノードとして機能させます。
利点
AlloyDB のクロスリージョン レプリケーションのメリットは次のとおりです。
障害復旧。プライマリ クラスタのリージョンが利用できなくなった場合は、別のリージョンの AlloyDB リソースを昇格してリクエストを処理できます。
ダウンタイムの短縮。セカンダリ クラスタで高可用性(HA)をサポートすると、メンテナンス イベントや計画外の停止中のダウンタイムを短縮できます。
地理的に分散したデータ。データを地理的に分散すると、データがユーザーに近づき、読み取りレイテンシが短縮されます。
地理的ロード バランシング。1 つのリージョンで接続が遅い場合や過負荷になっている場合は、トラフィックを別のリージョンに転送できます。
読み取りパフォーマンスの向上。これにより、AlloyDB リソースをアプリケーションのリージョンの近くで使用できます。
データ損失なしで切り替える。単一のセカンダリ クラスタを使用するクロスリージョン レプリケーション設定の場合、AlloyDB はプライマリ インスタンスとセカンダリ インスタンス間の切り替えをサポートし、データの損失はありません。
クロスリージョン レプリケーションを使用する方法
AlloyDB のクロスリージョン レプリケーションを使用するには、次のタスクが必要です。
セカンダリ クラスタを作成します。セカンダリ クラスタは、AlloyDB プライマリ クラスタの継続的に更新されるコピーです。
セカンダリ クラスタを表示します。セカンダリ クラスタを作成したら、 Google Cloud コンソールの [クラスタ] ページで詳細を確認できます。
読み取りプール インスタンスを追加します。読み取りプール インスタンスはセカンダリ クラスタに追加できます。読み取り容量を水平方向にスケーリングする場合は、セカンダリ クラスタに最大 20 個の読み取りノードを追加できます。
セカンダリ クラスタを昇格させます。セカンダリ クラスタからデータを読み取ることはできますが、フル機能のスタンドアロンのプライマリ クラスタに昇格するまで書き込むことはできません。セカンダリ クラスタを昇格させると、クラスタのセカンダリ インスタンスも、読み取りと書き込みの権限を持つプライマリ インスタンスとして昇格します。
セカンダリ クラスタをプライマリ クラスタに昇格させる一般的なシナリオは次の 2 つです。
- リージョン移行。AlloyDB リソースをプライマリ リージョンから別のリージョンに計画的に移行します。
- 障害復旧。プライマリ リージョンのリソースが使用できなくなった場合に、セカンダリ リージョンの AlloyDB リソースを迅速に有効にします。レプリケーション ラグにより、一部のデータが失われる可能性があります。
セカンダリ クラスタを昇格させると、読み取りと書き込みの機能を含む、完全に機能するプライマリ インスタンスを持つスタンドアロン クラスタに変換されます。昇格したクラスタは、以前に関連付けられていたプライマリ クラスタのデータを複製しなくなります。
データ損失なしで切り替える。スイッチオーバーでは、データを損失することなく、プライマリ クラスタとセカンダリ クラスタのロールを入れ替えることができます。障害復旧の設定をテストしたり、ワークロードの移行を実行したりするために、切り替えを行うことができます。切り替えが完了すると、レプリケーションの方向が逆になります。
データ損失なしのスイッチオーバーは、単一のセカンダリ インスタンスを使用するクロスリージョン レプリケーション設定でのみサポートされます。
自動バックアップと継続バックアップを構成します。デフォルトでは、AlloyDB は自動バックアップと継続バックアップの構成をプライマリ クラスタから新しく作成されたセカンダリ クラスタに自動的にコピーします。この自動レプリケーションが不要な場合は、セカンダリ クラスタを作成するときにバックアップ構成を変更できます。
プライマリ クラスタがバックアップに顧客管理の暗号鍵(CMEK)暗号化を使用している場合は、セカンダリ クラスタの作成時に次のいずれかを行います。
- セカンダリ クラスタのバックアップに CMEK 暗号化設定を指定します。
- セカンダリ クラスタのバックアップを明示的に無効にします。
CMEK でバックアップを暗号化する方法については、CMEK を使用するをご覧ください。
セカンダリ クラスタの自動バックアップと継続バックアップの設定は、作成後に変更できます。