このトピックでは、読み取り専用のApsaraDB RDS for PostgreSQLインスタンスの概要を説明します。 データベースシステムが少数の書き込みリクエストを受信し、多数の読み取りリクエストを受信した場合、単一のプライマリRDSインスタンスが読み取りリクエストに圧倒され、ワークロードが中断される可能性があります。 プライマリRDSインスタンスからの読み取り要求をオフロードするには、1つ以上の読み取り専用RDSインスタンスを作成します。 読み取り専用RDSインスタンスは、データベースシステムの読み取り機能とアプリケーションのスループットを向上させるのに役立ちます。
概要
読み取り専用RDSインスタンスが作成されると、ApsaraDB RDSはセカンダリRDSインスタンスから読み取り専用RDSインスタンスにデータをレプリケートします。 読み取り専用RDSインスタンスが作成されると、プライマリRDSインスタンスと同じデータになります。 さらに、プライマリRDSインスタンスのデータが更新された後、ApsaraDB RDSは、プライマリRDSインスタンスにアタッチされているすべての読み取り専用RDSインスタンスへの更新を直ちに同期します。
プライマリRDSインスタンスがローカルディスクを使用している場合、最大5つの読み取り専用RDSインスタンスを作成できます。 プライマリRDSインスタンスがクラウドディスクを使用している場合、最大32の読み取り専用RDSインスタンスを作成できます。
プライマリRDSインスタンスがローカルディスクを使用している場合、読み取り専用RDSインスタンスは高可用性アーキテクチャで実行されます。
プライマリRDSインスタンスがクラウドディスクを使用している場合、読み取り専用RDSインスタンスはシングルノードアーキテクチャで実行されます。 このアーキテクチャでは、セカンダリ読み取り専用RDSインスタンスはスタンバイとしてプロビジョニングされません。 サービスの可用性を確保するために、複数の読み取り専用RDSインスタンスを購入することを推奨します。 これにより、libpqまたはJava Database Connectivity (JDBC) を使用して、作成された読み取り専用RDSインスタンス間でフェイルオーバーを実装できます。 詳細については、「自動フェールオーバーと読み書き分離の設定」をご参照ください。 データベースプロキシ機能を使用して、自動読み書き分離を実装することもできます。 詳細については、「データベースプロキシとは」をご参照ください。
次の図は、プライマリRDSインスタンスとその読み取り専用RDSインスタンスのトポロジを示しています。
シナリオ
プライマリRDSインスタンスが過負荷の場合、読み取り専用RDSインスタンスを作成して、プライマリRDSインスタンスからの読み取りリクエストをオフロードできます。
バックアップまたはメンテナンスの理由でプライマリRDSインスタンスが一時的に使用できない場合、読み取りリクエストは読み取り専用RDSインスタンスに転送され、一部のワークロードをサポートします。
読み取り専用RDSインスタンスを使用して、レポート分析などのシナリオで大量のデータをクエリおよび分析できます。 これはプライマリRDSインスタンスには影響しません。
読み書き分離機能を使用する場合は、読み取り専用RDSインスタンスを使用して、読み書きロックの競合を防ぎ、システムのパフォーマンスとスループットを向上させることができます。
課金
読み取り専用RDSインスタンスは、サブスクリプションと従量課金の課金方法をサポートしています。 サブスクリプション読み取り専用RDSインスタンスの料金の詳細については、ApsaraDB RDS購入ページをご覧ください。 従量課金の読み取り専用RDSインスタンスの料金の詳細については、「読み取り専用ApsaraDB RDSインスタンスのインスタンスタイプ」をご参照ください。
その他の特長
リージョンとゾーン: 読み取り専用RDSインスタンスは、プライマリRDSインスタンスと同じリージョン内に存在しますが、異なるゾーンに存在できます。
ネットワークタイプ: 読み取り専用RDSインスタンスのネットワークタイプは、プライマリRDSインスタンスのネットワークタイプとは異なる場合があります。 詳細については、「ApsaraDB RDS for MySQL インスタンスのネットワークタイプの変更」をご参照ください。
アカウントとデータベースの管理: 読み取り専用RDSインスタンスのアカウントとデータベースは、プライマリRDSインスタンスから同期されます。 読み取り専用RDSインスタンスのデータベースまたはアカウントを管理する必要はありません。
IPアドレスホワイトリストの管理: 読み取り専用RDSインスタンスを作成すると、ApsaraDB RDSはプライマリRDSインスタンスのIPアドレスホワイトリストを読み取り専用RDSインスタンスにレプリケートします。 ただし、読み取り専用RDSインスタンスのIPアドレスホワイトリストは、プライマリRDSインスタンスのIPアドレスホワイトリストとは独立しています。 読み取り専用RDSインスタンスのIPアドレスホワイトリストを変更する場合は、「ApsaraDB RDS for SQL ServerインスタンスのIPアドレスホワイトリストの設定」の手順に従います。
モニタリングとアラート: 読み取り専用RDSインスタンスのパフォーマンスメトリックをモニタリングできます。 メトリックには、ディスク使用率、IOPS、接続数、およびCPU使用率が含まれます。 メトリクスのモニタリングデータはチャートで提供されます。
読み書き分離: 読み書き分離機能は、データベースプロキシ機能と連携して、ApsaraDB RDS for PostgreSQLが書き込みリクエストをプライマリ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インスタンスでデータベースエンジン設定の複製に失敗するなど、予期しないエラーが発生した場合、ApsaraDB RDSは読み取り専用RDSインスタンスを再構築します。
プライマリRDSインスタンスがリリースされると、プライマリRDSインスタンスのサブスクリプション読み取り専用RDSインスタンスは自動的に返金されてリリースされ、プライマリRDSインスタンスの従量課金の読み取り専用RDSインスタンスは直接リリースされます。