Skip to content
Cloud Efficiency Hub

Inactive S3 Bucket

The short version

S3 buckets often persist after projects complete or when the associated workloads have been retired.

Taylor Houck

Cloud FinOps Specialist @ PointFive

AWS service
AWS S3
Category
Storage
Reference
CER-0037
Type
Idle or Unused Resource

Explanation

Why the waste happens and who it affects.

If a bucket is no longer being read from or written to - and its contents are not required for compliance, backup, or retention purposes-it represents ongoing cost without delivering value. Many organizations overlook these idle buckets, especially in shared or legacy accounts, leading to unnecessary storage costs over time.

Billing model

The pricing dimensions that drive this cost.

S3 charges based on the total storage used (per GB per month), the selected storage class, and the number and type of requests made (PUT, GET, LIST, etc.). Storage costs accrue continuously, even if the data is never accessed. Buckets with no read or write activity still incur storage charges for all retained data.

How to detect

5 checks to find it in your estate.

  • Identify S3 buckets with no read or write activity during the defined lookback period
  • Review object access patterns to confirm that stored data is not being queried or updated
  • Check whether the bucket was associated with a decommissioned workload, environment, or application
  • Assess whether the data is still needed for compliance, reference, or future recovery
  • Validate with data owners or security stakeholders before making changes

How to fix

How to remove the waste.

If a bucket is confirmed to be inactive and nonessential, delete the bucket and all stored objects. Alternatively, move the data to a lower-cost storage class such as Glacier Flexible Retrieval or Deep Archive for long-term retention at reduced cost. Consider applying lifecycle policies going forward to automatically clean up inactive data.

Before archiving, check the bucket's object count and average object size. Each object transitioned to S3 Glacier Flexible Retrieval or S3 Glacier Deep Archive incurs a transition request charge and 40 KB of per-object overhead (8 KB of it billed at S3 Standard rates), and these classes have minimum storage durations of 90 and 180 days, so for buckets with many small objects archiving can cost more than deleting or leaving the data in place. By default, lifecycle rules do not transition objects smaller than 128 KB.

Documentation

Vendor references for pricing and configuration.