AWSAmazon EBSStorage

aws_ebs_snapshot cost estimation

A point-in-time backup of an EBS volume, stored in S3. $0.05/GB-month standard (incremental), or $0.0125/GB-month in the archive tier.

An aws_ebs_snapshot is a point-in-time backup of an EBS volume held in S3-backed storage. The headline rate is $0.05/GB-month, but the number that matters is that standard snapshots are incremental: each snapshot only stores blocks changed since the previous one. A 500 GB volume snapshotted daily doesn't cost 30 × 500 GB — it costs the initial 500 GB plus the daily delta. For most workloads the effective bill is far below the naive multiplication.

Where it goes wrong is retention. Automated daily snapshots with no lifecycle policy accumulate forever, and because each snapshot references shared blocks, deleting old ones frees less than you'd expect. A volume churning 50 GB/day with two years of un-pruned daily snapshots can quietly hold several TB of snapshot data — thousands of dollars a year for backups nobody restores.

The archive tier ($0.0125/GB-month, 75% cheaper) stores a full, standalone copy for snapshots you must keep but rarely touch — compliance archives, quarterly baselines. The catch is that archived snapshots store the full volume size (not incremental) and take hours and a per-GB retrieval fee to restore, with a 90-day minimum. They only pay off for genuinely cold, long-lived snapshots.

c3x prices snapshot storage from monthly_snapshot_gb in c3x-usage.yml and picks the rate from storage_tier ('standard' or 'archive'). Without usage data the snapshot resource contributes nothing, because the cost is entirely volume-driven.

Terraform example

A minimal but realistic configuration that C3X can estimate.

resource "aws_ebs_snapshot" "data" {
  volume_id = aws_ebs_volume.data.id

  tags = {
    Name = "data-volume-backup"
  }
}

# Lifecycle policies (aws_dlm_lifecycle_policy) are the right way to
# automate creation and, crucially, expiration of snapshots.

Pricing dimensions

What you actually pay for when you provision aws_ebs_snapshot.

DimensionUnitWhat's being charged
Standard snapshot storageper GB-monthIncremental — only changed blocks since the last snapshot are stored. The default tier.
$0.05/GB-month
Archive snapshot storageper GB-month75% cheaper but stores the full volume size, with a 90-day minimum and a per-GB retrieval fee on restore.
$0.0125/GB-month

Sample C3X output

100 GB of standard (incremental) snapshot storage:

aws_ebs_snapshot.data
└─ Snapshot storage (standard)   100 GB-month   $5.00
                                 Monthly        $5.00

Optimization tips

Common ways to reduce aws_ebs_snapshot cost without changing the workload.

Set a lifecycle policy that actually expires snapshots

Often the largest single EBS-backup saving

Use aws_dlm_lifecycle_policy (Data Lifecycle Manager) to create AND delete snapshots on a schedule. The cost problem is almost never creation — it's the years of snapshots no policy ever prunes.

Move cold, must-keep snapshots to the archive tier

75% on genuinely cold snapshots

Compliance baselines and quarterly snapshots you keep for years but never restore belong in archive at $0.0125/GB-month. Don't archive frequently-restored snapshots — the retrieval fee and hours-long restore wipe out the saving.

Right-size source volumes before they're snapshotted

Proportional to reclaimed space

Snapshot cost tracks the data on the volume. A 1 TB volume that's 80% empty still seeds 1 TB of snapshot data. Shrinking over-provisioned volumes reduces both EBS and snapshot bills.

Delete snapshots of deleted volumes

100% on orphaned snapshots

Snapshots outlive their source volume by design, so terminating an instance leaves orphaned snapshots billing indefinitely. Periodically reconcile snapshots against live volumes.

FAQ

Are EBS snapshots really incremental?

Standard snapshots are. Each one stores only the blocks changed since the previous snapshot of that volume, so daily snapshots of a low-churn volume cost far less than full copies. Archive-tier snapshots are the exception — they store the full volume size.

Why didn't deleting old snapshots free as much as I expected?

Because snapshots share blocks. Deleting a snapshot only frees blocks not referenced by any remaining snapshot. If a later snapshot still needs those blocks, they stay. The space frees up as the chain of dependent snapshots is removed.

When is the archive tier worth it?

For snapshots you must keep but essentially never restore. Archive is 75% cheaper to store but stores the full size, has a 90-day minimum, and charges a per-GB retrieval fee with a multi-hour restore. For anything you might restore soon, standard is cheaper overall.

How does c3x estimate snapshot cost?

From monthly_snapshot_gb in c3x-usage.yml, at the standard or archive rate per storage_tier. Because the cost is entirely volume-driven, a snapshot with no usage data contributes $0 to the estimate.

Related resources

Estimate this resource in your own Terraform

Free, open source, no API key. C3X parses your Terraform and shows line-item cost for every resource, including aws_ebs_snapshot.