Skip to content

Case study: $1.3M/year saved with EBS snapshots for stopped EC2 instances

A stopped EC2 instance costs nothing in compute — but every EBS volume attached to it keeps billing at full price, month after month. In a real 2023 engagement that gap was worth $109,926 per month, or $1,319,110 per year, recovered by replacing the volumes of stopped instances with snapshots.

This case study is based on a real engagement by CloudPouch’s creator, published as Million-dollar AWS savings case study: EBS Snapshot on LinkedIn. Storage prices quoted below are N. Virginia figures from the 2023 engagement; verify current pricing before reusing the exact numbers.

The client kept thousands of stopped EC2 instances. They could not simply be deleted — sooner or later someone would need them again, which was a legitimate business requirement. Meanwhile the EBS volumes attached to those idle machines were costing around $150,000 per month.

At first glance the price gap looks modest: GP3 storage cost $0.08 per GB-month, snapshot storage $0.05. A 37.5% saving is nice, not spectacular.

The real lever is what you pay for:

  • An EBS volume bills for its provisioned size. A 100 GB GP3 volume costs $8/month whether it holds 100 GB or 3 GB.
  • A snapshot bills for the actual data it contains.

If that 100 GB volume is half full, its snapshot costs about 50% × 100 GB × $0.05 = $2.50 instead of $8 — a 68.7% saving. In this account the effect was extreme: 1,347,115 GB (1.29 PB) of deleted volumes shrank to 103,906 GB of snapshot data. An estimated 1.18 PB of what the client had been paying for was empty space.

  1. Build the scope: the list of stopped EC2 instances whose volumes qualify.
  2. Snapshot every attached volume and record the mapping in a database.
  3. Delete the EBS volumes.
  4. To bring an instance back: create volumes from its snapshots, attach them, delete the snapshots, start the instance.

The restore automation was built with AWS Step Functions and a few other serverless services, so “parked” instances stayed a self-service operation rather than a support ticket.

The account was a live environment — machines were being created and deleted throughout the project. A raw before/after bill comparison could be wiped out by someone launching 5,000 new instances mid-optimization. So the engagement used a unit KPI, as FinOps practice recommends: average monthly storage cost per EC2 instance.

MetricBeforeAfter
Avg. monthly storage cost per EC2 instance$14.20$5.82 (−59%)
Avg. EBS volumes per EC2 instance1.920.46
Removed volumes19,136
Deleted volume capacity1.29 PB
New snapshot data103,906 GB

CloudPouch supports this way of working: measure a unit cost before you start, optimize, then confirm the drop in the same metric. See Measure cost optimization with a KPI.

Snapshot Archive storage cost $0.0125 per GB-month at the time — a quarter of standard snapshot pricing — but restores cost $0.03 per GB and archived snapshots bill for a minimum of 90 days. Whether archiving pays off depends on how often instances actually get restored, so analyze restore patterns before moving snapshots to the Archive tier.

CloudPouch’s EBS Cost Insights flag volumes attached to stopped EC2 instances and summarize what they cost you, so you can decide which instances deserve the snapshot-parking treatment; EBS Snapshot Cost Insights then cover the snapshot side — cleanup and archive candidates. Not every stopped instance qualifies — the pattern fits machines that must remain restorable but do not need live volumes.