AWS SDK for Rust は初回リクエストに約900msかかる — TLS ハンドシェイクが99%
Lambda Rust + DynamoDB のベンチマーク記事を書いていて、コールドスタートの初回リクエストが 912ms もかかることに気づいた。Init Duration 自体は 112ms で速いのに、初回の DynamoDB 呼び出しだけ異常に遅い。
内訳を分離計測したところ、TLS ハンドシェイクが平均 745ms で全体の99%を占めていた。DNS 解決は 7.3ms、TCP 接続は 1ms 未満。128MB(vCPU 約7%)の低 CPU 環境では、TLS の暗号処理が非常に重い。
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 は成功する。
