@shinyaz

AWS SDK for Rust は初回リクエストに約900msかかる — TLS ハンドシェイクが99%

約1分

Lambda Rust + DynamoDB のベンチマーク記事を書いていて、コールドスタートの初回リクエストが 912ms もかかることに気づいた。Init Duration 自体は 112ms で速いのに、初回の DynamoDB 呼び出しだけ異常に遅い。

内訳を分離計測したところ、TLS ハンドシェイクが平均 745ms で全体の99%を占めていた。DNS 解決は 7.3ms、TCP 接続は 1ms 未満。128MB(vCPU 約7%)の低 CPU 環境では、TLS の暗号処理が非常に重い。

Output
DNS:  7.3ms   (1%)
TCP:  0.7ms   (0%)
TLS: 745ms   (99%)

対策として、Init フェーズで client.list_tables().limit(1).send().await を1回実行して接続を温めると、初回 Duration が 912ms → 21ms に改善する(Billed Duration 合計で82%削減)。let _ = で結果を無視すれば、ウォーミング失敗時も Init は成功する。

共有する

田原 慎也

田原 慎也

ソリューションアーキテクト @ AWS

AWS ソリューションアーキテクトとして金融業界のお客様を中心に技術支援をしており、クラウドアーキテクチャや AI/ML に関する学びをこのサイトで発信しています。このサイトの内容は個人の見解であり、所属企業の公式な意見や見解を代表するものではありません。