Your storage bill is mostly forgotten decisions
The Lizrd team · · 2 min read
Compute waste is loud — an oversized instance shows up in every utilization chart. Storage waste is silent. It’s a volume type chosen in 2022, a snapshot schedule nobody turned off, a bucket that’s been collecting logs at the standard tier for years. None of it pages anyone. All of it bills every month.
Storage is where forgotten decisions go to compound. Here’s where they hide.
gp2 is a default, not a choice
The single most common EBS mistake is still running gp2 volumes. gp3 is newer, cheaper per GB, and lets you provision IOPS and throughput independently instead of paying for capacity you don’t need to buy performance you do:
resource "aws_ebs_volume" "data" {
- type = "gp2"
+ type = "gp3"
size = 500
}
For most volumes this is a ~20% saving with equal-or-better performance and zero application change. It’s as close to free money as cloud gets — and it sits untouched because nobody’s job is to revisit volume types.
Snapshots are the tax you forgot to schedule
Automated snapshots are good practice. Automated snapshots with no lifecycle policy are a slow leak. Every day adds a snapshot; nothing ever removes one; the bill grows linearly forever. Worse are orphaned snapshots — backups of volumes that were deleted long ago, still billing for a source that no longer exists.
The fix isn’t clever, it’s just looked at: a retention policy on the schedule, and a sweep for snapshots whose source volume is gone.
S3 without lifecycle is a landfill
Object storage is cheap per GB, which is exactly why it’s dangerous — it never hurts enough to clean up. But data has a temperature. Logs are hot for a week and cold forever after; the standard tier charges you the hot rate for all of it.
Lifecycle rules and Intelligent-Tiering move objects to colder, cheaper classes automatically as access drops. The blocker is never the feature — it’s knowing which prefixes hold cold data, which means actually looking at access patterns instead of guessing.
The pattern: nobody owns the second look
Every storage waste above shares one root cause — a decision made once, correctly for the moment, and never revisited as reality changed. There’s no utilization alarm for “this volume type is now suboptimal.” The information exists in your account; it’s just nobody’s job to go read it.
That’s the gap Lizrd closes. It continuously reads your storage inventory and usage — volume types, snapshot lineage, bucket access patterns — and surfaces the orphaned and idle storage plus the gp3 and lifecycle changes as concrete diffs, ranked by dollars saved. Storage stops being a landfill the moment something is actually watching it.