📝
[小ネタ] 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