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