接続数が多すぎるためにプライマリApsaraDB RDS for PostgreSQLインスタンスの負荷が高くなったり、ワークロードに読み書き分離が必要な場合は、ApsaraDB RDS for PostgreSQLのデータベースプロキシ機能を使用できます。 この機能は、プライマリRDSインスタンスからのリクエストをオフロードするための読み書き分割やトランザクション分割などの機能を提供します。 この機能は使いやすく、維持しやすく、高可用性と高性能を提供します。
概要
データベースプロキシは、データベースシステムとアプリケーションの間に存在し、アプリケーションからのすべての要求を受信するネットワークプロキシとして機能します。 データベースプロキシエンドポイントを使用してRDSインスタンスに接続し、データベースプロキシ機能のさまざまな機能を使用できます。 これにより、RDSインスタンスの接続管理が簡素化されます。 詳細については、「データベースプロキシエンドポイントを使用したApsaraDB RDS For PostgreSQLインスタンスへの接続」をご参照ください。
シナリオ
プライマリRDSインスタンスは、トランザクションにカプセル化された多数のリクエストにより、負荷が高くなります。
接続数が多すぎるため、プライマリRDSインスタンスの負荷が高くなります。
読み書き分割が必要です。
読み取り専用のワークロードを処理し、ワークロードを分離する必要があります。
説明データベースシステムが1つのプライマリRDSインスタンスと4つの読み取り専用RDSインスタンスで構成され、アプリケーションAとアプリケーションBの2つのアプリケーションがあるとします。アプリケーションAは読み取り要求のみを開始し、アプリケーションBは読み取り要求と書き込み要求の両方を開始します。 アプリケーションAとアプリケーションBをデータベースシステムに接続します。 2つの読み取り専用RDSインスタンスを読み取り専用属性を持つプロキシ端末AにバインドしてアプリケーションAからの要求を処理し、プライマリRDSインスタンスと他の2つの読み取り専用RDSインスタンスを読み取り /書き込み属性を持つプロキシ端末BにバインドしてアプリケーションBからの要求を処理することができます。アプリケーションAとアプリケーションBは、データベースシステム内で物理的に分離されています。
用語
データベースプロキシエンドポイント (旧プロキシ端末)
データベースプロキシエンドポイントは、データベースプロキシの中核です。 ビジネス要件、データベースプロキシエンドポイントのプレフィックス、およびデータベースプロキシエンドポイントに関連付けられているポートに基づいて、データベースプロキシエンドポイントの接続設定を構成できます。 データベースプロキシエンドポイントを使用してRDSインスタンスに接続する場合、データベースプロキシ機能の高度な機能を使用できます。
データベースプロキシ機能が有効になっている各RDSインスタンスは、最大7つのデータベースプロキシエンドポイントをサポートします。 各データベースプロキシエンドポイントに対して1つの内部エンドポイントと1つのパブリックエンドポイントを申請できます。 各データベースプロキシエンドポイントの接続設定を構成して、さまざまなビジネス要件を満たし、サービスの柔軟性を向上させることもできます。 詳細については、「データベースプロキシエンドポイントの接続設定の設定」および「データベースプロキシエンドポイントを使用してApsaraDB RDS For PostgreSQLインスタンスに接続する」をご参照ください。
読み書き分離
読み書き分離は、データベースプロキシエンドポイントを使用して読み書き要求を自動的に転送できることを示します。
データベースシステムが多数の読み取りリクエストと少数の書き込みリクエストを受信した場合、プライマリRDSインスタンスが読み取りリクエストを効率的に処理できず、ワークロードが中断される可能性があります。 読み書き分離機能を使用すると、システムは書き込みリクエストをプライマリRDSインスタンスに転送し、読み取りリクエストを読み取り専用RDSインスタンスに転送できます。 これにより、プライマリRDSインスタンスの負荷が軽減されます。 詳細については、「読み書き分離の概要」をご参照ください。
トランザクション分割
トランザクション分割機能は、データベースプロキシに対して自動的に有効になります。 この機能により、システムは、トランザクション内の書き込み操作の前に読み取り要求をデータベースシステムの読み取り専用RDSインスタンスに転送できます。 これにより、プライマリRDSインスタンスの負荷が軽減されます。 詳細については、「トランザクション分割」をご参照ください。
説明明示的なトランザクションは分割できません。 これらの明示的なトランザクションは、BEGINまたはSTARTステートメントを実行することによって開始されるトランザクションを含む。
トランザクション分割機能を有効にすると、グローバルな一貫性を確保できません。 この機能を使用する前に、この機能がワークロードに適しているかどうかを評価することをお勧めします。
トランザクション分割機能を無効にすることはできません。
データベースプロキシの種類
ApsaraDB RDS for PostgreSQLは、汎用および専用データベースプロキシを提供します。
汎用: データベースプロキシは物理CPUリソースを共有し、無料で提供されます。 このタイプのデータベースプロキシは、費用対効果が高い。
専用: データベースプロキシは、割り当てられた物理CPUリソースのみを占有し、従量課金に基づいて課金されます。 このタイプのデータベースプロキシは、安定したパフォーマンスを実現します。
次の表に、2種類のデータベースプロキシの違いを示します。
項目 | 汎用データベースプロキシ | 専用データベースプロキシ |
課金方法 | 無料です。 | 従量課金 詳細については、「データベースプロキシの課金ルール」をご参照ください。 |
リソースタイプ | 物理CPUリソースを共有します。 | 物理CPUリソースのみを占有し、高いパフォーマンスと安定性を実現します。 |
プロキシ仕様 | 最高: 16コア (8データベースプロキシ) 。 | 最高: 32コア (16データベースプロキシ) 。 |
RDSエディション | RDS高可用性エディション。 | |
アーキテクチャ | 高可用性冗長アーキテクチャ。 | |
読み書き分離 | サポートされています。 | |
トランザクション分離 | サポートされています。 | |
データベースプロキシエンドポイントの数 | 1から7。 各データベースプロキシエンドポイントに対して1つの内部エンドポイントと1つのパブリックエンドポイントを申請できます。 |
次の計算は、データベースプロキシの仕様とデータベースプロキシの数の関係を示しています。データベースプロキシの仕様=データベースプロキシの単位仕様 × データベースプロキシの数
。 この計算では、データベースプロキシのユニット仕様は2つのCPUコアとして固定されています。 たとえば、データベースプロキシの数が3の場合、データベースプロキシの仕様は6 CPUコアです。 この値は、2x3 = 6
の計算に基づいて得られる。
使用上の注意
詳細については、「データベースプロキシの使用に関する注意事項」をご参照ください。
課金ルール
詳細については、「データベースプロキシの課金ルール」をご参照ください。
使用法
詳細については、「データベースプロキシ機能の使用」をご参照ください。