RDS for PostgreSQL でのカスケードリードレプリカの使用 - Amazon Relational Database Service

RDS for PostgreSQL でのカスケードリードレプリカの使用

バージョン 14.1 以降の RDS for PostgreSQL では、カスケードリードレプリカがサポートされています。カスケードリードレプリカにより、ソースの RDS for PostgreSQL DB インスタンスにオーバーヘッドを追加せずに読み取りをスケーリングできます。ソース DB インスタンスでは、WAL ログへの更新が各リードレプリカに送信されません。代わりに、カスケード層内の各リードレプリカは、その層内の次のリードレプリカに WAL ログの更新を送信します。これにより、ソース DB インスタンスへの負荷が軽減されます。

カスケードリードレプリカを使用すると、RDS for PostgreSQL DB インスタンスは、チェーン内の最初のリードレプリカに WAL データを送信します。その後、そのリードレプリカは、チェーン内の 2 番目のレプリカに WAL データを送信し、その動作が順に続いていきます。その結果、チェーン内のすべてのリードレプリカに RDS for PostgreSQL DB インスタンスの更新が送信されますが、ソース DB インスタンスでのオーバーヘッドは発生しません。

ソースの RDS for PostgreSQL DB インスタンスから、チェーン内にリードレプリカを 3 層まで作成することができます。例えば、RDS for PostgreSQL 14.1 DB インスタンス、rpg-db-main があるとします。以下の操作を行うことができます。

  • rpg-db-main で開始し、チェーン内に最初のリードレプリカ、read-replica-1 を作成します。

  • 次に、read-replica-1 で、チェーン内に次のリードレプリカ、read-replica-2 を作成します。

  • 最後に、read-replica-2 で、チェーン内に 3 番目のリードレプリカ、read-replica-3 を作成します。

rpg-db-main の層では、この 3 番目のカスケードリードレプリカに続く、別のリードレプリカを作成することはできません。一連の完全なインスタンス (RDS for PostgreSQL のソース DB インスタンスから、この層の最後のカスケードリードレプリカまで) は、最大 4 つの DB インスタンスで構成できます。

カスケードリードレプリカを設定するには、RDS for PostgreSQL で自動バックアップを有効にします。まずリードレプリカを作成し、RDS for PostgreSQL DB インスタンスで自動バックアップを有効にします。このプロセスは、他の Amazon RDS DB エンジンと同じです。詳細については、「リードレプリカの作成」を参照してください。

他のリードレプリカと同様に、カスケードの一部となっているリードレプリカを昇格できます。リードレプリカのチェーン内でリードレプリカを昇格させると、そのレプリカはチェーンから削除されます。例えば、rpg-db-main DB インスタンスのワークロードの一部を新しいインスタンスに移動するとします。この新しいインスタンスは経理部でのみ使用します。この例では、3 つのリードレプリカから成るチェーンがある仮定し、read-replica-2 を昇格させることにします。チェーンは以下のような影響を受けます。

  • 昇格する read-replica-2 は、レプリケーションチェーンから削除されます。

    • このリードレプリカは、完全な読み取り/書き込み DB インスタンスになります。

    • 昇格前と同じように、read-replica-3 へのレプリケーションを継続します。

  • rpg-db-main は、read-replica-1 へのレプリケーションを継続します。

リードレプリカの昇格についての詳細は、「リードレプリカをスタンドアロン DB インスタンスに昇格させる」を参照してください。

注記
  • RDS for PostgreSQL は、カスケードレプリカのメジャーバージョンアップグレードをサポートしていません。メジャーバージョンアップグレードを実行する前に、カスケードレプリカを削除する必要があります。ソース DB インスタンスと第 1 レベルのレプリカのアップグレードが完了したら、再作成できます。

  • カスケードリードレプリカの場合、RDS for PostgreSQL は、レプリケーションの第 1 レベルではソース DB インスタンスごとに 15 個のリードレプリカを、レプリケーションの第 2 レベルと 第 3 レベルではソース DB インスタンスごとに 5 個のリードレプリカをサポートします。