AWS EBS & Snapshot Cost Optimization

By Illusio Platform Engineering Team · Last reviewed: 2026 · 8 min read

Amazon Elastic Block Store (EBS) and snapshot retention frequently represent 15% to 30% of a company’s EC2 infrastructure bill. Because block storage is provisioned rather than consumed by usage, idle volumes and forgotten backups silently compound monthly spend.

1. The Zero-Downtime gp2 to gp3 Migration

General Purpose SSD (gp2) volumes tie baseline IOPS and throughput directly to disk volume size ($0.10/GB-month in most regions). Migrating to gp3 instantly lowers baseline storage costs to $0.08/GB-month—an immediate 20% discount—while granting a baseline 3,000 IOPS and 125 MB/s throughput regardless of disk volume size.

AWS Elastic Volumes allows modifying existing gp2 volumes to gp3 live without detachment, reboot, or application downtime. For EKS clusters, updating the default StorageClass to gp3 ensures all newly dynamically provisioned PersistentVolumes inherit modern cost-efficient performance.

2. Purging Unattached and Orphaned Volumes

When an EC2 instance is terminated without the DeleteOnTermination flag set to true, or when a Kubernetes PersistentVolumeClaim is deleted without appropriate reclamation policies, the underlying EBS volume remains in the available state. AWS continues billing for 100% of the provisioned capacity every month.

Using AWS Config or a simple AWS CLI query, platform teams should inventory all unattached EBS volumes older than 7 days, trigger an automated final snapshot, and delete the orphaned volumes:

aws ec2 describe-volumes --filters Name=status,Values=available --query "Volumes[*].{ID:VolumeId,Size:Size,Type:VolumeType,Created:CreateTime}" --output table

Find your orphaned EBS volumes and snapshots

Get an automated read-only CloudSpend Snapshot. We identify unattached volumes, legacy gp2 disks, and snapshot bloat across all active AWS regions.

Get Free CloudSpend Snapshot Explore CloudSpend Reset

3. Snapshot Lifecycle and Accumulation Control

EBS snapshots are incremental, which makes them cost-effective initially ($0.05/GB-month in S3). However, automated backup scripts often create daily or hourly snapshots without an automated deletion policy. Over 2 to 3 years, organizations frequently retain thousands of abandoned snapshots for terminated instances that no longer exist.

Key remediation steps include:

  • Implement AWS Data Lifecycle Manager (DLM): Replace custom cron-based backup scripts with DLM policies or AWS Backup to enforce strict retention schedules (e.g. keep 7 daily, 4 weekly, 12 monthly).
  • Identify Snapshots of Deleted AMIs: Deregistering an Amazon Machine Image (AMI) does not delete the underlying EBS snapshot. Scripts must actively match snapshot descriptions against existing AMIs.
  • Disable Unnecessary Fast Snapshot Restore (FSR): FSR delivers immediate full performance on restored volumes but incurs a steep hourly charge ($0.75 per AZ-hour). Verify that non-production snapshots do not have FSR enabled.

4. Rightsizing io1 and io2 Provisioned IOPS

Provisioned IOPS SSD volumes (io1 and io2) are expensive. In addition to storage fees, AWS charges per provisioned IOPS ($0.065/IOPS-month). In many architectures, databases were configured with 10,000 IOPS during initial launch but average peak consumption under 2,500 IOPS in CloudWatch metrics. Migrating these workloads to gp3 with custom provisioned IOPS or rightsizing io2 parameters typically yields over 50% storage savings.

Ready to eliminate your AWS storage waste?

Our platform engineering team delivers quantified EBS rightsizing, gp3 transition plans, and automated snapshot retention rules with zero production risk.

Get My Free CloudSpend Snapshot Talk to a Cloud Engineer