ApsaraDB RDS for MySQL のデータベースプロキシは、読み書き分離、持続的接続、最近傍アクセス、トランザクション分割、コネクションプーリング、Secure Sockets Layer (SSL) 暗号化などの機能をサポートしています。データベースプロキシは、プライマリインスタンスの負荷を軽減し、インスタンスの可用性とセキュリティを向上させます。このトピックでは、ApsaraDB RDS コンソールまたは API 操作を使用して、ApsaraDB RDS for MySQL インスタンスのデータベースプロキシを有効にする方法について説明します。また、推奨されるプロキシ仕様の計算方法についても説明します。
前提条件
データベースプロキシを有効にするには、プライマリインスタンスが次の要件を満たす必要があります。
インスタンスが、高可用性版またはクラスター版を実行しており、次の表のデータベースバージョンの要件を満たしていること。データベースプロキシは、ベーシック版を実行しているインスタンスでは有効にできません。ベーシック版のインスタンスは、高可用性版またはクラスター版にアップグレードできます。
データベースエンジンとバージョン
インスタンスのエディション
マイナーエンジンバージョン
MySQL 8.0
高可用性版
20190915 以降
クラスター版
要件なし
MySQL 5.7
高可用性シリーズ
20190925 以降
クラスター版
要件なし
MySQL 5.6
高可用性版
20200229 以降
リージョン:インスタンスが中国 (杭州) リージョンのゾーン C またはゾーン D にないこと。
前述の情報は、お使いのインスタンスの 基本情報 ページで確認できます。設定情報 セクションで、[マイナーエンジンバージョンをアップグレード] ボタンが表示されている場合、クリックして現在のバージョンを確認できます。ボタンが表示されていない場合、お使いのインスタンスはすでに最新バージョンです。詳細については、「マイナーエンジンバージョンをアップグレードする」をご参照ください。
課金
汎用データベースプロキシは無料です。
専用データベースプロキシは従量課金制です。詳細については、「データベースプロキシの料金」をご参照ください。
制限事項
データベースプロキシは圧縮プロトコルをサポートしていません。
注意事項
クラスター版インスタンスの場合、インスタンスのプライマリノードとセカンダリノードを使用して、読み書き分離アーキテクチャを実装できます。
高可用性版インスタンスの場合、読み書き分離を実装するには、読み取り専用 ApsaraDB RDS for MySQL インスタンスを作成し、データベースプロキシを有効にする必要があります。
データベースプロキシを有効にした後、プライマリ RDS インスタンスを別のゾーンに移行しないでください。プライマリインスタンスを移行すると、インスタンスとデータベースプロキシが異なるゾーンに配置されることになります。これにより、データベースアクセスのレイテンシと応答時間が増加します。
説明サービス障害により RDS インスタンスでプライマリ/セカンダリフェールオーバーが発生した場合、手動でプライマリノードとセカンダリノードを切り替えるか、プロキシを別のゾーンに移行することができます。これにより、RDS インスタンスのプライマリゾーンがプロキシゾーンと同じになり、アクセスレイテンシを最小限に抑えることができます。
操作手順
このセクションでは、インスタンス詳細ページからデータベースプロキシ機能を有効または無効にする方法について説明します。読み取り専用インスタンスを作成する際にデータベースプロキシ機能を有効にすることもできます。詳細については、「読み取り専用 ApsaraDB RDS for MySQL インスタンスの作成」をご参照ください。
データベースプロキシの有効化
[RDS インスタンス] ページに移動します。上部のナビゲーションバーでリージョンを選択します。次に、ターゲットインスタンスの ID をクリックします。
左側のナビゲーションウィンドウで、データベースプロキシ をクリックします。
ターゲットのプロキシタイプの下にある [今すぐ有効にする] をクリックします。
データベースプロキシの有効化 ダイアログボックスで、次の表に記載のパラメーターを設定します。
パラメーター
説明
プロキシタイプ
プロキシタイプ。有効な値:汎用および専用。詳細については、「プロキシタイプ」をご参照ください。
デプロイメント方式
シングルゾーンとデュアルゾーンの両方のデプロイがサポートされています。詳細については、「エージェントのデプロイアーキテクチャ」をご参照ください。
説明クロスゾーンのディザスタリカバリを確保し、システムの可用性を向上させるために、データベースプロキシにはデュアルゾーンデプロイを使用することを推奨します。
ノードの総数
データベースプロキシインスタンスは複数のプロキシノードで構成され、以下をサポートします。
2:シングルゾーンまたはデュアルゾーンデプロイ用
4:デュアルゾーンデプロイ用
ゾーン
プロキシノードが配置されるゾーン。データベースプロキシと RDS インスタンスには同じゾーンを選択することを推奨します。
プロキシノードあたりの CPU コア数
重要同じゾーン内のプロキシノードは、同じ仕様である必要があります。
デュアルゾーンデプロイで 2 つのプロキシノードをデプロイする場合、2 つのノードは同じ仕様である必要があります。
汎用:1〜8 コア。
専用:1〜16 コア。
単一のプロキシノードに適切な仕様を選択するには、以下の手順に従ってください。
データベースプロキシエンドポイントゾーン
プロキシを有効にすると、デフォルトでプロキシエンドポイントが作成されます。プロキシエンドポイントのゾーンを指定する必要があります。プライマリ RDS インスタンスのプライマリゾーンと同じゾーンを選択することを推奨します。
OK をクリックします。
データベースプロキシ タブに基本情報と接続情報が表示されている場合、データベースプロキシは有効になっています。
カテゴリ
パラメーター
説明
基本情報
プライマリインスタンス
ApsaraDB RDS for MySQL インスタンスの ID。
プロキシインスタンスのステータス
プロキシインスタンスの実行ステータス。
プロキシタイプ
プロキシタイプ。有効な値:汎用および専用。汎用プロキシと専用プロキシの違いについては、「プロキシタイプ」をご参照ください。
ゾーン
プロキシインスタンスのゾーン。これはプライマリインスタンスのプライマリゾーンと同じゾーンです。
プロキシ仕様
現在のプロキシ仕様。
プロキシ仕様と単一ノード仕様の関係は次のとおりです:
プロキシ仕様 = すべてのプロキシノード仕様の合計。プロキシノード数とプロキシ仕様の関係は次のとおりです:
プロキシノード数 = プロキシ仕様 / 単一プロキシノードの仕様
プロキシバージョン
プロキシのマイナーエンジンバージョン。
説明各マイナーバージョンの更新内容については、「データベースプロキシのマイナーバージョンリリースノート」をご参照ください。データベースプロキシのマイナーエンジンバージョンをアップグレードするには、「データベースプロキシのマイナーエンジンバージョンのアップグレード」をご参照ください。
Node Type
ノード ID
プロキシノードの ID。
ゾーン
プロキシノードが配置されているゾーン。
エージェントノード CPU コア
単一プロキシノードの仕様。
接続情報
Proxy Endpoint (Terminal) ID
各 ApsaraDB RDS for MySQL インスタンスは、1〜7 個のプロキシエンドポイントをサポートします。各プロキシエンドポイントに対して、1 つの内部エンドポイントと 1 つのパブリックエンドポイントを作成できます。また、各プロキシエンドポイントに異なるアクセスポリシーを設定することもできます。
プロキシを有効にすると、1 つのプロキシエンドポイントが自動的に割り当てられます。それを直接使用できます。設定を変更するには、「データベースプロキシエンドポイントのアクセスポリシーの設定」をご参照ください。
読み書き属性
読み書き (読み書き分離) (デフォルト):プライマリインスタンスと読み取り専用インスタンスの両方に接続します。書き込みリクエストを受け付けます。
読み取り専用 (プライマリインスタンスに接続せず、書き込みリクエストは受け付けません):読み取り専用インスタンスにのみ接続します。書き込みリクエストは受け付けません。
詳細については、「読み書き属性と読み取りの重みの設定」をご参照ください。
最近傍アクセス
最近傍アクセス機能は、デュアルゾーンデプロイで 4 つのプロキシノードを持つデプロイメントでのみサポートされます。詳細については、「最近傍アクセスの設定」をご参照ください。
ネットワーク情報
プロキシのゾーン、VPC、および vSwitch の情報。
vSwitch を変更できます。 vSwitch を変更する前に、影響を必ずご確認ください。 vSwitch の切り替え をクリックし、[移行先 VSwitch] と [変更時間] を選択して、OK をクリックします。
Internal Endpoint/Port
この内部エンドポイントは、プロキシエンドポイント ID にバインドされています。このエンドポイントを使用して、内部ネットワークから ApsaraDB RDS for MySQL インスタンスに接続し、データベースプロキシ機能を使用できます。詳細については、「データベースプロキシエンドポイントのアクセスポリシーの設定」をご参照ください。
エンドポイントの横にある
アイコンをクリックして、エンドポイントのプレフィックスとポート番号を変更できます。詳細については、「データベースプロキシエンドポイントの設定」をご参照ください。
パブリックエンドポイントとポート
プロキシのパブリックエンドポイントとポート。
このエンドポイントを使用して、インターネットから ApsaraDB RDS for MySQL インスタンスに接続し、データベースプロキシ機能を使用できます。
説明データベースプロキシは、デフォルトで内部エンドポイントを提供します。パブリックエンドポイントをリクエストすることもできます。
パブリックエンドポイントをリクエストした後、エンドポイントの横にある
アイコンをクリックして、エンドポイントのプレフィックスとポート番号を変更できます。詳細については、「データベースプロキシエンドポイントの設定」をご参照ください。
(任意) データベースプロキシの無効化
注意事項
データベースプロキシを無効にすると、次のような影響が生じる可能性があります。
読み書き分離が機能しなくなる:データベースプロキシを使用して読み書き分離を行っている場合、プロキシを無効にすると、アプリケーションは読み取りリクエストを読み取り専用インスタンスにルーティングできなくなります。すべてのリクエストがプライマリインスタンスに送信されます。これにより、プライマリインスタンスが過負荷になり、データベースのパフォーマンスと安定性に悪影響を及ぼす可能性があります。
接続の失敗:データベースプロキシを使用してデータベースに接続している場合、プロキシを無効にすると、プロキシエンドポイントを介してデータベースにアクセスしているアプリケーションは切断されます。
接続管理の問題:Alibaba Cloud データベースプロキシは、接続プール管理や持続的接続などの機能を提供します。プロキシを無効にした後は、アプリケーション側で接続管理を実装する必要があります。これにより、接続の作成と破棄のオーバーヘッドが増加し、パフォーマンスに悪影響を及ぼす可能性があります。
セキュリティリスク:データベースプロキシはセキュリティバリアとして機能し、アクセス制御やセキュリティポリシーなどの機能を提供します。プロキシを無効にすると、データベースインスタンスが直接公開される可能性があり、攻撃のリスクが高まります。
運用保守の複雑さの増加:プロキシは通常、モニタリング、ログ収集、障害検出などの機能を提供します。プロキシを無効にした後は、これらの機能を他の手段で実装する必要がある場合があります。これにより、運用保守の複雑さとワークロードが増加します。
パフォーマンスへの影響:データベースに直接接続すると、ネットワークホップが 1 つ減り、ローカル通信の効率が向上する可能性がありますが、クエリキャッシュや接続の再利用など、プロキシの最適化機能が失われます。これにより、高い同時実行性が求められるシナリオでパフォーマンスに悪影響を及ぼす可能性があります。
互換性の問題:アプリケーションがプロキシによって提供される特別な機能やプロトコル変換に依存している場合、直接接続すると互換性の問題が発生する可能性があります。
フェールオーバーと高可用性:一部のシナリオでは、データベースプロキシが障害検出と自動フェールオーバーに関与する場合があります。プロキシが無効になっている場合、これらの状況を手動で処理する必要があります。これは、サービスの高可用性に影響します。
データベース接続:データベースプロキシを無効にすると、プロキシエンドポイントが削除されます。アプリケーションは、内部またはパブリックプロキシエンドポイントを介してデータベースインスタンスに接続できなくなります。既存の接続は終了します。ApsaraDB RDS for MySQL インスタンスのエンドポイントは影響を受けません。
無効にした後にプロキシを再度有効にすると、プロキシエンドポイントが変更されます。
操作手順
[RDS インスタンス] ページに移動します。上部のナビゲーションバーでリージョンを選択します。次に、ターゲットインスタンスの ID をクリックします。
左側のナビゲーションウィンドウで、データベースプロキシ をクリックします。
ページの右上隅で、[データベースプロキシの無効化] をクリックします。
OK をクリックします。
関連 API
API | 説明 |
ApsaraDB RDS for MySQL インスタンスのデータベースプロキシ機能を有効にする場合、ConfigDBProxyService パラメーターを Startup に設定する必要があります。必要に応じて他のパラメーターを設定します。 | |
ApsaraDB RDS for MySQL インスタンスのデータベースプロキシの詳細をクエリします。 |