【こーるどすたーと】
コールドスタート とは?
💡 久しぶりに使うと起動に時間がかかる「エンジンの暖機運転」
📌 このページのポイント
コールドスタートってなんで起きるの?
どれくらい遅くなるの?
コールドスタートを避ける方法ってあるの?
AWS Lambdaには「Provisioned Concurrency」があって、あらかじめ実行環境を温めておける。定期的にダミーリクエストを送って環境を維持する「ウォーミング」もよく使われるよ。あとはパッケージサイズを小さくする、不要なライブラリを除く、というのも効果的だね。
Provisioned Concurrencyを使えばコールドスタートは完全に解決するの?
理論上はそうなんだけど、実運用ではそう単純じゃないんだ。Provisioned Concurrencyは「常にN個の環境を温めておく」仕組みだから、Nを超えるリクエストが同時に来たらやっぱりコールドスタートが発生する。そしてNを大きくすると常時課金が発生して、サーバーレスの「使った分だけ払う」メリットが薄れる。結局「コールドスタートのレイテンシ」と「常時起動のコスト」のトレードオフで、ビジネス要件としてレイテンシのP99(99パーセンタイル)がどこまで許容されるかによって判断が変わるんだよ。APIゲートウェイの裏のLambdaなら数百msは許容できるけど、リアルタイム性が求められる決済APIだとコールドスタートは致命的、みたいにね。
まとめ:ざっくりこれだけ覚えればOK!
「コールドスタート」って出てきたら「サーバーレス関数が初回起動時に遅くなる問題のことだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Cold Start」 = 冷えた状態からの起動
💬 Cold(冷たい)+ Start(起動)。エンジンが冷えた車を動かすときに時間がかかるのと同じイメージだよ