Vercel Sandbox の Drives マウント時の起動が最大2.4倍高速化 — 変更点と使いどころの整理

Vercel は 2026 年 11 月 2 日、Drives をマウントする Vercel Sandbox の作成が高速化したと発表しました。作成時間は中央値が 1.7 秒から 0.7 秒へ、p95 が 2.2 秒から 1.6 秒へ短縮されています。適用は自動で、SDK のアップグレードや設定変更は不要、価格も変わりません。つまり利用者側の作業は不要で、「永続ストレージを付けると起動が遅くなる」というトレードオフが小さくなった、という変更です。
数値の読み方: 中央値とp95で改善幅が違う
見出しの「最大 2.4 倍」は中央値 (1.7 秒 → 0.7 秒) の比較です。一方で p95 は 2.2 秒 → 1.6 秒で、比率にすると 1.4 倍ほどにとどまります。
この差は実務上の意味が違います。1 リクエストにつき 1 回サンドボックスを作る用途では、体感に効くのは中央値の 1 秒短縮です。一方、エージェントが並列に多数のサンドボックスを立ち上げるような使い方では、全体の完了時間を決めるのは遅い側の試行、つまり p95 に近い値です。後者の構成では「2.4 倍速くなった」ほどの短縮は見込みにくく、0.6 秒程度の改善として見積もるのが無難です。
そもそも Drives は何を解決する機能か
Drives は、サンドボックスにディレクトリとしてマウントする永続ストレージです。サンドボックスが停止してもファイルは残り、別のサンドボックス (別のイメージや構成でも) から同じドライブをマウントして続きから作業できます。公開ベータは 2026 年 9 月に始まり、その後一般提供が告知されています。
混同しやすいのがサンドボックススナップショットとの違いです。ドキュメントの比較に沿って整理すると、使い分けの基準は次の 3 点です。
- 保存範囲: スナップショットはファイルシステム全体 (64 GB)、ドライブはマウントした 1 ディレクトリ (既定 1 TiB、Hobby は 1 GiB、上限クォータ 16 TiB)
- 共有の仕方: スナップショットはサンドボックスごとに独立したコピー。ドライブは 1 つの実体を共有し、読み書きマウントは同時に 1 つだけ。他は読み取り専用のドライブスナップショットでマウントする
- 寿命: スナップショットは既定 30 日で失効。ドライブは削除するまで残る
性能特性も異なります。ドライブは書き込みとキャッシュヒット時の読み取りが NVMe 相当で、キャッシュミス時の読み取りは遅くなるとされています。大きな依存キャッシュを毎回フルスキャンするような処理では、この差が起動短縮分を帳消しにする可能性があります。
起動時間を計測するなら create() 単体では比較できない
自分の環境で効果を確かめる場合、計測方法に注意が必要です。Vercel は 2026 年 10 月に、Sandbox.create() がスナップショット復元の完了まで待ってから解決する仕様に変更しています。この変更で作成時間は p50 で約 50 ms 増え、代わりに最初のコマンド実行やファイル操作が待たされなくなりました。最初の操作までの合計時間は変わらない、という説明です。
したがって、過去に取った create() のログと今の値を直接並べても、何が効いたのか切り分けられません。計測は「作成開始から最初のコマンドが完了するまで」で揃えるのが実用的です。あわせて中央値だけでなく p95 も記録しておくと、今回のように改善幅が分布で異なる変更を評価できます。
速くなっても課金は別軸で効く
今回の高速化で価格は変わりません。Drives の課金はストレージ・読み取り・書き込みの 3 軸で、既定リージョン iad1 の Pro / Enterprise ではストレージが $0.05/GB-月、読み取りが $0.0015/GB、書き込みが $0.004/GB です。ストレージは確保したサイズではなく論理使用量を時間単位で計測するため、1 TiB のドライブに 20 GB しか入っていなければ 20 GB 分の課金になります。Hobby はストレージ 15 GB (ライフタイム)、読み書き各 30 GB/月が含まれます。レートはリージョンによって変わります。
判断材料として整理すると、依存関係をドライブに共有キャッシュとして置く構成では、節約できるのは「毎回のインストール時間と Active CPU」、増えるのは「読み取り課金とストレージ課金」です。10 GB のキャッシュを 1 回読むコストは $0.015 程度なので、金額よりも、キャッシュミス読み取りの遅さとインストール時間のどちらが短いかで決めるのが現実的です。スナップショットストレージが $0.08/GB-月 であるのに対しドライブが $0.05/GB-月 と安い点は、同じデータを多数のサンドボックスで共有するほど効いてきます。
導入前に確認する5点
- リージョンを先に決める: ドライブのリージョンは作成後に変更できず、マウントするサンドボックスのメインリージョンと一致している必要があります
- 書き込み役を 1 つに絞る: 読み書きマウントは同時に 1 つだけです。並列エージェントを想定するなら、読み取り側は
drive.snapshot()、独立して書き換えたい場合はfork()を使う設計にします - スナップショットの鮮度を意識する: ドライブスナップショットはマウント時点の内容で固定され、以降の書き込みは反映されません。最新を読むには新しいスナップショットをマウントし直します
- マウント数の上限は 1 サンドボックスあたり 4 つ: 用途ごとにドライブを細分化しすぎない
- 削除ルールを決める: ドライブは削除するまで残り、課金も続きます。削除はストレージ課金の停止手段でもあります
既に Drives を使っているなら、今回の変更に対して必要な作業はありません。これから検討する場合は、「状態が消えて困っているワークフローがあるか」を起点に、リージョンと書き込み権の設計、そして最初の操作までの時間を含めた計測方法を先に決めておくと判断を誤りません。


