📝

[小ネタ] API Gateway を 10 個つなげた際のレスポンス速度を確認してみた

に公開

API 1 個のレスポンスよりも約 3 倍の時間がかかりました。

構成

  • 1 ~ 9 番目の API
    • 統合タイプ: HTTP
    • エンドポイント: 次の API の エンドポイント
  • 10 番目の API
    • 統合タイプ: Lambda
  • Lambda コード: デフォルト
  • Lambda のランタイム: Python 3.13

測定方法

  • ブラウザから 1 番目の API のエンドポイントにアクセス
  • ブラウザ: Google Chome 138.0.7204.96
  • 初回アクセス後に同じタブで 9 回リロード
  • ブラウザのキャッシュは保持
  • 測定時のネットワーク速度: 450 Mbps (下り)
  • API Gateway および Lambda 関数は東京リージョンに構築

結果

  • API 10 個の場合のレスポンス速度
    • 平均: 167 ms
    • 最大: 247 ms
    • 最小: 143 ms

  • API 1 個の場合のレスポンス速度
    • 平均: 49 ms
    • 最大: 102 ms
    • 最小: 36 ms

  • 初回アクセス時のレスポンス速度が最大、2 回目以降は初回より速くなる
    • ブラウザのキャッシュや Lambda のコールドスタートが原因であると思われる
  • 平均では約 3.4 倍の時間がかかった
  • 最大では約 2.4 倍の時間がかかった
  • 最小では約 3.9 倍の時間がかかった

以上より、API を 10 個つなげた場合にはレイテンシーが増加することがわかりました。
ただし、単純に API 1 個の 10 倍のレイテンシーがかかるという挙動ではありませんでした。

性能指標について

技術的なお問い合わせに関するガイドライン | AWS サポート

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

上記ガイドラインの通り、性能は環境などに依存します。
そのため、本記事の内容は参考程度にとどめてください。

まとめ

今回は API Gateway を 10 個つなげた際のレスポンス速度を確認してみました。
どなたかの参考になれば幸いです。

参考資料

Discussion