CloudBudgetMasterCloudBudgetMaster

← All articles

AWS

How to Find and Delete Unattached EBS Volumes Draining Your AWS Bill

June 07, 2026·3 min read·CloudBudgetMaster

Why Unattached EBS Volumes Hurt Your Bottom Line

Unattached ("available") EBS volumes keep accruing per‑GB‑month charges even though they serve no workload. A 100 GB gp3 volume costs roughly $0.08 / GB‑month, so a single forgotten volume can add $8 each month. Multiply that across teams and environments, and the waste quickly eclipses the cost of a small monitoring tool.

Identify Unattached Volumes in the AWS Console

  1. Open the EC2 DashboardVolumes.
  2. In the Filter dropdown, select State → available. This instantly shows every volume not attached to an instance.
  3. Add the Created column (gear icon) to see how old each volume is.
  4. Use the Tags column to spot volumes that lack a Owner or Environment tag – those are often orphaned.
  5. For each volume, click Actions → Create Snapshot if you need a backup before deletion, then Delete Volume.

Find Unattached Volumes with the AWS CLI

The CLI is faster for large accounts or automated scripts. Run the following command to list all available volumes with useful fields:

aws ec2 describe-volumes \
  --filters Name=status,Values=available \
  --query 'Volumes[*].[VolumeId,Size,CreateTime,Tags]' \
  --output table

The output shows VolumeId, size in GiB, creation timestamp, and any tags. To narrow results to volumes older than 30 days, pipe to jq:

aws ec2 describe-volumes \
  --filters Name=status,Values=available \
  --query 'Volumes[?CreateTime<`$(date -d "30 days ago" -Iseconds)`].[VolumeId,Size,CreateTime]' \
  --output table

Replace the date logic with your preferred shell syntax if not using GNU date.

Evaluate Before Deleting: Snapshot or Retain?

Not every unattached volume is trash. Follow this checklist: - Critical data? If the volume held databases, logs, or stateful data, create a snapshot first: bash aws ec2 create-snapshot --volume-id vol-0abcd1234ef567890 --description "Pre‑delete backup $(date +%F)" - Retention policy? If your organization keeps snapshots for 90 days, tag the snapshot with Retention=90 and let a lifecycle policy clean it up. - Tag audit. Volumes with a Purpose=Backup tag may be intentionally detached for off‑peak storage. Verify with the owning team before removal. - Cost impact. Multiply Size (GiB) by the per‑GB price of the volume type (e.g., gp3 $0.08/GB‑mo) to estimate monthly waste.

Delete Safely Using CLI or Console

Once you confirm a volume can be removed, delete it with one of the following methods:

CLI Deletion

aws ec2 delete-volume --volume-id vol-0abcd1234ef567890

The command returns no output on success. To batch‑delete volumes older than 30 days:

aws ec2 describe-volumes \
  --filters Name=status,Values=available \
  --query 'Volumes[?CreateTime<`$(date -d "30 days ago" -Iseconds)`].VolumeId' \
  --output text | tr '\t' '\n' | while read vol; do
    echo "Deleting $vol"
    aws ec2 delete-volume --volume-id $vol
  done

Console Deletion

  1. Select the volume(s) in the Volumes list.
  2. Choose Actions → Delete Volume.
  3. Confirm the prompt.

Prevent Future Orphans


How CloudBudgetMaster helps: Our platform continuously scans your AWS account, flags every unattached EBS volume, shows the exact dollar impact, and offers a one‑click delete (or snapshot‑then‑delete) button, so you never lose track of idle storage again.

Stop guessing where your cloud money goes

CloudBudgetMaster scans AWS, GCP & Azure and finds idle, unused, and overspending resources automatically.

Try Free — No Credit Card