起動待ちは呼び出しの頻度で決まります。100秒に1件のときは5.4%で起きました。
5秒に1件なら0.4%です。閑散としているほど遅くなるという向きになります。
起動待ちは呼び出しの頻度で決まります。閑散としている処理ほど遅くなります。
サーバーレスで最初に気になるのが起動待ちです。どの条件で問題になるのかを、実際に走らせて測りました。
要求3万件を、到着の間隔を変えて実行環境に割り当てます。実行0.4秒、起動待ち1.8秒、最後の実行から300秒で片づけという条件です。
到着の間隔 起動待ちの割合 平均応答 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秒に張り付いています。起動待ちが裾から消えている状態です。
閑散な処理ほど、起動待ちの割合が上がる。
Cold starts typically occur in under 1% of invocations.原文AWS「Understanding the Lambda execution environment lifecycle」 この内容の有効期限2027-02-18
温めておく手が効くのは閑散時だけです。頻度が上がると、残る起動待ちの原因が変わります。
サーバーレスの起動待ちに対する定番の手が、実行環境を先に用意しておくことです。出典もこの機能を挙げています。
説明はこの機能は実行環境をあらかじめ初期化し、起動待ちを減らすというものです。同じ計測の右端の列で、その効き方を見ました。
到着の間隔 起動待ちの割合 常時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台温めても同時実行の数は増えません。効く原因と効かない原因を分けないと、温める台数だけが増えます。
This feature pre-initializes execution environments, reducing cold starts.原文AWS「Understanding the Lambda execution environment lifecycle」 この内容の有効期限2027-02-18
使った分だけ払うので容量の余りは出ません。その代わり、単価の高さが使用量に比例して効きます。
サーバーレスの値段の形は単純です。出典も使った分だけを課金するサーバーレスのコンピューティングサービスであると述べています。
余った容量に払う分がありません。その代わり単価は高くなります。どちらが効くかを、同じ需要で計算しました。
買い方 払う台時 合計 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倍になります。
リザーブド・コミット割引の記事では、同じ需要で契約量を動かしたときの谷を測っています。
余りが出ない形でも、単価が高ければ総額は増える。
単価の1.9という値は比較のために置いた相対値です。実際の料金は要求数と実行時間とメモリ量で決まり、無料枠もあります。到着の間隔も式で作った分布で、実際は時間帯で偏ります。ここで見せているのは、余りが出ない形でも単価差が使用量に比例して効くという関係です。
AWS Lambda is a serverless compute service that charges you only for what you use.原文AWS「AWS Lambda Pricing」 この内容の有効期限2027-02-18
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る