EC2 hibernate vs stop cost: which saves more on idle instances
Stopping an EC2 instance halts compute charges but keeps EBS billing; hibernating preserves memory to disk for fast resume but stores that memory on EBS, adding cost. For part-time workloads, knowing which to use and what still bills is worth real money. Here is the comparison.
Quick answer
Stopping an EC2 instance halts the hourly compute charge but keeps billing for attached EBS volumes, and any Elastic IP not attached to a running instance. Hibernating does the same but also writes the instance's RAM contents to the root EBS volume so it can resume quickly with state intact, which means you pay for extra EBS storage equal to the memory size while hibernated. For pure cost, a plain stop is cheaper than hibernate because it stores no memory image; hibernate trades a little extra EBS cost for fast, stateful resume. Neither stops EBS charges, so the real idle-cost lever is right-sizing or deleting volumes, not the stop-versus-hibernate choice.
When an EC2 instance is not needed, you can stop it or hibernate it, and people often assume one is clearly cheaper. The truth is more nuanced: both halt the compute charge, both keep billing for storage, and hibernate adds a small storage cost for the memory image it saves. Understanding exactly what each one bills is worth knowing before you build a part-time workload around either.
What stop and hibernate each bill
| State | Compute charge | EBS charge | Extra |
|---|---|---|---|
| Running | Full hourly rate | Volumes billed | None |
| Stopped | None | Volumes still billed | Unattached Elastic IP billed |
| Hibernated | None | Volumes still billed | RAM image stored on EBS (extra GB) |
Both stopping and hibernating end the per-hour compute charge, which is the large one. Both continue to bill for attached EBS volumes at the normal per-GB rate, because the data persists. The difference is that hibernation writes the instance's entire RAM to the root volume so it can resume with processes intact, which consumes extra EBS storage roughly equal to the instance's memory size.
Why a plain stop is marginally cheaper
Because hibernate stores the memory image on EBS, an instance with 32 GB of RAM keeps paying for roughly 32 GB of extra gp3 storage (about $0.08 per GB-month, so around $2.56 per month) while hibernated. A plain stop stores no such image, so it avoids that cost. On pure storage math, stop is cheaper. The gap is small in absolute terms, but across many hibernated instances it adds up.
What hibernate buys for the cost
Hibernation's value is operational, not on the storage line: it resumes with memory and running processes intact, so applications with long warm-up, large in-memory caches, or expensive initialization come back in seconds rather than minutes. If that fast, stateful resume saves engineering time or lets you power down more aggressively, the small extra EBS cost is easily worth it. For a stateless service that boots quickly, a plain stop gives the same savings without the memory-image cost.
The charge neither one stops
The important point for cost is that neither stop nor hibernate ends EBS charges. A fleet of stopped instances with large attached volumes can still cost a meaningful amount purely in storage. If an instance is stopped indefinitely, consider snapshotting and deleting the volume, since a snapshot in S3-backed storage is far cheaper than a live gp3 volume, the tradeoff in the EBS snapshot guide. Watch too for Elastic IPs, which bill when not attached to a running instance, one of the common surprise charges.
Choosing for a part-time workload
For instances powered down nightly that need fast, stateful resume, hibernate and accept the small memory-image cost. For instances that boot cleanly and quickly, stop and skip that cost. Either way, the bigger idle-cost lever is the storage: right-size volumes, delete what you do not need, and snapshot long-idle disks. Combine stop or hibernate with a schedule so part-time instances are off automatically. Price the instance and its volumes against the resource catalog so the true idle cost, storage included, is clear before you deploy.
FAQ
Does a stopped EC2 instance cost money?
The compute charge stops, but a stopped instance still bills for its attached EBS volumes at the normal per-GB rate, because the data persists, and for any Elastic IP not attached to a running instance. So a stopped instance is far cheaper than a running one but not free. For instances stopped indefinitely, snapshotting and deleting the volume avoids the ongoing EBS cost.
Is hibernate or stop cheaper for EC2?
A plain stop is marginally cheaper because hibernation writes the instance's RAM to the root EBS volume so it can resume with state intact, which consumes extra storage roughly equal to the memory size. An instance with 32 GB of RAM pays for about 32 GB of extra gp3 storage (around $2.56 per month) while hibernated. Both halt the compute charge and both keep billing for volumes.
When is EC2 hibernation worth the extra cost?
When fast, stateful resume matters: applications with long warm-up, large in-memory caches, or expensive initialization come back in seconds with memory and processes intact, rather than minutes to reboot and re-warm. If that saves engineering time or lets you power instances down more aggressively, the small extra EBS storage cost for the memory image is easily justified. Stateless services that boot quickly do not need it.
Does hibernating or stopping an instance stop EBS charges?
No. Neither stop nor hibernate ends EBS charges, because the volumes and their data persist. A fleet of stopped instances with large attached volumes can still cost a meaningful amount in storage alone. To eliminate that cost for a long-idle instance, snapshot the volume and delete it, since a snapshot costs far less per GB than a live gp3 volume kept online.
How does C3X help with idle EC2 storage cost?
C3X prices your EC2 instances and their attached EBS volumes from Terraform against a live catalog, so the storage that will keep billing while an instance is stopped or hibernated is visible before you deploy. That helps you right-size volumes and understand the true idle cost of a part-time workload, rather than discovering that a fleet of stopped instances still costs a meaningful amount in EBS on the monthly bill.
What to do next
See the true idle cost, storage included, before you deploy. C3X reads your Terraform and prices your resources against a live catalog. Start with the quickstart.
Share this post
Try C3X on your own Terraform
Free and open source. No API key required. One command to install, one command to estimate.