【こーるどすたーと】
コールドスタート とは?
最終更新:
💡 新しい実行環境を準備する時間が、応答に加わる
サーバーレス関数などで、新しい実行環境の準備や初期化が必要になり、応答までの時間が増えること。長時間未使用の後だけでなく、同時実行の増加などでも発生します。
📌 このページのポイント
使い始めだけ遅いの?
最初だけとは限らないよ。例えばAWS Lambdaでは新しい実行環境を作る際に初期化が必要になる。負荷が増えて別の環境を追加するときや、環境が入れ替わるときにも起こり得るんだ。
2回目は速くなるんだよね?
同じ環境が再利用されれば、最初の準備を省けることがあるよ。ただし次の呼び出しが必ず同じ環境に届くとは限らないし、関数本体や通信に時間がかかることもある。
言語を変えれば何ミリ秒になる?
準備を先に済ませられる?
LambdaのProvisioned Concurrencyは、指定した版やエイリアス向けに実行環境をあらかじめ初期化する仕組みだよ。追加の費用と、必要な同時実行数を考えて設定するんだ。
それを設定すれば全部解決?
用意した枠を超える呼び出しがオンデマンド環境へ流れると、そこで初期化が必要になることがあるよ。設定した版を呼んでいるかや、実際の負荷も確認しよう。
もっと詳しく知りたい人へ
定期的な空呼び出しで必ず防げる?
保証できません。特定の環境が再利用されても、追加の同時実行や環境の入れ替えまでは防げないためです。初期化を軽くする工夫と、必要なら事前初期化の仕組みを検討し、許容する応答時間を実測で確認します。
まとめ:ざっくりこれだけ覚えればOK!
コールドスタートは「新しい実行環境の準備が呼び出しに加わること」。2回目以降も必ず回避できるわけではないよ。
📖 おまけ:英語の意味
「Cold Start」 = 冷えた状態からの起動
💬 Cold(冷たい)+ Start(起動)。エンジンが冷えた車を動かすときに時間がかかるのと同じイメージだよ