すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:データベースプロキシ機能に関するFAQ

最終更新日:Jan 16, 2024

このトピックでは、ApsaraDB RDS for PostgreSQLのデータベースプロキシ機能に関するよくある質問に対する回答を提供します。 データベースプロキシ機能の使用時に問題が発生した場合は、このトピックを参照してください。

データベースプロキシとは

データベースプロキシは、データベースシステムとアプリケーションの間に存在し、アプリケーションからのすべての要求を転送するネットワークプロキシとして機能します。 データベースプロキシは、自動読み書き分割やトランザクション分割などの高度な機能を提供します。 データベースプロキシは使いやすく、保守も簡単で、高可用性と高性能を実現します。 詳細については、「データベースプロキシとは」をご参照ください。

汎用データベースプロキシと専用データベースプロキシの違いは何ですか?

  • 汎用: このタイプのデータベースプロキシは物理CPUリソースを共有し、無料で提供されます。 このデータベースプロキシタイプの最高仕様は、8つのデータベースプロキシによって提供される16 CPUコアです。

  • 専用: このタイプのデータベースプロキシは、割り当てられた物理CPUリソースのみを占有し、従量課金に基づいて課金されます。 このタイプのデータベースプロキシは安定したパフォーマンスを提供し、このデータベースプロキシの最高仕様は、16のデータベースプロキシによって提供される32のCPUコアです。

詳細については、「データベースプロキシの種類」および「データベースプロキシ機能の課金ルール」をご参照ください。

データベースプロキシの数とデータベースプロキシの仕様の関係は何ですか?

データベースプロキシの仕様とデータベースプロキシの数の関係を次に示します。

データベースプロキシの仕様=データベースプロキシの単位仕様 × データベースプロキシの数
説明

この計算では、データベースプロキシのユニット仕様は2つのCPUコアとして固定されています。

たとえば、データベースプロキシの数が3の場合、データベースプロキシの仕様は6 CPUコアです。 この値は、2x3 = 6の計算に基づいて得られる。

データベースプロキシの数は、データベースプロキシ機能のパフォーマンスを計算するために使用されます。 データベースプロキシの実際の数は異なります。 有効にしたデータベースプロキシの数が多い場合、データベースプロキシはRDSインスタンスのより多くのリクエストを処理できます。

データベースプロキシエンドポイントの数はデータベースプロキシの数に依存しますか?

いいえ、データベースプロキシエンドポイントの数はデータベースプロキシの数に依存しません。

データベースプロキシ機能が有効になっている各ApsaraDB RDS for PostgreSQLインスタンスは、最大7つのデータベースプロキシエンドポイントをサポートします。 各データベースプロキシエンドポイントに対して1つの内部エンドポイントと1つのパブリックエンドポイントを申請できます。 データベースプロキシエンドポイントは、以前はプロキシ端末と呼ばれていました。 詳細については、「データベースプロキシエンドポイントの作成」をご参照ください。

データベースプロキシは、プライマリRDSインスタンスのQPSまたはTPSを消費しますか。

いいえ、データベースプロキシはプライマリRDSインスタンスの1秒あたりのクエリ (QPS) または1秒あたりのトランザクション (TPS) を消費しません。

データベースプロキシエンドポイントは通常のエンドポイントと同じですか?

いいえ、データベースプロキシエンドポイントは通常のエンドポイントとは異なります。

  • 通常のエンドポイントは、RDSインスタンスにのみ送信されるすべてのリクエストを転送します。

  • データベースプロキシエンドポイントは、実行されるSQL文に基づいて、書き込み要求をプライマリRDSインスタンスに、読み取り要求を読み取り専用RDSインスタンスに自動的に転送します。 これにより、プライマリRDSインスタンスの負荷を軽減できます。

データベースプロキシ機能を有効にした後、システムはプライマリRDSインスタンスと読み取り専用RDSインスタンスの元のエンドポイントを再利用しますか。

いいえ。データベースプロキシ機能を有効にした後、システムはデータベースシステムのプライマリRDSインスタンスと読み取り専用RDSインスタンスの元のエンドポイントを再利用しません。

データベースプロキシはどのアーキテクチャを使用しますか? このアーキテクチャはフェールオーバーメカニズムを提供しますか?

データベースプロキシは、2つのプライマリノードを持つ高可用性アーキテクチャを使用します。 接続は、1:1の比率で2つのノードに分配される。 一方のノードに障害が発生した場合、もう一方のノードが障害のあるノードを引き継ぎ、システムは障害のあるノードで復元タスクを自動的にトリガーして、データベースサービスの高可用性を確保します。

データベースプロキシエンドポイントの数を増やすと、データベースプロキシのパフォーマンスが向上しますか?

いいえ、データベースプロキシエンドポイントの数を増やしても、データベースプロキシ機能のパフォーマンスは向上しません。 RDSインスタンスのデータベースプロキシ機能のパフォーマンスは、読み取り専用RDSインスタンスの数、データベースプロキシの数、およびデータベースプロキシの仕様に関連しています。

  • 読み取り専用RDSインスタンスの数を増やすと、データベースプロキシはより多くの読み取り要求を処理できます。

  • データベースプロキシの数を増やすか、データベースプロキシの仕様を増やすと、データベースプロキシ機能のパフォーマンスが向上します。

    説明

    データベースプロキシの推奨仕様は、次の計算を使用して計算されます。

    • 推奨データベースプロキシ仕様= 推奨データベースプロキシ数 × データベースプロキシの単位仕様 データベースプロキシのユニット仕様は、2つのCPUコアとして固定されています。

    • 汎用データベースプロキシの最高仕様は、16 CPUコアです。 専用データベースプロキシの最高仕様は32 CPUコアです。 次の表に、推奨されるデータベースプロキシ数の計算方法を示します。

      プロキシタイプ

      RDS High-availability Editionを実行するRDSインスタンス

      汎用データベースプロキシの推奨数

      (プライマリRDSインスタンスのCPUコア数 + プライマリRDSインスタンスに属するすべての読み取り専用RDSインスタンスのCPUコア数)/4 結果は切り上げられます。

      専用データベースプロキシの推奨数

      (プライマリRDSインスタンスのCPUコア数 + プライマリRDSインスタンスに属するすべての読み取り専用RDSインスタンスのCPUコア数)/8 結果は切り上げられます。

    たとえば、RDS High-availability Editionを実行するプライマリRDSインスタンスのCPUコアが8つ、読み取り専用RDSインスタンスのCPUコアが4つの場合、推奨されるデータベースプロキシの数は2です。 この数は、(8 + 4)/8 = 1.5の計算に基づいて得られる。 結果1.5は2に切り上げられます。 データベースプロキシの推奨仕様は4 CPUコアです。 この数は、2 × 2 = 4の計算に基づいて得られる。

データベースプロキシエンドポイントのプレフィックスを変更できますか。

はい。データベースプロキシエンドポイントのプレフィックスと、データベースプロキシエンドポイントに関連付けられているポートを変更できます。

詳細については、「データベースプロキシエンドポイントの管理」をご参照ください。

データベースプロキシへの接続数は制限されていますか? データベースプロキシでサポートされている同時接続の数?

データベースプロキシに対して確立できる接続の最大数は無制限です。 許可される接続の最大数は、データベースシステムのプライマリRDSインスタンスと読み取り専用RDSインスタンスの仕様によって異なります。

データベースプロキシでサポートされている接続数は、プライマリRDSインスタンスでサポートされている最大接続数と、プライマリRDSインスタンスの読み取り専用RDSインスタンスでサポートされている最大接続数との間の小さい方の値によって決まります。

たとえば、プライマリRDSインスタンスでサポートされている最大接続数が1,600で、プライマリRDSインスタンスの読み取り専用RDSインスタンスでサポートされている最大接続数が800の場合、データベースプロキシでサポートされている接続数は800です。

説明

データベースプロキシ機能を有効にした後、読み取りリクエストが読み取り専用RDSインスタンスではなくプライマリRDSインスタンスに転送されるようにするにはどうすればよいですか。

読み取り要求のSQL文に /* FORCE_MASTER */ を追加できます。 これにより、リクエストはプライマリRDSインスタンスに転送されます。 読み取りリクエストを読み取り専用インスタンスに転送する場合は、リクエストのSQL文に /* FORCE_SLAVE */ を追加できます。

例:

/* FORCE_MASTER */ SELECT * FROM table_name;

読み取り重みを変更した後、新しい読み取り重みは有効になりません。 どうしてでしょうか。

新しい読み取り重みは、新しい接続にのみ有効です。 既存の接続は再確立されないため、新しい読み取り重みは既存の接続には影響しません。

RDSインスタンスが障害から回復した後、データベースプロキシ機能が期待どおりにサービスを提供するまでにどれくらいの時間がかかりますか?

データベースプロキシ機能は、RDSインスタンスのヘルスステータスをリアルタイムで監視します。 この機能は、RDSインスタンスの障害を2秒以内に検出できます。 RDSインスタンスが障害から回復すると、この機能はすぐに期待どおりのサービスを提供します

VPCタイプの内部エンドポイントのVPC IDおよびvSwitch IDパラメーターを表示する方法を教えてください。

[データベースプロキシ] ページの [接続情報] セクションで、必要な内部エンドポイントを見つけ、[内部エンドポイント /ポート] 列のimage.pngアイコンの上にポインターを移動します。