Azure Cosmos DB for PostgreSQL への接続に関する問題のトラブルシューティング

適用対象: Azure Cosmos DB for PostgreSQL (PostgreSQL の Citus データベース拡張機能を利用)

接続の問題は、次のようないくつかの原因によって発生する可能性があります。

  • ファイアウォールの設定
  • 接続のタイムアウト
  • サインイン情報が正しくない
  • クラスターの接続制限に達した
  • サービスのインフラストラクチャの問題
  • サービスのメンテナンス
  • コーディネーター ノードが新しいハードウェアにフェールオーバーしている

一般的に、Azure Cosmos DB for PostgreSQL への接続の問題は、次のカテゴリに分類されます。

  • 一時的なエラー (短期間または断続的)
  • 永続的または一時的でないエラー (定期的に繰り返されるエラー)

一時的なエラーのトラブルシューティング

一時的なエラーは、さまざまな理由で発生します。 最も一般的なものには、システムのメンテナンス、ハードウェアまたはソフトウェアのエラー、コーディネーター ノードの仮想コアのアップグレードなどがあります。

クラスター ノードの高可用性を有効にすると、このような種類の問題を自動的に軽減できます。 ただし、アプリケーションでは一時的な接続の切断に備えるようにします。 また、大規模なトランザクションによって復旧の実行に時間がかかるなど、イベントによっては緩和に時間がかかることがあります。

一時的な接続の問題を解決する手順

  1. アプリケーションによってエラーが報告された時間帯に発生した既知の障害については、Microsoft Azure サービス ダッシュボードのページを参照してください。
  2. Azure Cosmos DB for PostgreSQL などのクラウド サービスに接続するアプリケーションでは、一時的なエラーを想定し、適切に対応するようにします。 たとえば、アプリケーションでは、このようなエラーをアプリケーション エラーとしてユーザーに表示するのではなく、再試行ロジックを実装して処理するようにします。
  3. クラスターがリソースの制限に近づくと、一時的な接続の問題のようにエラーが発生する可能性があります。 ノードの RAM を増やすか、ワーカー ノードを追加してデータのバランスを再調整すると、役に立つ場合があります。
  4. 接続の問題が続く場合、60 秒を超えて続く場合、または 1 日に複数回発生する場合は、Azure サポート サイトで [サポートの利用] を選択して Azure サポート リクエストを提出します。

永続的なエラーのトラブルシューティング

アプリケーションが引き続き Azure Cosmos DB for PostgreSQL に接続できない場合、最も一般的な原因は、ファイアウォールの構成ミスまたはユーザー エラーです。

  • コーディネーター ノードのファイアウォール構成: サーバーのファイアウォールが、プロキシ サーバーやゲートウェイなど、クライアントからの接続を許可するように構成されていることを確認します。
  • クライアントのファイアウォールの構成:クライアント上のファイアウォールで、データベース サーバーへの接続を許可する必要があります。 ファイアウォールによっては、名前を指定してアプリケーションを許可するだけでなく、サーバーの IP アドレスとポートを許可する必要があります。
  • ユーザー エラー:接続文字列を再度確認します。 サーバー名など、パラメーターを間違って入力している可能性があります。 Azure portal では、さまざまな言語フレームワークと psql の接続文字列が見つかります。 クラスターの [接続文字列] ページに移動します。 また、クラスターにはデータベースが 1 つしかないことと、その事前定義名は citus であることにご留意ください。

永続的な接続の問題を解決する手順

  1. クライアントの IP アドレスを許可するには、 ファイアウォール規則 を設定します。 一時的なテストのためのみには、0.0.0.0 を開始 IP アドレス、255.255.255.255 を終了 IP アドレスとするファイアウォール規則を設定します。 この規則により、すべての IP アドレスに対してサーバーが開かれます。 この規則によって接続の問題が解決する場合は、それを削除した後、IP アドレスまたはアドレス範囲を適切に制限するファイアウォール規則を作成します。
  2. クライアントとインターネット間のすべてのファイアウォールで、送信接続用にポート 5432 が開いていることを確認します (接続プールを使用している場合は 6432)。
  3. 接続文字列およびその他の接続設定を確認します。
  4. ダッシュ ボードでサービスの正常性を確認します。

次のステップ