このトピックでは、読み取り専用 ApsaraDB RDS for PostgreSQL インスタンスの概要について説明します。データベースシステムが少数の書き込みリクエストと多数の読み取りリクエストを受信する場合、1 つのプライマリ RDS インスタンスが読み取りリクエストによって過負荷になる可能性があります。1 つ以上の読み取り専用 RDS インスタンスを作成して、プライマリ RDS インスタンスから読み取りリクエストをオフロードできます。読み取り専用 RDS インスタンスは、データベースシステムの読み取り機能とアプリケーションのスループットを向上させるのに役立ちます。
概要
読み取り専用 RDS インスタンスを作成すると、システムはセカンダリ RDS インスタンスから読み取り専用 RDS インスタンスにデータを複製します。これにより、プライマリ RDS インスタンスで実行されているワークロードの中断を防ぎます。プライマリ RDS インスタンスのデータが更新されると、更新はすべての読み取り専用 RDS インスタンスに自動的に同期されます。
プライマリ RDS インスタンスがローカルディスクを使用している場合は、最大 5 つの読み取り専用 RDS インスタンスを作成できます。プライマリ RDS インスタンスがクラウドディスクを使用している場合は、最大 32 の読み取り専用 RDS インスタンスを作成できます。
プライマリ RDS インスタンスがローカルディスクを使用している場合、その読み取り専用 RDS インスタンスは高可用性アーキテクチャで実行されます。
プライマリ RDS インスタンスがクラウドディスクを使用している場合、その読み取り専用 RDS インスタンスはシングルノードアーキテクチャで実行されます。このアーキテクチャでは、読み取り専用 RDS インスタンスのスタンバイとしてセカンダリ RDS インスタンスは提供されません。サービスの可用性を確保するために、複数の読み取り専用 RDS インスタンスを購入し、libpq または Java Database Connectivity (JDBC) を使用して自動フェールオーバーを実装することをお勧めします。詳細については、「自動フェールオーバーと読み書き分離を実装する」をご参照ください。データベースプロキシ機能を使用して、自動読み書き分離を実装することもできます。詳細については、「データベースプロキシとは」をご参照ください。
次の図は、プライマリ RDS インスタンスとその読み取り専用 RDS インスタンスのトポロジを示しています。
シナリオ
プライマリ RDS インスタンスが過負荷になっている場合は、読み取り専用 RDS インスタンスを作成して読み取りリクエストを処理できます。これは、プライマリ RDS インスタンスからの読み取りリクエストのオフロードに役立ちます。
バックアップまたはメンテナンスが原因でプライマリ RDS インスタンスが一時的に使用できない場合は、読み取り専用 RDS インスタンスを使用して読み取りリクエストを処理できます。これは、業務継続性を確保するのに役立ちます。
レポート分析などのシナリオでは、読み取り専用 RDS インスタンスを使用して大量のデータをクエリおよび分析できます。これは、プライマリ RDS インスタンスには影響しません。
読み書き分離機能を使用している場合は、読み取り専用 RDS インスタンスを使用して読み書きロックの競合を防ぎ、システムのパフォーマンスとスループットを向上させることができます。
課金ルール
読み取り専用 RDS インスタンスは、サブスクリプションと従量課金の課金方法をサポートしています。サブスクリプションの読み取り専用 RDS インスタンスの料金については、ApsaraDB RDS の購入ページをご覧ください。従量課金の読み取り専用 RDS インスタンスの料金については、「読み取り専用 ApsaraDB RDS インスタンスのインスタンスタイプ」をご参照ください。
ハイライト
リージョンとゾーン: 読み取り専用 RDS インスタンスは、プライマリ RDS インスタンスと同じリージョン内にありますが、異なるゾーンに配置できます。
ネットワークタイプ: 読み取り専用 RDS インスタンスのネットワークタイプは、プライマリ RDS インスタンスのネットワークタイプと異なる場合があります。詳細については、「ApsaraDB RDS for PostgreSQL インスタンスのネットワークタイプを変更する」をご参照ください。
アカウントとデータベースの管理: 読み取り専用 RDS インスタンスのアカウントとデータベースは、プライマリ RDS インスタンスから同期されます。読み取り専用 RDS インスタンスでデータベースまたはアカウントを管理する必要はありません。
IP アドレスホワイトリストの管理: 読み取り専用 RDS インスタンスを作成すると、システムはプライマリ RDS インスタンスの IP アドレスホワイトリストを読み取り専用 RDS インスタンスに自動的に複製します。ただし、読み取り専用 RDS インスタンスの IP アドレスホワイトリストは、プライマリ RDS インスタンスの IP アドレスホワイトリストとは独立しています。読み取り専用 RDS インスタンスの IP アドレスホワイトリストを変更する場合は、「IP アドレスホワイトリストを設定する」に記載されている手順に従ってください。
監視とアラート: 読み取り専用 RDS インスタンスのパフォーマンスメトリックを監視できます。メトリックには、ディスク使用量、IOPS、接続数、CPU 使用率が含まれます。メトリックの監視データはチャートで提供されます。
読み書き分離: 読み書き分離機能は、データベースプロキシ機能と連携して、システムが書き込みリクエストをプライマリ RDS インスタンスに転送し、読み取りリクエストを読み取り専用 RDS インスタンスに転送できるようにします。これにより、プライマリ RDS インスタンスの負荷が軽減されます。プライマリ RDS インスタンスのデータベースプロキシ機能を有効にする方法については、「データベースプロキシとは」をご参照ください。
読み取り専用 RDS インスタンスの数: プライマリ RDS インスタンスがローカルディスクを使用している場合は、最大 5 つの読み取り専用 RDS インスタンスを作成できます。プライマリ RDS インスタンスがクラウドディスクを使用している場合は、最大 32 の読み取り専用 RDS インスタンスを作成できます。
使用上の注意
データバックアップ: 読み取り専用 RDS インスタンスのバックアップポリシーを設定したり、手動でバックアップを作成したりすることはできません。これらの操作は、プライマリ RDS インスタンスで実行されます。
データ移行: 読み取り専用 RDS インスタンスにデータを移行することはできません。
データベース管理: データベースを作成または削除することはできません。
アカウント管理: 読み取り専用 RDS インスタンスでアカウントを作成したり、アカウントに権限を付与したり、アカウントのパスワードを変更したり、アカウントを削除したりすることはできません。
仕様とストレージ容量:
プライマリ RDS インスタンスがクラウドディスクを使用している場合、読み取り専用 RDS インスタンスのストレージ容量は、プライマリ RDS インスタンスのストレージ容量以上である必要があります。プライマリ RDS インスタンスのメモリ容量が読み取り専用 RDS インスタンスのメモリ容量よりも大きい場合、プライマリ RDS インスタンスの仕様変更中に読み取り専用 RDS インスタンスが再起動します。
プライマリ RDS インスタンスがローカルディスクを使用している場合、その読み取り専用 RDS インスタンスの仕様とストレージ容量は、プライマリ RDS インスタンスの仕様とストレージ容量よりも小さくすることはできません。
読み取り専用 RDS インスタンスで予期しないエラー(データベースエンジン設定の複製エラーなど)が発生した場合、システムは読み取り専用 RDS インスタンスを再構築します。
プライマリ RDS インスタンスがリリースされると、プライマリ RDS インスタンスのサブスクリプション読み取り専用 RDS インスタンスは自動的に払い戻されてリリースされ、従量課金の読み取り専用 RDS インスタンスは直接リリースされます。