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