接続またはサブネット配置の問題により、ロード・バランサとAPIゲートウェイ間のリクエストが失敗する

ロード・バランサとAPIゲートウェイ・サービスで作成されたAPIゲートウェイの間のネットワーク・パスの問題をトラブルシューティングする方法について学習します。

ロード・バランサURLをAPIゲートウェイの前に配置し、リクエストが504 Gateway Timeoutを返す場合、多くの場合、障害はロード・バランサとAPIゲートウェイの間のネットワーク・パスに含まれます。バックエンド・アプリケーションが正しく動作している可能性がありますが、リクエストが新しいパスを介してAPIゲートウェイまたはバックエンド・サービスに到達しない可能性があります。

問題の症状

次の症状が1つ以上表示される場合があります。

  • 新しいロード・バランサのURLは、504 Gateway Timeoutを返します。
  • 認証は完了しますが、アプリケーションに到達しません。
  • APIゲートウェイのアクセス・ログおよび実行ログに、予想されるリクエストが表示されません。
  • 同じバックエンド・サービスは1つのパスを介して動作しますが、新しいロード・バランサURLを介して失敗します。

考えられる理由

この問題には、次の1つ以上の原因が考えられます。

  • ロード・バランサのバックエンド・セットが間違ったAPIゲートウェイ・エンドポイントを指しています。
  • ロード・バランサおよびAPIゲートウェイは、必要なトラフィック・パスを許可しないサブネットを使用します。
  • ネットワーク・セキュリティ・グループ(NSG)またはセキュリティ・リストでは、ロード・バランサとAPIゲートウェイ間のトラフィックは許可されません。
  • ルート表は、ロード・バランサとAPIゲートウェイ間のネットワーク・パスをサポートしていません。
  • リクエストは、APIゲートウェイがリクエストを処理する前にタイムアウトします。

リクエスト・パスのマップ

ネットワーク・ルールまたはバックエンド・ターゲットを更新する前に、リクエスト・パスの各部分を確認します:

  • クライアントからロード・バランサ。
  • ロード・バランサからAPIゲートウェイ。
  • バックエンド・サービスへのAPIゲートウェイ。

コンソールで、次のリソースを確認します。

  • ロード・バランサのフロントエンド・リスナー。
  • ロード・バランサのバックエンド・セット。
  • APIゲートウェイに定義されているバックエンド・ターゲット。
  • ロード・バランサ・サブネット。
  • APIゲートウェイ・サブネット。
  • API Gateway OCID。
  • APIデプロイメントOCID。

ロード・バランサ・バックエンド・セットが、古いパスや到達できないパスではなく、目的のAPIゲートウェイ・アドレスまたはエンドポイントをターゲットにしていることを確認します。

リクエストがAPIゲートウェイに到達するかどうかの確認

ロード・バランサのURLを介してリクエストを送信し、レスポンスを取得します:

curl -i https://<load-balancer-url>/<path>

リクエストのAPIゲートウェイ・ログを確認します:

  • APIゲートウェイのアクセス・ログを開きます。
  • APIゲートウェイ実行ログを開きます。
  • 失敗したリクエストの時間ウィンドウを検索します。
  • 値が使用可能な場合は、opc-request-id値を検索します。

ログ結果を使用して、リクエストが失敗した場所を特定します。

  • APIゲートウェイのログにリクエストが表示されない場合は、APIゲートウェイの前にロード・バランサまたはネットワーク・パスをトラブルシューティングします。
  • APIゲートウェイのログにリクエストが表示された場合は、APIゲートウェイからバックエンド・サービスへのパスをトラブルシューティングします。

サブネット配置およびネットワーク・ルールの確認

ロード・バランサ・サブネットおよびAPIゲートウェイ・サブネットについては、次のネットワーク・リソースを確認してください:

  • ルート表
  • NSG
  • セキュリティ・リスト

次のネットワーク要件を確認します。

  • ロード・バランサ・サブネットは、APIゲートウェイ・サブネットにトラフィックを送信できます。
  • APIゲートウェイ・サブネットは、ロード・バランサ・パスから必要なトラフィックを受信できます。
  • ロード・バランサがAPIゲートウェイへの接続に使用するプロトコルまたはポートをブロックするルールはありません。

ロード・バランサとAPIゲートウェイが新しいパスの異なるサブネットに作成された場合は、それらのサブネットを既知の動作パスと比較します。

接続の問題の修正

見つかった問題と一致する解決策を適用します。

  • ロード・バランサのバックエンド・セットが間違ったAPIゲートウェイ・ターゲットを指している場合は、バックエンド・セットを更新します。
  • ロード・バランサ・サブネットおよびAPIゲートウェイ・サブネットが目的のパスをサポートしていない場合は、サブネットの配置またはルーティング構成を更新します。
  • NSGまたはセキュリティ・リストによってパスがブロックされている場合は、イングレスまたはエグレス・ルールを更新します。
  • ルート表でロード・バランサとAPIゲートウェイ間のトラフィックが許可されない場合は、ルート・ルールを更新します。
  • APIゲートウェイがリクエストを受信しない場合は、バックエンド・サービスをトラブルシューティングする前に、ロード・バランサからAPIへのゲートウェイ・パスを修正してください。

接続の検証

バックエンド・ターゲット、サブネット配置またはネットワーク・ルールを更新した後、接続を再度検証します:

  • ロード・バランサURLを介して同じリクエストを送信します。
  • リクエストがAPIゲートウェイ・ログに表示されることを確認します。
  • ロード・バランサからAPIへのゲートウェイ・パスで504 Gateway Timeoutレスポンスが発生しなくなったことを確認します。
  • アプリケーションが目的の外部URLを介して到達可能であることを確認します。

詳細情報

詳細は、次を参照してください: