データベースシステムがアプリケーションから多数の読み取りリクエストを処理する場合、読み取り専用の ApsaraDB RDS for PostgreSQL インスタンスを作成して、データベースシステムの読み取り能力とアプリケーションのスループットを向上させることができます。物理レプリケーションは、プライマリ RDS インスタンスから読み取り専用 RDS インスタンスにリアルタイムでデータを同期し、両者間のデータ整合性を保証します。
読み取り専用インスタンスの詳細については、「PostgreSQL 読み取り専用インスタンス」をご参照ください。
前提条件
次の要件を満たすプライマリ RDS インスタンスが作成されていること:
インスタンスバージョン: インスタンスは利用可能なバージョンを使用する必要があります。廃止されたバージョンを使用するインスタンスに対しては、読み取り専用インスタンスを作成できません。詳細については、「AliPG (PostgreSQL 14~17) のリリースノート」をご参照ください。
インスタンスシリーズ: High-availability シリーズ。
インスタンスタイプ:
ディスク: 特別な要件はありません。
プライマリ RDS インスタンスがプレミアムローカル SSD を使用する場合、インスタンスは少なくとも 8 CPU コアと 32 GB のメモリを提供する専用インスタンスタイプを使用する必要があります。
プライマリ RDS インスタンスは、サブスクリプションまたは従量課金の課金方法を使用します。サーバーレス RDS インスタンスに対しては、読み取り専用 RDS インスタンスを作成できません。
PostgreSQL 読み取り専用インスタンスを作成する前に、基本情報 ページでプライマリインスタンスのエディションとインスタンスタイプを確認してください。プライマリインスタンスが要件を満たさない場合は、設定の変更 をクリックして Basic Edition から High-availability Edition にアップグレードしてから、読み取り専用インスタンスを作成してください。詳細については、「インスタンスの仕様変更」をご参照ください。
使用上の注意
読み取り専用 RDS インスタンスを作成する際、読み取り専用インスタンスにはプライマリ RDS インスタンスが存在する VPC を選択する必要があります。そうしない場合、インスタンスの作成に失敗し、返金が行われます。
プライマリ RDS インスタンスに対して読み取り専用 RDS インスタンスを作成することはできますが、既存の RDS インスタンスを読み取り専用 RDS インスタンスに変換することはできません。
読み取り専用 RDS インスタンスを作成すると、システムはセカンダリ RDS インスタンスから読み取り専用 RDS インスタンスにデータをレプリケートします。これにより、プライマリ RDS インスタンスで実行されているワークロードの中断を防ぎます。
読み取り専用 RDS インスタンスは、プライマリ RDS インスタンスのパラメーター設定を継承しません。読み取り専用 RDS インスタンスにはデフォルトのパラメーター設定が生成されます。ApsaraDB RDS コンソールでデフォルトのパラメーター設定を変更できます。
重要新しい汎用インスタンスタイプのプライマリ RDS インスタンスにアタッチされた読み取り専用 RDS インスタンスは、プライマリ RDS インスタンスのパラメーター設定を継承します。新しい汎用インスタンスタイプを使用する読み取り専用 RDS インスタンスの詳細については、「読み取り専用 ApsaraDB RDS for PostgreSQL インスタンスのインスタンスタイプ」をご参照ください。
読み取り専用 RDS インスタンスのストレージタイプは、プライマリ RDS インスタンスのストレージタイプと同じです。
プライマリ RDS インスタンスがプレミアムローカル SSD を使用する場合、その読み取り専用 RDS インスタンスの仕様とストレージ容量は、プライマリ RDS インスタンスの仕様とストレージ容量より低くすることはできません。
プライマリ RDS インスタンスがクラウドディスクを使用する場合、その読み取り専用 RDS インスタンスの仕様がプライマリ RDS インスタンスの仕様と同じであるか、プライマリ RDS インスタンスの仕様の 50% 以上であることを確認することをお勧めします。これにより、プライマリ RDS インスタンスとその読み取り専用 RDS インスタンス間の大幅なパフォーマンス差によって引き起こされるレプリケーションの遅延やメモリ不足 (OOM) エラーを防ぐことができます。
プライマリ RDS インスタンスがクラウドディスクを使用する場合、その読み取り専用 RDS インスタンスのストレージ容量がプライマリ RDS インスタンスのストレージ容量以上であることを確認する必要があります。プライマリ RDS インスタンスのメモリ容量がその読み取り専用 RDS インスタンスのメモリ容量より大きく、プライマリ RDS インスタンスの仕様を変更した場合、読み取り専用 RDS インスタンスは再起動されます。
読み取り専用 RDS インスタンスのメモリ容量は、次の表の要件を満たす必要があります。
プライマリ RDS インスタンスのメモリ容量
読み取り専用 RDS インスタンスのメモリ容量
(0 GB~64 GB]
プライマリ RDS インスタンスのメモリ容量の少なくとも 1/4
(64 GB~256 GB]
プライマリ RDS インスタンスのメモリ容量の少なくとも 1/6
(256 GB~9999 GB]
プライマリ RDS インスタンスのメモリ容量の少なくとも 1/8
プライマリ RDS インスタンスがプレミアムローカル SSD を使用する場合、最大 5 つの読み取り専用 RDS インスタンスを作成できます。プライマリ RDS インスタンスがクラウドディスクを使用する場合、最大 32 の読み取り専用 RDS インスタンスを作成できます。
プライマリ RDS インスタンスがプレミアムローカル SSD を使用する場合、その読み取り専用 RDS インスタンスは高可用性アーキテクチャに基づいて実行されます。プライマリ RDS インスタンスがクラウドディスクを使用する場合、その読み取り専用 RDS インスタンスはシングルノードアーキテクチャに基づいて実行されます。
説明シングルノードアーキテクチャにはスタンバイノードがないため、その可用性は保証されません。複数の読み取り専用インスタンスを購入し、libpq または Java Database Connectivity (JDBC) を使用して自動フェールオーバーを実装することをお勧めします。詳細については、「自動フェールオーバーと読み書き分離」をご参照ください。データベースプロキシを使用して自動読み書き分離を実装することもできます。詳細については、「データベースプロキシとは」をご参照ください。
作成した読み取り専用 RDS インスタンスは、サブスクリプション課金方法または従量課金方法に基づいて課金されます。サブスクリプションの読み取り専用 RDS インスタンスの料金の詳細については、ApsaraDB RDS 購入ページをご覧ください。
読み取り専用 RDS インスタンスの作成
RDS インスタンスリスト にアクセスし、上部でリージョンを選択してから、対象のインスタンス ID をクリックします。
インスタンスの分布 エリアで、読み取り専用 の右側にある Add をクリックします。
説明以前のバージョンのコンソールを使用している場合は、右側の [読み取り専用インスタンスの追加] をクリックします。

読み取り専用インスタンスのパラメーターを設定します。
パラメーター
説明
課金方法
サブスクリプション: 長期利用に適しています (一括払い)。
従量課金: 短期利用に適しています (時間単位で課金)。従量課金の読み取り専用インスタンスを作成できます。インスタンスが要件を満たしていることを確認した後、課金方法をサブスクリプションに変更できます。
アーキテクチャ
Yitian エディションは、プライマリインスタンスの [ストレージタイプ] が [ESSD] または [プレミアムパフォーマンスディスク] の場合にのみ利用可能です。
[Standard Edition] と [Yitian Edition] の詳細については、「製品タイプ」をご参照ください。
ゾーン
各ゾーンは、リージョン内の独立した物理的な場所です。同じリージョン内のゾーンには実質的な違いはありません。マルチゾーンデプロイメント方法は、ゾーンディザスタリカバリをサポートします。
インスタンスタイプ
汎用インスタンスタイプ: 汎用インスタンスタイプを選択できます。汎用 RDS インスタンスは、割り当てられたメモリと I/O リソースを排他的に占有します。同じホストにデプロイされている他の汎用インスタンスと CPU およびストレージリソースを共有します。
専用インスタンスタイプ: 専用インスタンスタイプまたは専用ホストインスタンスタイプを選択できます。専用 RDS インスタンスは、割り当てられた CPU、メモリ、ストレージ、および I/O リソースを排他的に占有します。専用ホストインスタンスタイプは、専用インスタンスファミリーで最高の仕様を提供します。専用ホスト RDS インスタンスは、RDS インスタンスがデプロイされている物理ホスト上のすべての CPU、メモリ、ストレージ、および I/O リソースを排他的に占有します。
説明各インスタンスタイプは、特定の数の CPU コア、メモリ容量、最大接続数、および最大 IOPS をサポートします。プライマリ RDS インスタンスが高性能ローカルディスクを使用する場合、読み取り専用 RDS インスタンスの仕様はプライマリ RDS インスタンスの仕様以上である必要があります。インスタンスタイプの詳細については、「読み取り専用 RDS for PostgreSQL インスタンスのインスタンスタイプ」をご参照ください。
容量
読み取り専用 RDS インスタンスにデータファイル、システムファイル、WAL ファイル、およびトランザクションファイルを保存するためにプロビジョニングされるストレージの最大量です。ストレージ容量は 5 GB 単位で変更できます。
説明読み取り専用 RDS インスタンスのストレージ容量は、プライマリ RDS インスタンスのストレージ容量より少なくすることはできません。詳細については、「RDS PostgreSQL 読み取り専用インスタンスタイプの一覧」をご参照ください。
[次へ: インスタンス設定] をクリックし、次のパラメーターを設定します。
パラメーター
説明
ネットワークタイプ
デフォルトでは、ネットワークタイプ、[VPC]、および プライマリノードの VSwitch はプライマリインスタンスのものと同じです。
インスタンスリリース保護
[課金方法] が従量課金の場合、インスタンスに対して インスタンスリリース保護 を有効にして、誤ってリリースされるのを防ぐことができます。詳細については、「インスタンスのリリース保護の有効化または無効化」をご参照ください。
リソースグループ
リソースグループはプライマリインスタンスのリソースグループと同じであり、変更できません。
タイムゾーン
タイムゾーンはプライマリインスタンスのタイムゾーンと同じです。
SLR Authorization
このパラメーターを設定する必要はありません。権限は、プライマリ RDS インスタンスを購入する際に付与されます。SLR 権限付与の詳細については、「[製品/機能変更] 2022 年 10 月 10 日から RDS for PostgreSQL インスタンスを作成するには SLR 権限付与が必要です」をご参照ください。
インスタンス名
インスタンス管理を容易にするための読み取り専用 RDS インスタンスの説明。
[次へ: 注文の確認] をクリックします。
利用規約を読み、[注文の確認] をクリックし、プロンプトに従って支払いを完了します。
読み取り専用 RDS インスタンスの作成に必要な時間は、プライマリ RDS インスタンスのストレージタイプとストレージ容量によって異なります。
プライマリ RDS インスタンスが標準 SSD を使用する場合、読み取り専用 RDS インスタンスの作成に必要な時間は、約 20 分に完全バックアップに必要な時間を加えたものです。
プライマリ RDS インスタンスがエンタープライズ SSD (ESSD) を使用する場合、読み取り専用 RDS インスタンスの作成に必要な時間は約 20 分です。
読み取り専用 RDS インスタンスを作成しても、プライマリ RDS インスタンスは影響を受けません。読み取り専用 RDS インスタンスが作成されると、プライマリ RDS インスタンスに WAL Sender プロセスが生成され、WAL ファイルを読み取り専用 RDS インスタンスに送信するために使用されます。
ApsaraDB RDS for PostgreSQL では、データ量に関係なく、スナップショットを使用して読み取り専用 RDS インスタンスが作成されます。
読み取り専用 RDS インスタンスの表示
方法 1: インスタンスリストで読み取り専用 RDS インスタンスを表示する
RDS 管理コンソールにログインし、左側のナビゲーションバーで インスタンス をクリックし、上部でリージョンを選択します。
インスタンスリストでプライマリインスタンス (
アイコン付き) を見つけ、そのドロップダウンリストを展開します。
読み取り専用インスタンスの ID をクリックします。
方法 2: プライマリ RDS インスタンスの基本情報ページで読み取り専用 RDS インスタンスを表示する
RDS インスタンスリスト に移動し、上部でリージョンを選択してから、対象のインスタンス ID をクリックします。
プライマリインスタンスの 基本情報 ページで、読み取り専用インスタンスの数にカーソルを合わせ、読み取り専用インスタンスの ID をクリックします。

読み取り専用 RDS インスタンスのデータレプリケーション遅延の表示
読み取り専用インスタンスは、特定の遅延でプライマリインスタンスからデータを同期する場合があります。遅延は、読み取り専用インスタンスの 基本情報 ページで表示できます。

関連操作
API | 説明 |
読み取り専用インスタンスを作成します。 |
よくある質問
読み取り専用 RDS インスタンスの課金方法を変更できますか?
はい、できます。詳細については、「課金方法を従量課金からサブスクリプションに変更する」または「課金方法をサブスクリプションから従量課金に変更する」をご参照ください。
読み取り専用 RDS インスタンスの構成を変更したり、読み取り専用 RDS インスタンスをリリースしたり、読み取り専用 RDS インスタンスの課金方法を変更したりした場合、読み取り専用 RDS インスタンスがアタッチされているプライマリ RDS インスタンスは影響を受けますか?
A: いいえ、影響はありません。
プライマリ RDS インスタンスでアカウントを作成した後、プライマリ RDS インスタンスの読み取り専用 RDS インスタンスでアカウントを管理できますか?
いいえ、読み取り専用 RDS インスタンスでアカウントを管理することはできません。プライマリ RDS インスタンスで作成されたアカウントは、読み取り専用 RDS インスタンスに同期され、読み取り専用 RDS インスタンスに対する読み取り権限のみを持ちます。
読み取り専用 RDS インスタンスを、ディザスタリカバリインスタンスなどの通常の RDS インスタンスに変換できますか?
A: この機能は現在サポートされていません。
読み取り専用 RDS インスタンスのデータをバックアップできますか? 読み取り専用 RDS インスタンスは自動バックアップをサポートしていますか?
読み取り専用 RDS インスタンスをバックアップする必要はありません。バックアップはプライマリ RDS インスタンスで実行されます。ApsaraDB RDS for PostgreSQL では、スナップショットバックアップが使用され、プライマリ RDS インスタンスにパフォーマンスのオーバーヘッドは発生しません。
読み取り専用 RDS インスタンスはパラレルレプリケーションをサポートしていますか?
ApsaraDB RDS for PostgreSQL では、物理レプリケーションを使用してデータが同期されます。物理レプリケーションは、データ同期と再生に WAL ファイルを使用するため、パラレルレプリケーションよりも効率的です。
トランザクションログはどのように削除されますか?
RDS インスタンスの WAL ファイルがバックアップされた後、AliPG はチェックポイント中にトランザクションログをクリアします。
読み取り専用 RDS インスタンスのデータレプリケーションの遅延に基づいて、レプリケーションが正常かどうかをどのように判断しますか?
ほとんどの場合、読み取り専用 RDS インスタンスのデータレプリケーションの遅延が 1 秒以下であれば、データレプリケーションは期待どおりに実装されています。読み取り専用 RDS インスタンスのデータレプリケーションの遅延が 1 秒を超える場合、データは特定の遅延でレプリケートされ、切断が発生する可能性があります。
プライマリ RDS インスタンスと読み取り専用 RDS インスタンス間のレプリケーション遅延の原因は何ですか?
次のセクションでは、一般的な原因と解決策について説明します:
原因 1: プライマリ RDS インスタンスの仕様が、読み取り専用 RDS インスタンスの仕様よりも高い。
解決策: 読み取り専用インスタンスのインスタンスタイプをアップグレードします。詳細については、「構成の変更」をご参照ください。
原因 2:
max_standby_streaming_delayパラメーターが不適切に設定されているため、高いレプリケーション遅延が発生します。詳細については、「インスタンスパラメーターの設定」をご参照ください。解決策:
max_standby_streaming_delayパラメーターの値を調整します:このパラメーターを小さい値に設定すると、読み取り専用 RDS インスタンスがプライマリ RDS インスタンスからデータをレプリケートする際の遅延が減少します。ただし、パラメーターの値が過度に小さい場合、読み取り専用 RDS インスタンスで実行されたトランザクションがキャンセルされる可能性があります。
値が過度に大きい場合、レプリケーションの遅延が発生する可能性があります。