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

API Gateway:アウトバウンド接続プールのアラートルールの設定

最終更新日:Jan 22, 2025

アウトバウンド接続プールとは何ですか?

データは、HTTPを介して永続的な接続でシリアルに送信されます。 これは、送信者が次の要求を送信する前に、前の要求が肯定応答されるのを待たなければならないことを意味する。 アウトバウンド接続プールは、API Gatewayインスタンスがバックエンドサービスにアクセスするための接続リソースを提供します。

アウトバウンド接続プールサイズが1,200のapi.s1.smallタイプの専用インスタンスを購入し、バックエンドサービスが各リクエストに応答するのに1秒かかるとすると、インスタンスでサポートされる最大アウトバウンドリクエスト (RPS) は1,200になります。 その結果、インスタンスが1秒間に1,200を超えるリクエストをバックエンドサービスに送信した場合、接続プールが完全に占有されているため、過剰なリクエストはキューで待機します。 リクエストが500ミリ秒で接続リソースを取得できない場合、バックエンドサービスの接続に失敗しました。接続リースリクエストのタイムアウトエラーが返されます。 このようなエラーを防ぐために、接続リソースが使い果たされる前にアラートを送信するようにSimple Log Serviceを設定できます。 このようにして、できるだけ早い機会にリソース不足に対処できます。

前提条件

API Gatewayログが記録されます。 詳細については、「Log Serviceを使用したAPI呼び出しのログ管理」をご参照ください。

接続プールのアラートルールの設定

Simple Log Serviceでは、チェック頻度とトリガー条件を指定してアラートルールを設定し、条件が満たされたときにアラートをトリガーします。 このセクションでは、API Gatewayのアウトバウンド接続プールのアラートルールを設定する方法について説明します。

接続プールが完全に占有されている場合、API Gatewayは、バックエンドサービスの接続に失敗した「接続リース要求タイムアウト」エラーをクライアントに返します。 このエラーは、ログのerrorMessageフィールドによって記録されます。 このエラーメッセージを使用して、アラートルールを設定できます。 詳細については、「Log Serviceでのアラートモニタリングルールの設定」をご参照ください。

参照されるトピックのステップ2では、インスタンスID、エラーID、およびエラーメッセージに基づいてアラートルールを設定できます。 次のサンプルコードでは、クエリと分析ステートメントを示します。

instanceId: apigateway-cn-XXXXX  and errorId : D504CO and '`Connection lease request time out`' 

image.png

接続リソース不足の処理

  • API Gatewayインスタンスをアップグレードします。

    • インスタンスが共有またはサーバーレスインスタンスの場合、専用インスタンスを購入し、APIグループを新しいインスタンスに移行できます。 詳細については、「インスタンス間のAPIグループの移行」をご参照ください。

    • インスタンスが専用インスタンスの場合、API Gatewayコンソールでインスタンスの仕様をアップグレードできます。 詳細については、「インスタンス仕様の変更」をご参照ください。

  • バックエンドサービスに必要な応答時間を確認します。 このメトリック (単位: ms) は、ログのserviceLatencyフィールドによって記録されます。 これは、API Gatewayがバックエンドサービスにリクエストを送信する時点から、API Gatewayがバックエンドサービスから応答の最後のパケットを受信する時点までの時間を指します。 応答が遅いと、アウトバウンド接続リソースが不足します。 したがって、serviceLatency値にもアラートルールを設定することをお勧めします。 serviceLatency値が大きいままの場合、接続リソースが不足する傾向があります。 この場合、バックエンドのレスポンスを最適化して問題を防ぐことができます。