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