📝

API Gateway と Lambda のループ速度を調べてみた

に公開

API Gateway - Lambda - API Gateway - Lambda ... の無限ループがどの程度の速度で行われるのか調べてみました。

前提

  • 使用リージョン: 東京
  • 呼び出し元: 日本国内
  • API Gateway はリージョンの REST API
  • Lambda のランタイム: Node.js 22.x
  • API Gateway の呼び出し方法: axios で呼び出し
  • 呼び出し速度の確認方法: Lambda の Count メトリクス
  • 計測期間: Lambda コンソールのテストボタン押下後約 10 秒間

Lambda のコード

index.js
const axios = require('axios');

exports.handler = async (event) => {
  const res = await axios.get("API Gateway の URL");
  return "done";
};

結果

Count メトリクスは 10 秒間で 30 回記録されていました。
そのため、単純計算では秒間 3 回呼び出されるという速度でした。

ただし、API Gateway - Lambda がどの程度の速度で呼び出しを行うかについては環境設定やアプリケーションに依存すると思われます。
以下のガイドラインにも明記されている通り、性能指標については各環境での実測値が適切な指標になるため、本ブログの情報は参考情報にとどめてください。
技術的なお問い合わせに関するガイドライン | AWS サポート

  • AWS では各サービスの性能指標についてご案内しておりません(ドキュメントで公開されているものはこの限りではありません)。
  • 「性能」の多くは、お客様の環境やワークロードに依存します。一般的にご案内できる情報を AWS が持ち得ない点をご理解ください。
  • お客様ご自身の環境で実際に測定していただくことが、適切な指標になりうると考えております。実測したい環境を容易に複製し、破棄できるのがクラウドのメリットです。ご活用ください。

Lambda の再帰ループ検出について

Lambda 再帰ループ検出を使用した無限ループの防止 - AWS Lambda

現時点では、Lambda は Amazon SQS、Amazon S3、および Amazon SNS に関連する再帰ループのみを検出するため、他の AWS のサービス が関与するループによって Lambda 関数が意図しない形で使用される可能性があります。

API Gateway - Lambda 間の再帰ループは本ブログ執筆時点では検出対象外です。
繰り返しになりますが、無限ループは料金の高騰や他の関数実行の阻害につながりますので検証する際には十分ご注意ください。

まとめ

今回は API Gateway と Lambda のループ速度を調べてみました。
どなたかの参考になれば幸いです。

参考資料

Discussion