Overview

EBS Rules

CloudBurn cost optimization rules for AWS EBS.


EBS Rules

These rules identify EBS volumes using outdated volume types, volumes that are unattached, and volumes still attached to stopped instances where storage charges continue without active workloads.

Rule IDScan TypeName
CLDBRN-AWS-EBS-1Discovery and IaCEBS Volume Type Not Current Generation
CLDBRN-AWS-EBS-2DiscoveryEBS Volume Unattached
CLDBRN-AWS-EBS-3DiscoveryEBS Volume Attached To Stopped Instances

CLDBRN-AWS-EBS-1

EBS Volume Type Not Current Generation

Scan type: Discovery and IaC

What it checks

Flags EBS volumes using first- or second-generation volume types: gp2, io1, or standard. Current-generation equivalents offer better performance at equal or lower cost.

Why it matters

  • gp3 is 20% cheaper than gp2 at baseline ($0.08/GB vs $0.10/GB) and allows independent IOPS/throughput tuning without extra cost
  • io2 offers higher durability (99.999%) than io1 at the same price
  • standard (magnetic) is the oldest type and has no cost or performance advantage over gp3

What triggers a finding

Volume type is gp2, io1, or standard.

How to remediate

  • gp2 → migrate to gp3. You can modify volumes in-place with no downtime.
  • io1 → migrate to io2. Same in-place modification, same pricing.
  • standard → migrate to gp3.
aws ec2 modify-volume --volume-id vol-0abc123 --volume-type gp3

IaC resources checked

IaC ToolResource Type
Terraformaws_ebs_volume
CloudFormationAWS::EC2::Volume

CLDBRN-AWS-EBS-2

EBS Volume Unattached

Scan type: Discovery

What it checks

Flags EBS volumes that are not attached to any EC2 instance. Unattached volumes have no running workload consuming them but continue to incur storage charges.

Why it matters

EBS volumes are billed by provisioned storage regardless of whether they are attached or actively used. An unattached 1 TB gp3 volume costs $80/month while providing no value.

What triggers a finding

The volume has no attachments (empty attachments list).

How to remediate

  1. Verify the volume is not needed (check for recent snapshots, tags indicating ownership)
  2. Create a final snapshot if you want to preserve the data
  3. Delete the volume
# Optional: snapshot before deleting
aws ec2 create-snapshot --volume-id vol-0abc123 --description "final backup before delete"

# Delete the volume
aws ec2 delete-volume --volume-id vol-0abc123

CLDBRN-AWS-EBS-3

EBS Volume Attached To Stopped Instances

Scan type: Discovery

What it checks

Flags EBS volumes where every attached EC2 instance is in the stopped state. The volume is provisioned and billed but no running workload is using it.

Why it matters

A stopped EC2 instance does not incur compute charges, but its attached EBS volumes continue to incur storage charges. Long-stopped instances accumulate weeks or months of EBS cost that could be eliminated if the instance is truly no longer needed.

What triggers a finding

The volume has one or more attachments AND all attached instances are in the stopped state.

How to remediate

  1. Determine whether the stopped instance will be restarted. If yes, no action needed.
  2. If the instance is permanently stopped, snapshot the volume, then delete both the instance and volume.
  3. Consider whether the workload should be migrated to Lambda, containers, or another managed service that doesn't require persistent block storage.

See Also