Skip to main content
rightsizing · aws

S3 Standard buckets with under 1,000 requests a day and no lifecycle rule, suited to Standard-IA

resource types
1
rule IDs covered
1
severity
low

What does ZopNight detect here?

ZopNight flags buckets whose largest storage class is S3 `STANDARD`, with no lifecycle policy and request metrics showing fewer than 1,000 requests a day. Moving that data to Standard-IA drops storage from $0.023 to $0.0125 per GB-month in us-east-1, and ZopNight prices the finding from the bucket's actual Standard bytes.

Signal and threshold

How ZopNight evaluates S3 Standard buckets with under 1,000 requests a day and no lifecycle rule, suited to Standard-IA.
Field Value
Rule IDsRC-070
Categoryrightsizing
Severitylow
MetricAllRequests (S3 request metrics)
Thresholddominant class STANDARD, < 1,000 requests/day, no lifecycle policy
Evaluation window30d
SourceZopNight
Permissions useds3:GetLifecycleConfiguration · s3:GetMetricsConfiguration · cloudwatch:GetMetricStatistics

Standard-IA halves storage for data you rarely read

S3 Standard-IA is designed for long-lived data accessed about once a month, per the storage class comparison. AWS’s US East (N. Virginia) price list puts it at $0.0125 per GB-month against $0.023 for Standard. The conditions matter as much as the price: Standard-IA has a 30-day minimum storage duration, bills objects under 128 KB as 128 KB, and charges a per-GB retrieval fee. A bucket that is written once and read rarely gains; one that is read constantly loses.

Measuring size and access for a bucket

Terminal window
aws cloudwatch get-metric-statistics --namespace AWS/S3 --metric-name BucketSizeBytes \
--dimensions Name=BucketName,Value=my-bucket Name=StorageType,Value=StandardStorage \
--start-time 2026-09-22T00:00:00Z --end-time 2026-09-25T00:00:00Z \
--period 86400 --statistics Average
aws cloudwatch get-metric-statistics --namespace AWS/S3 --metric-name AllRequests \
--dimensions Name=BucketName,Value=my-bucket Name=FilterId,Value=EntireBucket \
--start-time 2026-08-26T00:00:00Z --end-time 2026-09-25T00:00:00Z \
--period 86400 --statistics Sum

AllRequests only exists after you add a request metrics configuration to the bucket.

When a bucket qualifies

  1. S3 Standard holds more of the bucket’s bytes than any other class.
  2. The bucket has no lifecycle policy managing transitions already.
  3. It has a known monthly cost.
  4. Request metrics exist and the average is below 1,000 requests a day. At or above that level, Standard-IA request and retrieval charges would eat the storage saving.
  5. The per-bucket Standard to Standard-IA saving that ZopNight computes from the bucket’s storage classes is positive.

Buckets that are skipped

No request metrics means no finding, because ZopNight will not call a bucket cold without measuring it. Buckets dominated by another class, buckets with a lifecycle policy, and buckets with no positive saving are also skipped. A bucket that suits automatic tiering better is covered by S3 Intelligent-Tiering Not Enabled, and one that has no lifecycle rule but no measured access data is not priced today; S3 Bucket Lifecycle Policy Missing is meant to cover it once ZopNight measures per-bucket cold data.

Standard bytes times the rate gap

Terminal window
saving = Standard GB x (Standard rate - Standard-IA rate)
capped at the bucket's monthly cost

At us-east-1 list prices, 10 TB in Standard saves about $107 a month once it sits in Standard-IA.

Moving cold data to Standard-IA

  1. Use Storage Lens or Storage Class Analysis to confirm which prefixes are cold.
  2. Add a transition after 30 days, the earliest point lifecycle allows for Standard-IA:
Terminal window
{"Rules":[{"ID":"standard-to-ia","Status":"Enabled","Filter":{"Prefix":"reports/"},
"Transitions":[{"Days":30,"StorageClass":"STANDARD_IA"}]}]}
  1. Apply it with aws s3api put-bucket-lifecycle-configuration, then watch retrieval charges on the next bill.

See it fire on your bill.

Connect an account read-only. The first findings land in minutes.

472 rule families across 353 resource types on 22 platforms. Every threshold, metric, and IAM action is documented on these pages before you grant anything.

472 rule families documented
353 resource types covered
read-only default access level
Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console·