接続またはサブネット配置の問題により、ロード・バランサと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を介して到達可能であることを確認します。
詳細情報
詳細は、次を参照してください: