Skip to main content

The Same 2 vCPU, Priced 7x Apart: What Agent-Sandbox Pricing Reveals About Isolation Cost

10 min readDora NodaDora Noda
Share
On this page

The cheapest way to rent an AI agent a computer in October 2026 is $0.052 an hour. The most expensive way to rent it the same computer — 2 vCPU, 4 GB of RAM — is $0.378 an hour. That is a 7.3x spread for an identical spec sheet, and both extremes are full KVM virtual machines.

So the price of a sandbox is clearly not the price of its isolation. A hands-on comparison of seven agent sandboxes by Saptarshi Paul put every vendor on one axis — same resources, flat-out hour, list rates as of September 26, 2026 — and the resulting matrix is the best available map of what you actually pay for when you rent agent compute. Here it is, with pause semantics added, because pause semantics turn out to matter more than the headline rate:

ProductIsolation2 vCPU / 4 GB, flat-out hourMax sessionPause keeps memory?
machine0Full KVM VM$0.052None, runs until stoppedNo (suspend = disk snapshot; stopped VMs bill full rate)
E2BFirecracker microVM$0.16624 h Pro (resets on pause)Yes, kept indefinitely, billing stops
DaytonaContainers by default (VM optional)$0.166None (auto-stops after 15 min idle)VM sandboxes only
ModalgVisor (VM in beta)$0.23824 hNo (memory snapshots alpha, 7-day expiry)
Fly.io SpritesFirecracker microVM$0.315 (usage-billed)None (sleeps when idle)While warm only
Vercel SandboxFirecracker microVM$0.341 (active CPU only)24 h ProNo (filesystem snapshot)
OpenComputer v2Full KVM VM$0.3788 h hard ceiling, hibernation includedNo

Price/isolation/lifetime data: Paul's comparison; Upstash's 15-provider comparison independently confirms the E2B/Daytona rate decomposition (2 × $0.0504 + 4 × $0.0162 ≈ $0.166).

What "same" means here — read before comparing. Same spec (2 vCPU / 4 GB), same list-rate date (September 26, 2026), same full-CPU hour. What is not held equal, because vendors do not publish it uniformly: whether the vCPUs are shared or dedicated, which region the rate applies to, how much disk is included (Sprites ships 100 GB; OpenComputer fixes ~16 GB), and egress or API-call charges, which are excluded throughout. Honorable mentions with plan floors fall outside this axis — Boat undercuts even machine0 at $0.018/hour, but on shared vCPUs, EU-only, atop a $20/month plan. Verify current rates before buying; this post is about the structure of the spread, which moves slower than the digits.

The uncomfortable detail: both ends of the spread are KVM​

If isolation strength set the price, the table would sort neatly: containers cheapest, gVisor next, Firecracker above that, full KVM dearest. It does nothing of the sort. The cheapest and the priciest rows share a hypervisor, and gVisor-based Modal costs more than Firecracker-based E2B.

Isolation is the floor under the price, not the price. What stacks on top of it is lifecycle: snapshot speed, pause semantics, billing granularity, and breadth (GPUs, Windows, desktop).

Walk the rows and the decomposition writes itself:

  • machine0 ($0.052) is priced like a VPS because it is a VPS with an API. Its VMs run on DigitalOcean infrastructure, provisioning takes one to three minutes, and a stopped VM keeps billing at full rate — suspending to disk is the only way to stop the meter, and it forfeits your running processes. You pay near-hardware cost and get near-hardware ergonomics.
  • OpenComputer v2 ($0.378) charges 7.3x more for the same KVM boundary. The premium buys an SDK-first API, checkpoints, and public preview URLs on an Apache-2.0 platform you can self-host — fenced in by a hard 8-hour ceiling that counts hibernated time too. That is managed-platform pricing on a young product, not stronger isolation.
  • E2B ($0.166) sells Firecracker plus the category's best lifecycle: creating a sandbox is a ~150 ms snapshot restore, not a boot, and pausing saves memory indefinitely with billing stopped. The mid-table price is density plus snapshot amortization.
  • Daytona ($0.166) charges E2B's exact rates for weaker default isolation — plain containers unless you ask for a VM — and compensates with breadth: GPUs, Windows VMs, SSH, five SDKs. Note also that its 71,697-star public repo stopped receiving updates in June 2026 when core development moved private.
  • Modal ($0.238) is the cleanest proof that isolation ≠ price: gVisor, the weakest VM-ish boundary here, at a premium over Firecracker E2B. The money goes to GPU range (T4 to B300) and enormous concurrency, not to the sandbox boundary.
  • Sprites ($0.315) and Vercel ($0.341) sell Firecracker at roughly twice E2B's flat-out list — and both are built for workloads that never burn full CPU, because neither bills a flat-out hour the way the table does. Sprites bills only CPU and memory actually used and sleeps when idle; Vercel bills only active CPU, so time waiting on network or model calls does not count. Their list rates punish the benchmark; their meters reward the idle.

So the honest formula is price = isolation tier × managed lifecycle premium. The tiers themselves still matter — a full VM runs Docker and kernel modules, Firecracker boots in ~125 ms with under 5 MiB of VMM overhead, gVisor starts in ~50 ms but pays a continuous syscall tax (one collected set of measurements reports +18% median, far worse on syscall storms, with ~34% lower network throughput), and plain containers share the host kernel entirely (Northflank's comparison and Firecracker's own cost breakdown cover the tier ladder). But as a buyer, you pick the tier for your threat model and pay the premium for your duty cycle. Which is where the ranking above starts lying to you.

Three duty cycles, three rankings​

No real agent burns full CPU for an hour straight. It runs a command, waits on a model, runs another command. Reprice the same wall-clock hour at three duty cycles — always-on, half-busy, and idle-heavy at ~15% — using each vendor's published billing rules, and the leaderboard reshuffles:

Product100% always-on~50% mixed~15% idle-heavy
machine0$0.052$0.052$0.052
E2B (auto-pause)$0.166~$0.08~$0.025
Daytona (VM, auto-stop)$0.166~$0.08~$0.025
Modal$0.238$0.238$0.238
Sprites$0.315~$0.16¹~$0.05¹
Vercel$0.341~$0.21²~$0.12²
OpenComputer$0.378$0.378$0.378

Author's arithmetic from published rates, not measured bills. ¹Assumes metered usage tracks duty cycle; idle RSS may bill higher. ²Assumes memory bills for the full session while CPU bills active-only ($0.128 active vCPU-hour + $0.0212/GB, per this runtime comparison). Daytona's row assumes VM sandboxes; containers lose live state on stop.

Three readings fall out. First, the flat-out ranking holds at 50% but flips below ~31% duty cycle — that is the breakeven where E2B-with-auto-pause (duty × $0.166) undercuts machine0's always-on $0.052, despite a 3.2x higher list rate.

Second, Vercel's active-CPU billing looks like an idle-agent discount but isn't one at these sizes: the memory portion bills regardless, so at 15% duty it still costs ~$0.12 against E2B's ~$0.025. Only a billing stop that covers the whole sandbox — E2B's pause, which freezes CPU, memory, and meter together — reprices idle time to near zero. Third, only E2B's pause has no expiry; Daytona restricts memory-preserving pause to VM sandboxes, Sprites keeps processes only while warm, and Modal's memory snapshots are alpha with a 7-day expiry.

Pause is not free, and the vendors say so. E2B takes ~4 seconds per GiB of RAM to pause (~16 s for this 4 GB box) against a ~1 s resume, and auto-pause timeouts bill the idle tail — a 10-minute timeout means every lull under ten minutes still bills. Daytona's 15-minute default auto-stop is aggressive enough that its own docs warn a long npm test with no API calls can be stopped mid-run. Pause-heavy architectures should budget the tail and the resume latency, not just the duty cycle.

The self-host column: what the premium sits on top of​

Now put owned hardware on the same axis. A Hetzner CCX23 — 4 dedicated vCPUs, 16 GB RAM — lists from about $29/month in the US (a US deployment report) to €38/month in the EU (a 2026 European cloud comparison). Take $35/month as a working midpoint: that is $35 ÷ 730 hours ≈ $0.048/hour for the whole box, or **$0.024/hour per 2 vCPU / 4 GB slice** (two slices per box, with RAM to spare — slicing is CPU-bound here). Against that floor, rented multiples run roughly 2x (machine0) to 16x (OpenComputer), with E2B/Daytona at ~7x and Modal at ~10x.

The premium buys real things: 150 ms snapshot restores instead of minute-long boots, pause-with-memory instead of cold stop/start, per-second elasticity instead of a box you pay for at 3 a.m., and no control plane to build or page for. The question is where your workload crosses from "rent the premium" to "own the floor":

  • One agent environment that must exist 24/7 costs ~$17.50/month as an owned slice ($0.024 × 730) versus duty × $121/month on E2B-with-pause ($0.166 × 730). Breakeven: ~15% duty cycle. An agent busy less than ~15% of the hours its environment must exist is cheaper to rent paused; above that, owning wins on raw cost.
  • Bursty, elastic need flips the other way: owned hardware bills at 100% utilization whether the agent works or not, while machine0-style rent at $0.052/hour costs $38/month only if left running — and per-task sandboxes cost cents per run. Spiky beats steady for renting; steady beats spiky for owning.
  • Bin-packing cuts toward owning: one host holds many paused-or-idle tenants, and Firecracker's sub-5-MiB-per-VM overhead plus snapshot restore is exactly the technology that makes dense multi-tenancy cheap. E2B's backend (e2b-dev/runtime) and OpenComputer's control plane are both Apache-2.0 and self-hostable — the build-vs-rent decision is about operations labor, not about reimplementing microVM orchestration from scratch.

If you build, match the tier to the workload class rather than defaulting to the strongest boundary everywhere: untrusted third-party code → Firecracker microVMs (Kata Containers if you want them behind the Kubernetes API); trusted single-tenant agents → plain containers or gVisor, where the threat is accidents, not adversaries; long-lived dev environments → plain KVM, where boot time does not matter and kernel freedom does. That mapping mirrors the market: the vendors charging the most per hour are not selling stronger boundaries, they are selling lifecycle automation on commodity boundaries.

Pick by lifetime first, isolation second, pause third​

Paul's closing advice survives the repricing above, with one amendment. Start with how long the work runs: days-long environments with repos, caches, and running services want a persistent computer (machine0-class); minutes-long tasks created from code want a per-task sandbox (E2B-class). Then pick isolation for the threat model, not the price tag — the table proves price does not track boundary strength. Then, and only then, compare rates at your duty cycle, because a 3x list-rate gap inverts below ~31% utilization, and only one vendor's pause keeps memory forever.

Run the three checks he suggests before committing: time the first command, leave the box idle for twenty minutes and see whether it — and its processes — are still there, and compare the bill after a day. The flat-out table gets you oriented. Your duty cycle picks your vendor.

Bex.co is the open-source, AI-native Render alternative — push a git repo, get a running HTTPS service on machines you own. If agent sandboxes are joining your platform, owning the hardware they run on is the cheapest line in this whole post. Star the repo on GitHub or deploy your first app today.

Related articles

Give your agents a chain backend

Autonomous agents hit RPC endpoints very differently than people do. See what bex router handles on their behalf.

Read the agents guide