The unattached volume audit
One console filter, one Tuesday, real money. A one-pager.
One-pager. Open your cloud console. Filter block storage volumes by state: available. That word means detached, orphaned, and billing.
EBS pricing charges for provisioned capacity whether or not a volume is attached to anything, and every fleet we have audited carries orphans: volumes from terminated instances (deletion-on-termination defaults have opinions), from migrations that finished, from that resize where someone kept the old disk "for a week, just in case", eighteen months ago.
The audit: list available volumes with their creation dates. Snapshot anything younger than a quarter, then delete the volume; a snapshot costs a fraction of live provisioned storage and restores in minutes if the week-just-in-case ever arrives. Older than a quarter with no attach history worth naming: delete without ceremony. Add the same pass for unassociated elastic IPs and aged snapshots while the console is open.
Then automate the finding, not the deletion: a weekly report of available volumes older than seven days, posted where the team reads. Auto-delete scripts eventually eat someone's database on the one legitimate detach; the report plus a human costs thirty seconds a week and has no incident attached.
Typical haul, mid-size estate, first pass: a few hundred a month, forever. Skip nothing this small that pays this well.