ApsaraDB RDS for MySQL のデータベースプロキシ機能は、読み書き分離、持続的接続、ニアレストアクセス、トランザクション分割、コネクションプーリング、SSL 暗号化などの機能をサポートしています。 これにより、プライマリ ApsaraDB RDS for MySQL インスタンスの負荷を軽減し、RDS インスタンスの可用性とセキュリティを向上させることができます。 このトピックでは、ApsaraDB RDS コンソールで、および関連する API 操作を呼び出すことによって、RDS インスタンスのデータベースプロキシ機能を有効にする方法について説明します。 また、データベースプロキシの推奨仕様を計算する方法についても説明します。
前提条件
RDS インスタンスがプライマリ RDS インスタンスであり、以下の要件を満たしていること。
RDS エディションとデータベースエンジン: RDS インスタンスは RDS High-availability Edition または RDS Cluster Edition で実行されており、以下のデータベースエンジンバージョンの要件を満たしている必要があります。 データベースプロキシ機能は、RDS Basic Edition ではサポートされていません。 RDS インスタンスが RDS Basic Edition で実行されている場合は、RDS エディションを RDS High-availability Edition または RDS Cluster Edition にアップグレードしてから、データベースプロキシ機能を有効にすることができます。
データベースエンジンバージョン
RDS エディション
マイナーエンジンバージョン
MySQL 8.0
RDS High-availability Edition
20190915 以降
RDS Cluster Edition
要件なし
MySQL 5.7
RDS High-availability Edition
20190925 以降
RDS Cluster Edition
要件なし
MySQL 5.6
RDS High-availability Edition
20200229 以降
RDS インスタンスが RDS Basic Edition で実行されている場合、RDS インスタンスのデータベースプロキシ機能を有効にすることはできません。 この場合、RDS インスタンスを RDS Basic Edition から RDS High-availability Edition または RDS Cluster Edition にアップグレードしてから、この機能を有効にすることができます。 詳細については、「RDS エディションを RDS Basic Edition から RDS High-availability Edition にアップグレードする」および「RDS エディションを RDS Basic Edition から RDS Cluster Edition にアップグレードする」をご参照ください。
リージョン: データベースプロキシ機能を有効にする RDS インスタンスは、杭州ゾーン C または杭州ゾーン D に存在しないこと。
RDS インスタンスの [基本情報] ページに移動して、上記の情報を取得できます。 [構成情報] セクションで、[カーネルバージョンのアップグレード] が表示されているかどうかを確認できます。 [カーネルバージョンのアップグレード] が表示されている場合は、[カーネルバージョンのアップグレード] をクリックして、RDS インスタンスのマイナーエンジンバージョンを表示します。 [カーネルバージョンのアップグレード] が表示されていない場合は、RDS インスタンスは最新のマイナーエンジンバージョンで実行されています。 詳細については、「マイナーエンジンバージョンを更新する」をご参照ください。
課金ルール
汎用データベースプロキシは無料で提供されます。
専用データベースプロキシは、従量課金制で課金されます。 詳細については、「データベースプロキシの課金ルール」をご参照ください。
制限事項
RDS インスタンスのデータベースプロキシ機能を有効にする場合、RDS インスタンスは圧縮プロトコルをサポートしていません。
使用方法に関する注意事項
RDS Cluster Edition を使用している場合は、RDS クラスタ内のプライマリノードとセカンダリノードを使用して読み書き分離を実装できます。 RDS Cluster Edition で実行されている RDS インスタンスは、RDS クラスタと呼ばれます。
RDS High-availability Edition インスタンスで読み書き分離を実装する場合、プライマリインスタンスの読み取り専用インスタンスを作成し、プライマリインスタンスのデータベースプロキシを有効にすることができます。詳細については、「読み取り専用 MySQL インスタンスを作成する」をご参照ください。
データベースプロキシ機能が有効になったら、プライマリ RDS インスタンスをゾーン間で移行しないことをお勧めします。 プライマリ RDS インスタンスをゾーン間で移行すると、プライマリ RDS インスタンスとそのプロキシノードは異なるゾーンに配置されます。 これにより、アクセスレイテンシが増加し、応答が遅くなります。
説明サービス障害によりプライマリ/セカンダリスイッチオーバーがトリガーされると、プライマリ RDS インスタンスとそのプロキシノードは異なるゾーンに配置されます。 アクセスレイテンシを軽減するには、プライマリ/セカンダリスイッチオーバーを実行するか、プロキシノードを移行して、プライマリ RDS インスタンスとそのプロキシノードが同じゾーンにあることを確認します。 詳細については、「手動プライマリ/セカンダリスイッチオーバーを実行する」および「データベースプロキシをゾーン間で移行する」をご参照ください。
手順
このセクションでは、インスタンスの詳細ページで RDS インスタンスのデータベースプロキシ機能を有効または無効にする方法について説明します。 読み取り専用 RDS インスタンスを RDS インスタンスに作成するときに、データベースプロキシ機能を有効にすることもできます。 詳細については、「読み取り専用 MySQL インスタンスを作成する」をご参照ください。
データベースプロキシ機能を有効にする
インスタンス ページに移動します。 上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。 次に、RDS インスタンスを見つけて、インスタンスの ID をクリックします。
左側のナビゲーションウィンドウで、[データベースプロキシ] をクリックします。
必要なデータベースプロキシの種類を見つけて、[今すぐ有効にする] をクリックします。
[データベースプロキシの有効化] ダイアログボックスで、必要なパラメータを構成します。 次の表にパラメータを示します。
パラメータ
説明
プロキシの種類
データベースプロキシの種類。 有効な値: 汎用と専用。 詳細については、「データベースプロキシの種類」をご参照ください。
デプロイ方法
プロキシノードのデプロイモード。 有効な値: デュアルゾーンデプロイメントとシングルゾーンデプロイメント。 詳細については、「プロキシノードのデプロイアーキテクチャ」をご参照ください。
説明ゾーン間のディザスタリカバリ機能を提供し、システムの可用性を向上させるために、デュアルゾーンデプロイモードを使用することをお勧めします。
ノードの総数
プロキシノードの数。 データベースプロキシには複数のプロキシノードが含まれています。
データベースプロキシに 2 つのプロキシノードが含まれている場合、プロキシノードはシングルゾーンデプロイまたはデュアルゾーンデプロイモードでデプロイできます。
データベースプロキシに 4 つのプロキシノードが含まれている場合、プロキシノードはデュアルゾーンデプロイモードでデプロイされます。
ゾーン
プロキシノードが存在するゾーン。 データベースプロキシは RDS インスタンスと同じゾーンに配置することをお勧めします。
単一プロキシノードの CPU コア数
重要同じゾーン内のプロキシノードの仕様は同じである必要があります。
2 つのプロキシノードがデュアルゾーンデプロイモードでデプロイされている場合、プロキシノードの仕様は同じである必要があります。
汎用プロキシノードは最大 8 つの CPU コアを持つことができます。
専用プロキシノードは最大 16 の CPU コアを持つことができます。
次の表を参照して、プロキシノードに適切な仕様を選択できます。
データベースプロキシエンドポイントのゾーン
データベースプロキシエンドポイントのゾーン。 データベースプロキシ機能を有効にすると、デフォルトでデータベースプロキシエンドポイントが作成されます。 データベースプロキシエンドポイントのゾーンを指定する必要があります。 プライマリ RDS インスタンスと同じゾーンを指定することをお勧めします。
[OK] をクリックします。
[データベースプロキシ] ページにデータベースプロキシの基本情報と接続情報を表示できる場合、データベースプロキシ機能は有効になっています。
セクション/タブ
パラメータ
説明
[基本情報]
プライマリインスタンス
RDS インスタンスの ID。
プロキシインスタンスステータス
データベースプロキシのステータス。
プロキシの種類
データベースプロキシの種類。 有効な値: 汎用と専用。 汎用データベースプロキシと専用データベースプロキシの違いについては、「データベースプロキシとは」をご参照ください。
ゾーン
データベースプロキシのゾーン。 デフォルトでは、データベースプロキシはプライマリ RDS インスタンスと同じゾーンに配置されます。
プロキシの仕様
データベースプロキシの仕様。
データベースプロキシの仕様とプロキシノードの仕様の関係:
データベースプロキシの仕様 = すべてのプロキシノードの仕様
。プロキシノードの数とデータベースプロキシの仕様の関係:
プロキシノードの数 = データベースプロキシの仕様/プロキシノードの仕様
。
プロキシバージョン
データベースプロキシのバージョン。
説明データベースプロキシバージョンの詳細については、「データベースプロキシバージョンのリリースノート」をご参照ください。 RDS インスタンスのデータベースプロキシバージョンをアップグレードする方法の詳細については、「データベースプロキシバージョンをアップグレードする」をご参照ください。
[プロキシノード]
ノード ID
プロキシノードの ID。
ゾーン
プロキシノードのゾーン ID。
プロキシノードの CPU コア数
プロキシノードの仕様。
[接続情報]
プロキシエンドポイント (ターミナル) ID
各 RDS インスタンスは最大 7 つのデータベースプロキシエンドポイントをサポートしています。 データベースプロキシエンドポイントごとに、1 つの内部エンドポイントと 1 つのパブリックエンドポイントを申請できます。 また、さまざまな要件を満たすために、データベースプロキシエンドポイントごとに接続ポリシーを構成することもできます。
RDS インスタンスのデータベースプロキシ機能を有効にすると、システムは RDS インスタンスにデータベースプロキシエンドポイントを割り当てます。 データベースプロキシエンドポイントを使用して、RDS インスタンスに接続できます。 接続設定を変更する方法の詳細については、「データベースプロキシエンドポイントの接続設定を構成する」をご参照ください。
読み取り/書き込み属性
読み取り/書き込み (読み取り/書き込み分離): データベースプロキシエンドポイントは、プライマリ RDS インスタンスとその読み取り専用 RDS インスタンスに接続し、書き込みリクエストを受信できます。 これはデフォルト値です。
読み取り専用 (書き込みリクエストを受信するためにプライマリインスタンスに接続されていません): データベースプロキシエンドポイントは読み取り専用 RDS インスタンスのみに接続し、書き込みリクエストを受信できません。
詳細については、「データベースプロキシの読み取りおよび書き込み属性と読み取り重みを構成する」をご参照ください。
ニアレストアクセス
ニアレストアクセス機能は、4 つのプロキシノードが 2 つのゾーンにデプロイされているデプロイモードでのみサポートされています。 詳細については、「ニアレストアクセス機能を構成する」をご参照ください。
ネットワーク設定
データベースプロキシのゾーン、VPC、vSwitch。
vSwitch は変更できます。 vSwitch を変更する前に、vSwitch の変更の影響を理解していることを確認してください。 詳細については、「影響」をご参照ください。 [vswitch の切り替え] をクリックし、[宛先 Vswitch] パラメータと [変更時間] パラメータを構成してから、[OK] をクリックして vSwitch を変更できます。
内部エンドポイント/ポート
内部エンドポイントはデータベースプロキシエンドポイントの ID にバインドされています。 内部エンドポイントを使用して、内部ネットワーク経由で RDS インスタンスに接続し、データベースプロキシ機能を使用できます。 詳細については、「データベースプロキシエンドポイントの接続設定を構成する」をご参照ください。
エンドポイントの右側にある
アイコンをクリックして、エンドポイントのプレフィックスとエンドポイントに関連付けられているポートを変更できます。 詳細については、「データベースプロキシエンドポイントを管理する」をご参照ください。
パブリックエンドポイント/ポート
データベースプロキシエンドポイントのパブリックエンドポイントと、データベースプロキシエンドポイントに関連付けられているポート。
パブリックエンドポイントを使用して、インターネット経由で RDS インスタンスに接続し、データベースプロキシ機能を使用できます。
説明データベースプロキシは、デフォルトで内部エンドポイントを提供します。 パブリックエンドポイントを申請できます。
パブリックエンドポイントを申請した後、エンドポイントの右側にある
アイコンをクリックして、エンドポイントのプレフィックスとエンドポイントに関連付けられているポートを変更できます。 詳細については、「データベースプロキシエンドポイントを管理する」をご参照ください。
(オプション) データベースプロキシ機能を無効にする
使用方法に関する注意事項
データベースプロキシ機能を無効にすると、以下の側面で問題が発生する可能性があります。
読み書き分離: データベースプロキシ機能を使用して読み書き分離を実装している場合、機能を無効にした後、アプリケーションは読み取りリクエストと書き込みリクエストを自動的に区別したり、読み取りリクエストを読み取り専用 RDS インスタンスに転送したりできなくなります。 その結果、すべてのリクエストがプライマリ RDS インスタンスに送信されます。 これにより、プライマリ RDS インスタンスに大きな負荷がかかり、データベースシステムのパフォーマンスと安定性に影響を与える可能性があります。
接続: データベースプロキシエンドポイントを使用してアプリケーションを RDS インスタンスに接続している場合、データベースプロキシ機能を無効にすると、アプリケーションと RDS インスタンスの接続が切断されます。
接続管理: データベースプロキシ機能は、接続プール管理や持続的接続など、さまざまな機能を提供します。 この機能を無効にした場合は、アプリケーションでデータベース接続を管理するためのプログラムを作成する必要があります。 これにより、接続の確立と破棄のオーバーヘッドが増加し、パフォーマンスに影響を与える可能性があります。
セキュリティ: データベースプロキシ機能は、アクセスコントロールやセキュリティポリシーの構成などの複数の方法を使用して、データセキュリティの確保に役立ちます。 この機能を無効にすると、RDS インスタンスが公開され、攻撃者に悪用される可能性があります。
O&M: データベースプロキシ機能は、監視、ログ収集、障害検出に使用できます。 この機能を無効にした後、上記の操作を実行するために他の方法を使用する必要がある場合があります。 これにより、O&M の複雑さとワークロードが増加します。
パフォーマンス: データベースに直接接続すると、ネットワークリンクが短縮され、特定の領域内での通信効率が向上します。 ただし、クエリキャッシングや接続の再利用など、データベースプロキシ機能の最適化機能は使用できなくなります。 これは、高並列シナリオでのパフォーマンスに悪影響を及ぼします。
互換性: アプリケーションがデータベースプロキシ機能によって提供される特別な機能またはプロトコル変換に依存している場合、データベースに直接接続すると互換性の問題が発生する可能性があります。
フェールオーバーと高可用性: 特定のシナリオでは、データベースプロキシ機能を障害検出と自動フェールオーバーに使用できます。 この機能を無効にした場合は、上記の操作を手動で実行する必要があります。 これはサービスの可用性に影響します。
インスタンス接続: データベースプロキシ機能を無効にすると、データベースプロキシエンドポイント (以前のプロキシターミナル) が解放されます。 アプリケーションは、データベースプロキシエンドポイントの内部エンドポイントまたはパブリックエンドポイントを使用して RDS インスタンスに接続できなくなり、既存の接続は中断されます。 RDS インスタンスのエンドポイントは影響を受けません。
機能を無効にした後にデータベースプロキシ機能を有効にすると、データベースプロキシエンドポイントが変更されます。
手順
ApsaraDB RDS コンソールにログインし、インスタンス ページに移動します。 上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。 次に、RDS インスタンスを見つけて、インスタンス ID をクリックします。
左側のナビゲーションウィンドウで、[データベースプロキシ] をクリックします。
表示されるページの右上隅にある [データベースプロキシの無効化] をクリックします。
[OK] をクリックします。
関連操作
操作 | 説明 |
データベースプロキシを変更します。 RDS インスタンスのデータベースプロキシ機能を有効にする場合は、ConfigDBProxyService パラメータを Startup に設定する必要があります。 ビジネス要件に基づいて他のパラメータを構成できます。 | |
RDS インスタンスのデータベースプロキシの詳細をクエリします。 |