Bars of cost for one 8-hour session with 1 hour of work, baseline 2 GB and 1 vCPU. MicroVM suspended when idle $0.195. Fargate Arm task held open for the 8 hours $0.316. MicroVM never suspended $1.009.

Running code you didn't write is hard to do cheaply. A coding assistant's sandbox, a notebook or a customer's script needs its own machine-grade isolation, and it sits idle most of the time, waiting for a person or a model. On 22 June 2026 AWS launched Lambda MicroVMs for this case: a Firecracker VM per user or job, started from a snapshot, that can suspend with its memory and disk intact.

We read the docs and worked the numbers from the price page. Short version: a running MicroVM costs $0.1261 an hour at the default size, about 3.2 times a Fargate task of the same size, so it wins only through suspending. A session that is active for 1 hour out of 8 costs $0.195 against $0.316 for a task held open. The line crosses at about 2.0 active hours in 8. And the 8-hour limit is on the whole life of the MicroVM, suspended time included, which is tighter than most summaries suggest.

What it is

Lambda MicroVMs, per AWS's docs
IsolationVM-level, on Firecracker; a dedicated HTTPS endpoint per MicroVM, no load balancing between them
ImageZip with a Dockerfile and your code in S3; Lambda runs it on an Amazon Linux 2023 base, starts the app and snapshots memory and disk
StartFrom the snapshot, skipping your app's initialisation; AWS gives no figure in the docs we read
SizesBaseline 0.5 GB and 0.25 vCPU up to 8 GB and 4 vCPU; each can burst to 4x; disk 8 to 32 GB
Lifespan`--maximum-duration-in-seconds`: 1 to 28,800 s (8 hours), "including both running and suspended time"
SuspendAutomatic after `maxIdleDurationSeconds` with no traffic, or by API call; `suspendedDurationSeconds` sets when a suspended one is terminated
ResumeAutomatic on traffic if enabled, with the request held meanwhile; 502 if the resume fails
ProtocolsHTTP/2, WebSockets, gRPC, SSE; every request needs an auth token, there is no unauthenticated access
Regions at launchN. Virginia, Ohio, Oregon, Tokyo, Ireland; the price examples are for Arm (Graviton)

The lifespan line is the one to read twice. AWS's launch post says sessions can suspend and resume "for up to 8 hours", and that is the whole session: a MicroVM started at 09:00 is gone by 17:00 however long it slept. It is built for a working session, not for a tenant's environment that stays around for a week. For that, you would save your state elsewhere and start a new MicroVM.

What suspending costs

The price page lists these for us-east-1:

ItemPriceAt the default 2 GB and 1 vCPU
vCPU, running$0.0000276944 per vCPU-second$0.0997 an hour
Memory, running$0.0000036667 per GB-second$0.0264 an hour
Snapshot write, on each suspend$0.0038 per GB$0.0076 per suspend
Snapshot read, on each resume or launch$0.00155 per GB$0.0031 per resume
Snapshot storage$0.08 per GB-month$0.00022 per suspended hour
Above baselineSame vCPU and memory rates, while activeUp to 4x at peak

One suspend and resume of 2 GB costs $0.0107, the same as about 5.1 minutes of running. So a pause of more than about 5 minutes is worth suspending for, as far as the bill goes. The real limit is what the person feels on resume, which depends on the size of the state and your /resume hook. Setting maxIdleDurationSeconds much below your users' natural pauses would save cents and cost seconds on every return.

An idle-heavy session against an always-on container

Take a session of 8 hours with 1 hour of real activity at baseline, 7 hours idle, and 6 suspend and resume cycles, with 2 GB of state. We ignored bursts above baseline to keep it readable; AWS's own example, with 25% of its active time at peak, is below.

LineWorkingCost
Launch from snapshot2 GB x $0.00155$0.0031
Running1 h x $0.1261$0.1261
Suspend and resume6 x 2 GB x ($0.0038 + $0.00155)$0.0642
Suspended state2 GB x 7 h / 720 h x $0.08$0.0016
MicroVM, suspended when idle$0.195
MicroVM, never suspended8 h x $0.1261$1.009
Fargate Arm task, 1 vCPU and 2 GB, up for the session8 h x ($0.03238 + 2 x $0.00356) = 8 h x $0.0395$0.316

So the running rate is about 3.2 times Fargate's, and suspending more than makes up for it when the session is mostly idle. With 6 cycles, the break-even is about 2.0 active hours in 8 (25% of the session). A session busier than that is cheaper in a plain task. The comparison flatters Fargate in one way: a task needs something to start it and stop it per session and to route traffic to it, which MicroVMs include and we priced at zero.

Sessions a day, 22 daysMicroVMs, suspended when idleOne Fargate task per session, 8 h
1$4.29$6.95
10$42.89$69.52
100$428.90$695.20
1,000$4,289.02$6,952.00

AWS's own example agrees with the shape: 100 developers, 20 days, 2.5 active hours a day (75% baseline, 25% at 4x peak), 5.5 idle hours and 6 cycles comes to $1,241.22, or $12.41 a developer a month, and $1,103.38 of that is compute. Bursting costs real money: their 25% of time at peak costs more than the other 75%.

An always-on shared container is a different comparison. A single Fargate Arm task of the same size costs $28.44 a month, and holds many users if you can trust them to share a process. That's the choice being made: if the code is your own, one shared container is far cheaper. MicroVMs are for when it isn't.

What suspend and resume change in your code

A snapshot means your process was started once and copied. AWS's snapshot docs list what follows from that:

TrapWhat to do
Every MicroVM from an image shares its initial memory, including IDs, secrets and random seeds made during the buildGenerate them in the `/run` hook, and use a CSPRNG that reads `/dev/urandom`
OpenSSL in your own base imageUse `public.ecr.aws/lambda/microvms:al2023-minimal` or AWS's patched snap-safe OpenSSL package
Connections made during the build, or open across a suspendReopen them in `/run` and `/resume`; AWS SDK clients usually recover, your database pool may not
Background work with no traffic through the endpoint looks idleIdle is judged by traffic: turn automatic suspend off or lengthen it for async jobs, or the job freezes
Clock jumps across a suspendOur note, not AWS's: re-check tokens and leases in `/resume`, since hours can pass between two instructions
Base images expire: 60 days deprecated, 30 days expiring, then expiredRebuild images on a schedule, or they stop running

Where it fits and where it doesn't

UseFitWhy
Sandbox for AI-generated or customer code, per sessionGoodThis is its case: VM isolation, mostly idle, state kept across pauses
Notebooks, per-user dev environments for a working dayGoodUnder 8 hours, long idle gaps
Per-tenant CI jobsGoodIsolation, short life, no suspend needed; compare with plain Fargate
A normal web app or APIPoorOne endpoint per MicroVM, no load balancing, token on every request, an 8-hour life
Busy sessions, active over about a quarter of the timePoorThe running rate is 3.2x a Fargate task
Anything that must live for daysPoorThe 8-hour lifespan includes suspended time
x86-only dependenciesCheck firstAWS's price examples and reports point to Graviton only

Our reading: the interesting part isn't the VM, it's that idle now has a price close to storage. It suits products where each user gets a real computer for a while. For an ordinary SaaS app, where you wrote the code and many users share it, the cost question is a different one, and we worked it through in scale to zero, from 10 thousand to 10 million requests. Our cold start measurements show how much of a first request is app start-up, which is what a snapshot skips.

Sources (read 3 Nov 2026): AWS announcement, 22 Jun 2026; Lambda docs: MicroVMs guide, Running and using MicroVMs, images, snapshots, best practices; Lambda pricing; Fargate pricing. We did not run MicroVMs for this article: costs are worked from the price page, not from a bill.

On systemi your own app runs in a container that sleeps when idle and wakes on the next request, deployed from a zip or an https git URL and a branch.

See how deploys work