FaaSの運用仕様

対象本文

第1章の上限、第2章の初期化・warm capacity・課金境界・環境内並行、第5章のnetwork統合とAWS Lambda tenant isolation modeを補います。数値の暗記ではなく、負荷試験と料金表で確認する仕様面を示します。

収集方法

2026年7月30日にAWS Lambda、Google Cloud Run functions、Azure Functions、Cloudflare Workersの公式クォータ、scale、pricingへの入口を再確認しました。比較可能な共通単位へ無理に換算せず、各社が何を実行単位・課金単位・上限単位にするかを記録しています。AWSについては、第2章の具体例に合わせ、オンデマンド実行、Provisioned Concurrency、SnapStart、Lambda MicroVMsの課金境界と変更履歴を追加で照合しました。

現在の答え

FaaSは、hostの台数を隠し、要求またはeventを実行単位へ割り当て、需要に応じてinstanceを増減し、利用量を計測する方向へ収斂しました。しかし、同じ「function」でも、1環境が同時に処理する要求数、scaleの単位、warm capacity、network、CPU時間の扱いは異なります。

観点AWS LambdaGoogle Cloud Run functionsAzure FunctionsCloudflare Workers
scaleの主語function/version/aliasのconcurrencyrevision instanceとrequest concurrencyhosting plan、function app、trigger groupまたはfunctionisolateを収容するWorkers runtime
同時処理通常は1実行環境が1 concurrent invocation。同期RPS等は別quota1 instance内concurrencyを構成できるplanとtriggerによりinstance内並行・scale単位が変わる1 isolateがevent loopで複数I/Oを扱い、CPU timeとsubrequest等で制約
warm制御provisioned concurrency。reserved concurrencyは上限・取り置きで、初期化済みとは限らないminimum instancesFlex/Premium等のalways-readyまたはprewarmed設定一般的な固定warm instanceではなく、isolateの高速起動を前提
下流保護reserved concurrency、event sourceのmaximum concurrencymax instances/concurrencymaximum instance countとtrigger設定CPU/subrequest/dispatchのlimit、Queues等のconsumer設定
閉域接続VPC統合。共有network interfaceとservice側管理Direct VPC egressまたはconnectorVNet integrationservice binding、Tunnel、Hyperdrive等、製品境界ごとの接続
値の正本Lambda quotas/pricingCloud Run functions quotas/pricingFunctions scale/hosting limits/pricingWorkers limits/pricing

warm capacityの共通点は、初回遅延の一部を消すために利用者向け在庫を取り置くことです。違いは、初期化済み環境の個数、minimum instance、plan全体のready capacityのどれを予約するかにあります。したがって「1個の環境を稼働維持する」と一括りにはできず、費用と効果は同じではありません。

環境内並行も同じではありません。1要求1環境のモデルではconcurrencyがほぼ環境数になります。1 instanceが複数要求を扱うモデルでは、共有memory、event loop、thread、CPU割当を含めて飽和点を測ります。下流databaseを守る上限は、公開最大値ではなく、接続席と処理時間から逆算します。

コールド/ウォームと課金境界

コールド/ウォームはレイテンシの状態名であり、請求書の状態名ではありません。料金表では、起動・初期化、利用中の実行、待機・取り置き、状態保持、復元・再開のどこで計測されるかを分けます。同じ「初回を短くする」構成でも、支払う対象は揃いません。

課金境界AWS Lambdaの代表例読むときの注意
起動・初期化通常のオンデマンド実行ではINITがBilled Durationに含まれる。2025年8月1日から、従来例外だったマネージドランタイムのZIP関数にも適用Custom Runtime、Provisioned Concurrency、コンテナイメージでは以前からINITが課金対象だった。料金境界は履歴で変わり得る
利用中呼び出し回数と、メモリ等に応じた実行時間ウォーム再利用ではINITを通らなくても、本体処理の料金は発生する
待機・取り置きProvisioned Concurrencyは設定した同時実行数と有効期間を5分単位で計測し、リクエストと実行時間は別に数えるreserved concurrencyは上限・取り置きであり、初期化済み環境の確保ではない
状態保持Pythonと.NETのSnapStartはsnapshot cacheを最低3時間、その後はミリ秒単位で維持。対応するJavaマネージドランタイムは追加料金の対象外ランタイムと提供条件で例外がある。単価ではなく適用条件まで確認する
復元Pythonと.NETのSnapStartはsnapshotから実行環境を復元するたびに料金が発生初期化を消したのではなく、保存と復元へ費目を移している
休止Lambda MicroVMsは休止中の計算課金が止まるsnapshotの保存、読出し、書込み、転送など、状態を保つ費目は残る

この一社だけでも、オンデマンド、確保、snapshot cache、restore、休止中の状態保持という複数のメーターがあります。したがって、コールドスタート対策を比べるときは「速くなるか」だけでなく、初期化する時刻と料金の置き場所がどこへ動くかを確認します。最新の単価、無料枠、対象ランタイム、リージョン差はAWS公式料金表を正本とします。

AWS Lambda tenant isolation modeは、呼出しにtenant identifierを含め、そのtenantに関連付けた実行環境を他tenantへ再利用しない実行モデルです。これはVM専有やaccount分離と同じではなく、共有pool内の再利用境界をtenantへ狭める中間の選択です。

一次資料

既知の未知

変更履歴