S3 Intelligent-Tiering
CostLens detects large S3 buckets without Intelligent-Tiering and adds a lifecycle rule to automatically move objects to cheaper storage classes.
S3 Intelligent-Tiering automatically moves objects between storage tiers based on access patterns — with no performance impact and no retrieval fees. Objects that aren't accessed for 30 days move to a cheaper tier; those accessed again move back immediately. For buckets with unpredictable access patterns, this can reduce storage costs by up to 30% with zero operational overhead.
CostLens detects S3 buckets larger than 10 GB without an Intelligent-Tiering lifecycle policy and adds one automatically when you apply the fix.
How it works
CostLens lists all S3 buckets
Calls s3:ListAllMyBuckets and checks each bucket's region to avoid cross-region duplication.
Measures bucket size
Queries CloudWatch BucketSizeBytes (StandardStorage) to identify buckets larger than 10 GB.
Checks for existing lifecycle rules
Reads existing lifecycle configuration. Buckets that already have an Intelligent-Tiering transition rule are skipped.
Estimates savings
Calculates potential savings as approximately 30% of the current monthly Standard storage cost (bucket_size_gb × $0.023/GB × 0.30).
Adds a lifecycle rule on fix
Calls s3:PutLifecycleConfiguration to add an Intelligent-Tiering transition rule that applies to all objects in the bucket.
How Intelligent-Tiering works
Objects in an Intelligent-Tiering bucket are automatically moved based on access:
| Tier | Access pattern | Storage cost |
|---|---|---|
| Frequent Access | Accessed recently | Same as S3 Standard |
| Infrequent Access | Not accessed for 30 days | 40% cheaper than Standard |
| Archive Instant Access | Not accessed for 90 days | 68% cheaper than Standard |
There are no retrieval fees when objects move back to Frequent Access. The only overhead is a small per-object monitoring charge ($0.0025 per 1,000 objects/month) for objects larger than 128 KB.
What to do
Apply the fix — CostLens adds an S3 lifecycle rule to enable Intelligent-Tiering for all objects in the bucket. Objects begin moving to cheaper tiers within 30 days of the rule being applied.
Or dismiss if you know the bucket contains objects that are accessed frequently and uniformly — Intelligent-Tiering adds a small per-object monitoring fee that may not be worthwhile for very frequently accessed buckets.
Objects smaller than 128 KB are not tiered
Intelligent-Tiering only applies to objects 128 KB or larger. Smaller objects remain billed at Standard rates. If your bucket consists primarily of very small objects, savings will be lower than the estimate.
Severity levels
| Severity | Estimated monthly savings |
|---|---|
| critical | >$500 |
| high | $100–$500 |
| medium | $20–$100 |
| low | <$20 |
Required IAM permissions
Included in the CostLens IAM policies from AWS Accounts:
s3:ListAllMyBuckets
s3:GetBucketLocation
s3:GetBucketLifecycleConfiguration
cloudwatch:GetMetricStatistics
s3:PutLifecycleConfiguration