Lambda Rust 検証 — 初回リクエスト900ms の正体は TLS ハンドシェイクだった
AWS SDK for Rust の初回リクエスト900ms を DNS・TCP・TLS・API に分離計測。TLS ハンドシェイクが745ms で99%を占めた。接続ウォーミングで合計 Billed Duration を82%削減できる。
クラウドインフラ、コンテナ、IaC、プラットフォームエンジニアリングに関する記事
AWS SDK for Rust の初回リクエスト900ms を DNS・TCP・TLS・API に分離計測。TLS ハンドシェイクが745ms で99%を占めた。接続ウォーミングで合計 Billed Duration を82%削減できる。
1時間の連続負荷でヒット率98.9%を確認。10分アイドル後もタイムアウト再発なし。公式ドキュメントの接続再利用推奨と合わせ、Serverless + ウォームアップが本番で使える条件を整理した。
ノードベース+TLS構成との比較で初回タイムアウトがServerless固有の問題と確定。ウォームアップ接続+5秒待機でCacheMonitorを回復させ、Serverlessの運用メリットを活かせることを実機検証した。
SAMデプロイのハマりポイント、LocalDurableTestRunnerによるローカルテスト、実行履歴の追跡方法を実体験ベースで整理。修飾付きARN必須の罠が最初の関門。
冪等性・DurableExecutionName・並行コールバック・タイムアウト設定を実機検証。「リプレイされる前提で設計する」が全BPの共通原則だと分かった。
AWS公式の不正検知デモをデプロイし、リスクスコア別の3分岐とサスペンド動作を実機検証。チェックポイント&リプレイでwait中の課金ゼロを確認した。
KEK で CVV 鍵を TR-31 エクスポートし、インポート後に同じ CVV2 が生成されることを確認。鍵素材の移動と KCV による同一性検証を Python(boto3)で実装する。
シリーズ全 3 回の検証で発見した Java SDK v2 のハマりポイントを整理。HMAC 未対応、enum 名の不一致、クラス名の混乱など 6 つの落とし穴と対処法。
TranslatePinData による PIN の平文を経由しない再暗号化と、CMAC によるデータ完全性検証を Java SDK で実装。アクワイアラ処理の核心である鍵の中継を検証する。
カード発行者の 3 つの主要な暗号処理を Java SDK で実装。GeneratePinData が PEK と PVK の 2 鍵を同時に要求する仕組みなど、複数の専用鍵が協調する決済処理の実態を検証する。