クラウド実行環境

サーバーレスとは|100秒に1件だと起動待ちが5.4%、5秒に1件なら0.4%だった

サーバーレスで起動待ちはどれくらい起きるのか常時温めておくと効くのか単価はどう変わるのか

起動待ちは呼び出しの頻度で決まります。100秒に1件のときは5.4%で起きました。

5秒に1件なら0.4%です。閑散としているほど遅くなるという向きになります。

この記事の要点

  • 100秒に1件で起動待ち5.4%
  • 5秒に1件なら0.4%
  • 常時1台温めると0.4%
  • 単価が1.9なら総額は190.0%

100秒に1件だと起動待ちが5.4%、5秒に1件なら0.4%だった

起動待ちは呼び出しの頻度で決まります。閑散としている処理ほど遅くなります。

サーバーレスで最初に気になるのが起動待ちです。どの条件で問題になるのかを、実際に走らせて測りました。

要求3万件を、到着の間隔を変えて実行環境に割り当てます。実行0.4秒、起動待ち1.8秒、最後の実行から300秒で片づけという条件です。

到着の間隔を動かす

text
到着の間隔        起動待ちの割合  平均応答  95%点   常時1台を温めた場合
100秒に1件                   5.4%     0.50秒    2.20秒              0.4%
20秒に1件                    1.6%     0.43秒    0.40秒              1.6%
5秒に1件                     0.4%     0.41秒    0.40秒              0.4%
1.00秒に1件                  0.2%     0.40秒    0.40秒              0.2%
0.20秒に1件                  0.1%     0.40秒    0.40秒              0.1%
0.05秒に1件                  0.2%     0.40秒    0.40秒              0.2%

呼び出しが多いほど起動待ちは減ります。0.05秒に1件では0.2%まで下がりました。

出典も一般的な水準を起動待ちは通常、呼び出しの1%未満で起きると書いています。この計測でも5秒に1件より速ければ1%を下回ります。

閑散時は応答の裾が伸びる

100秒に1件の行を見てください。平均応答は0.50秒ですが、95%点は2.20秒です。

平均だけを見ていると気づきません。20回に1回は2秒以上待たされます

5秒に1件より速い行では、95%点が0.40秒に張り付いています。起動待ちが裾から消えている状態です。

閑散な処理ほど、起動待ちの割合が上がる。

単位: %100秒に1件5.4%20秒に1件1.6%5秒に1件0.4%1秒に1件0.2%0.2秒に1件0.1%要求3万件での実測。実行0.4秒、起動待ち1.8秒、最後の実行から300秒で片づけ。
図1 ── 到着の間隔と起動待ちの割合
出典AWS「Understanding the Lambda execution environment lifecycle」2026-08-18 確認
Cold starts typically occur in under 1% of invocations.
原文AWS「Understanding the Lambda execution environment lifecycle」 この内容の有効期限2027-02-18

常時1台を温めても、20秒に1件では何も変わらなかった

温めておく手が効くのは閑散時だけです。頻度が上がると、残る起動待ちの原因が変わります。

サーバーレスの起動待ちに対する定番の手が、実行環境を先に用意しておくことです。出典もこの機能を挙げています。

説明はこの機能は実行環境をあらかじめ初期化し、起動待ちを減らすというものです。同じ計測の右端の列で、その効き方を見ました。

効く条件と効かない条件

text
到着の間隔        起動待ちの割合  常時1台を温めた場合
100秒に1件                   5.4%              0.4%
20秒に1件                    1.6%              1.6%
5秒に1件                     0.4%              0.4%

100秒に1件では、5.4%が0.4%まで下がります。10分の1以下です。

ところが20秒に1件では1.6%のままで、まったく動きません。

残っている起動待ちの中身が違う

この計測では、最後の実行から300秒で環境が片づけられます。20秒に1件なら片づけは起きません

つまり残っている起動待ちは、片づけが原因ではありません。たまたま同時に来た要求で、空いている環境が足りなかったぶんです。

1台温めても同時実行の数は増えません。効く原因と効かない原因を分けないと、温める台数だけが増えます

どちらの原因かを見分ける

  1. 呼び出しの間隔を測る。片づけの時間より長いか短いか
  2. 同時実行の山を測る。ピーク時に何本が重なるか
  3. 長いなら温める。片づけを止める手が効く
  4. 重なるなら数を増やす。温める台数を同時実行に合わせる
出典AWS「Understanding the Lambda execution environment lifecycle」2026-08-18 確認
This feature pre-initializes execution environments, reducing cold starts.
原文AWS「Understanding the Lambda execution environment lifecycle」 この内容の有効期限2027-02-18

余りは出ないが、単価の差がそのまま総額に乗る

使った分だけ払うので容量の余りは出ません。その代わり、単価の高さが使用量に比例して効きます。

サーバーレスの値段の形は単純です。出典も使った分だけを課金するサーバーレスのコンピューティングサービスであると述べています。

余った容量に払う分がありません。その代わり単価は高くなります。どちらが効くかを、同じ需要で計算しました。

買い方を並べる

text
買い方                      払う台時  合計    1台時あたり  都度払いとの比
最大に合わせて常時確保                    28800   17280         1.56          156.4%
全部を都度払い                        11049   11049         1.00          100.0%
事前契約 10台+都度払い                  11049    9327         0.84           84.4%
使った分だけ(単価1.9)                  11049   20993         1.90          190.0%

使った分だけ払う形は、払う台時が需要とぴったり同じ11049です。1台時あたりも1.90で、単価がそのまま出ます

常時確保した場合の1.56より高くなっています。余りが出ないことより、単価の差のほうが大きいためです。

逆転する条件

この計測の需要は平均15.3台がほぼ休みなく動く形です。稼働率が高いので、常時確保が有利になります。

稼働率が低ければ向きは変わります。1日1時間しか動かない処理なら、常時確保の1台時あたりは24倍になります。

リザーブド・コミット割引の記事では、同じ需要で契約量を動かしたときの谷を測っています。

余りが出ない形でも、単価が高ければ総額は増える。

充足 2 / 4呼び出しの間隔を実測している100秒に1件では起動待ちが5.4%、95%点が2.20秒まで伸びる稼働率から総額を計算しているほぼ休みなく動く需要では、この計測で都度払いの190.0%になった温める台数を増やして対処している20秒に1件では1台温めても1.6%のまま変わらない平均応答だけを見て判断している100秒に1件では平均0.50秒に対し95%点が2.20秒だった要求3万件と、30日ぶんの需要11049台時での計算にもとづく。
図2 ── 選ぶ前の点検項目
余談 この計測での注意

単価の1.9という値は比較のために置いた相対値です。実際の料金は要求数と実行時間とメモリ量で決まり、無料枠もあります。到着の間隔も式で作った分布で、実際は時間帯で偏ります。ここで見せているのは、余りが出ない形でも単価差が使用量に比例して効くという関係です。

出典AWS「AWS Lambda Pricing」2026-08-18 確認
AWS Lambda is a serverless compute service that charges you only for what you use.
原文AWS「AWS Lambda Pricing」 この内容の有効期限2027-02-18

よくある質問

起動待ちはどれくらい起きますか
呼び出しの頻度によります。この計測では100秒に1件で5.4%、5秒に1件で0.4%でした。
常時温めておけば解決しますか
閑散時には効きます。この計測では100秒に1件のとき5.4%が0.4%になりました。20秒に1件では変わりませんでした。
なぜ20秒に1件では効かないのですか
その頻度なら環境は片づけられません。残る起動待ちは同時に集中したときのもので、1台温めても足りません。
使った分だけ払う形は安いですか
単価によります。この計測では単価1.9のとき、同じ需要で総額が都度払いの190.0%になりました。

まとめ

  • 使ったときだけ動く形
  • 起動待ちは閑散時に増える
  • 温めるのが効くのは閑散時だけ
  • 単価が高い分は使用量で決まる

今日から始められること

  1. 対象の処理の呼び出し間隔を実測する
  2. その間隔で起動待ちが何割になるか見る
  3. 起動待ちが応答の要件に収まるか確かめる
  4. 月間の使用量から総額を計算する

実務で組んだサーバーレスのワークフローには、値段が付きます

同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。

出品の仕組みを見る