Table of Contents
- What Is Cloud Storage Tiering?
- AWS S3 Storage Classes
- S3 Intelligent-Tiering vs Manual Tiering
- Azure Blob Storage Tiers
- GCP Cloud Storage Classes
- Setting Up Lifecycle Policies
- Cost Comparison Across Tiers
- When to Use Each Storage Tier
- FAQ
- Sources
TLDR: Cloud storage tiering saves 50-95% by automatically moving infrequent data to cheaper classes. AWS S3 Standard costs $0.023/GB/month, S3 Intelligent-Tiering auto-saves 40-68%, S3 Glacier Deep Archive costs $0.00099/GB/month (96% cheaper). Azure Hot $0.018/GB, Cool $0.01/GB, Archive $0.002/GB. Set lifecycle policies to transition after 30 days (Infrequent Access), 90 days (Archive Instant), 180+ days (Deep Archive). S3 Intelligent-Tiering best for unpredictable access, Glacier for long-term archives, Hot/Standard for active data.
A client stored 50TB of application logs in S3 Standard at $0.023/GB ($1,150/month). Most logs were accessed once in the first week, never again. We set up lifecycle policies: transition to S3 Standard-IA after 30 days, to S3 Glacier after 90 days, to Deep Archive after 1 year. New monthly cost: $180 (84% savings). Same data, different storage classes.
After 9+ years managing cloud infrastructure, I’ve seen teams waste thousands on S3 Standard for data that’s never accessed again. Storage tiering is the easiest cloud cost optimization with the highest ROI.
Cloud storage tiering automatically moves data between storage classes based on access patterns and age to optimize costs. AWS offers S3 Standard ($0.023/GB/month for hot data), S3 Standard-IA ($0.0125/GB for 30+ day retention), S3 Glacier Instant Retrieval ($0.004/GB for archive with instant access), and S3 Glacier Deep Archive ($0.00099/GB for long-term cold storage). Azure provides Hot, Cool, Cold, and Archive tiers. Lifecycle policies automate transitions, reducing storage costs by 60-95% for infrequently accessed data without manual intervention.
What Is Cloud Storage Tiering?
Storage tiering organizes data across different storage classes based on access frequency and retention requirements. Frequently accessed data stays in expensive fast storage (S3 Standard, Azure Hot). Infrequently accessed data moves to cheaper slower storage (S3 Glacier, Azure Cool). Rarely accessed archives move to ultra-cheap deep storage (S3 Deep Archive, Azure Archive). Automated lifecycle policies transition data based on rules (age, last access time). Saves 60-95% on storage costs for data accessed less than once per month.
Cloud providers charge 10-100x more for fast storage than cold storage. Tiering puts data in the cheapest appropriate tier.
Cost difference example (AWS us-east-1):
Storing 10TB for 1 year:
- S3 Standard: 10,000GB × $0.023/month × 12 = $2,760/year
- S3 Standard-IA: 10,000GB × $0.0125/month × 12 = $1,500/year (46% savings)
- S3 Glacier Flexible Retrieval: 10,000GB × $0.0036/month × 12 = $432/year (84% savings)
- S3 Glacier Deep Archive: 10,000GB × $0.00099/month × 12 = $118/year (96% savings)
If data is accessed less than 12 times per year, Deep Archive saves $2,642 even with retrieval costs.
How tiering works:
- Data written to hot tier (S3 Standard, Azure Hot) initially
- Lifecycle policy monitors age or access patterns
- After 30 days without access: transition to Infrequent Access tier
- After 90 days: transition to Archive tier
- After 365 days: transition to Deep Archive tier
Transitions happen automatically, no manual intervention.
Tiering tradeoffs:
| Storage Tier | Cost | Retrieval Speed | Retrieval Cost | Min Storage Duration |
|---|---|---|---|---|
| Hot (Standard) | Highest | Instant | None | None |
| Infrequent Access | 40-50% cheaper | Instant | Low ($0.01/GB) | 30 days |
| Archive Instant | 80% cheaper | Instant | Medium ($0.03/GB) | 90 days |
| Glacier Flexible | 84% cheaper | 1-5 hours | Medium ($0.01/GB) | 90 days |
| Deep Archive | 96% cheaper | 12-48 hours | Medium ($0.02/GB) | 180 days |
AWS S3 Storage Classes
AWS offers 7 S3 storage classes. S3 Standard ($0.023/GB/month) for frequent access. S3 Intelligent-Tiering (auto-optimizes, no retrieval fees). S3 Standard-IA ($0.0125/GB, 30-day minimum). S3 One Zone-IA ($0.01/GB, single AZ, 20% cheaper). S3 Glacier Instant Retrieval ($0.004/GB, millisecond access). S3 Glacier Flexible Retrieval ($0.0036/GB, 1-5 hour retrieval). S3 Glacier Deep Archive ($0.00099/GB, cheapest, 12-hour retrieval). All classes provide 99.999999999% durability.
Choose based on access pattern and retrieval time requirements.
S3 Standard (frequent access):
- Cost: $0.023/GB/month
- Retrieval: Instant, no fees
- Use for: Active data accessed daily/weekly
- Example: User-uploaded images, application assets
S3 Standard-IA (infrequent access):
- Cost: $0.0125/GB/month (46% cheaper than Standard)
- Retrieval: Instant, $0.01/GB retrieval fee
- Minimum storage: 30 days (charged for 30 days even if deleted sooner)
- Minimum object size: 128KB
- Use for: Backups, disaster recovery data accessed monthly
- Example: Database backups, monthly reports
S3 Intelligent-Tiering (automatic optimization):
- Cost: Same as Standard for Frequent Access tier
– Frequent Access: $0.023/GB/month
– Infrequent Access (30+ days): $0.0125/GB/month (40% cheaper)
– Archive Instant Access (90+ days): $0.004/GB/month (83% cheaper)
– Archive Access (90-270 days, optional): $0.0036/GB/month
– Deep Archive Access (180-730 days, optional): $0.00099/GB/month
- Monitoring fee: $0.0025 per 1,000 objects/month
- No retrieval fees for automatic tiers
- Use for: Unpredictable access patterns, unknown data lifecycle
- Example: Data lakes, user-generated content with variable access
S3 Glacier Instant Retrieval (archive with instant access):
- Cost: $0.004/GB/month (83% cheaper than Standard)
- Retrieval: Milliseconds, $0.03/GB retrieval fee
- Minimum storage: 90 days
- Use for: Long-lived archives accessed quarterly
- Example: Medical records, financial archives
S3 Glacier Flexible Retrieval (archive):
- Cost: $0.0036/GB/month (84% cheaper than Standard)
- Retrieval options:
– Expedited: 1-5 minutes, $0.03/GB
– Standard: 3-5 hours, $0.01/GB
– Bulk: 5-12 hours, $0.0025/GB
- Minimum storage: 90 days
- Use for: Long-term backups accessed rarely
- Example: Compliance archives, old logs
S3 Glacier Deep Archive (cheapest long-term storage):
- Cost: $0.00099/GB/month (96% cheaper than Standard)
- Retrieval: Standard 12 hours ($0.02/GB), Bulk 48 hours ($0.0025/GB)
- Minimum storage: 180 days
- Use for: 7+ year retention, accessed almost never
- Example: Regulatory compliance data, legal archives
Real cost example (10TB data stored 1 year, accessed 0 times):
- S3 Standard: $2,760/year
- S3 Intelligent-Tiering: $1,200/year (archives after 90 days to Archive tier)
- S3 Glacier Deep Archive: $118/year
- Savings with Deep Archive: $2,642/year (96%)
S3 Intelligent-Tiering vs Manual Tiering
S3 Intelligent-Tiering auto-optimizes costs by monitoring access patterns and moving objects between tiers. No retrieval fees for automatic tiers. $0.0025 monitoring fee per 1,000 objects. Best for unpredictable access patterns (saves 40-68% automatically). Manual tiering with lifecycle policies cheaper for predictable patterns (no monitoring fees), but requires defining rules and risks wrong tier placement. Intelligent-Tiering wins for unknown patterns, manual wins for known patterns.
Intelligent-Tiering removes guesswork but adds monitoring cost.
Intelligent-Tiering benefits:
- No retrieval fees: Moving between Frequent, Infrequent, and Archive Instant Access tiers is free (huge savings)
- Automatic optimization: No need to predict access patterns
- Protection from mistakes: Won’t move frequently accessed data to wrong tier
- Granular tiering: Moves individual objects, not buckets
Intelligent-Tiering costs:
- Monitoring: $0.0025 per 1,000 objects/month
- For 10 million objects: 10,000 × $0.0025 = $25/month
- For 100 million objects: 100,000 × $0.0025 = $250/month
When Intelligent-Tiering wins:
Example: 1TB data, 1 million objects, unpredictable access
Without Intelligent-Tiering (guessing):
- Store in S3 Standard: $23/month (wrong tier if rarely accessed, overpaying)
- Store in S3 Glacier: $3.60/month + retrieval fees if accessed often (wrong tier)
With Intelligent-Tiering:
- Storage: Automatically optimized ($4-23/month depending on access)
- Monitoring: $2.50/month
- Total: $6.50-25.50/month with optimal placement
Intelligent-Tiering always picks the right tier, worth the $2.50 monitoring fee.
When manual lifecycle policies win:
Example: Application logs, predictable access pattern (accessed first 7 days, never again)
Manual policy:
- 0-7 days: S3 Standard ($0.023/GB)
- 30 days: Transition to S3 Standard-IA ($0.0125/GB)
- 90 days: Transition to S3 Glacier ($0.0036/GB)
- No monitoring fees
For predictable patterns, manual policies save the $0.0025/1000 objects monitoring cost.
| Scenario | Best Choice | Why |
|---|---|---|
| Unpredictable access | Intelligent-Tiering | No retrieval fees, auto-optimizes |
| Known access pattern | Manual lifecycle policy | No monitoring fees |
| Large object count (100M+) | Manual lifecycle policy | Monitoring fees too high |
| Small object count (<10M) | Intelligent-Tiering | Monitoring fees negligible |
| Data lake with mixed access | Intelligent-Tiering | Access patterns vary by object |
I use Intelligent-Tiering for user-uploaded content (unpredictable) and manual policies for logs (predictable weekly retention).
Azure Blob Storage Tiers
Azure offers Hot ($0.018/GB/month for frequent access), Cool ($0.01/GB, 30-day minimum), Cold ($0.005/GB, 90-day minimum, new in 2026), Archive ($0.002/GB, 180-day minimum, 15-hour rehydration), and Premium (SSD-based, millisecond latency). Hot tier has lowest access costs, Archive has lowest storage costs. Azure Smart tier automatically optimizes placement like S3 Intelligent-Tiering. Lifecycle management policies automate transitions.
Azure’s pricing is slightly cheaper than AWS S3 for equivalent tiers.
Hot tier:
- Storage: $0.018/GB/month
- Access cost: $0.0004 per 10,000 read operations
- Use for: Active data accessed daily
- No minimum storage duration
Cool tier:
- Storage: $0.01/GB/month (44% cheaper than Hot)
- Access cost: $0.01 per 10,000 read operations (25x more expensive than Hot)
- Minimum storage: 30 days
- Use for: Short-term backup, data accessed monthly
- Early deletion fee applies if deleted before 30 days
Cold tier (new in 2026):
- Storage: $0.005/GB/month (72% cheaper than Hot)
- Access cost: Higher than Cool
- Minimum storage: 90 days
- Use for: Data accessed quarterly
- Fills gap between Cool and Archive
Archive tier:
- Storage: $0.002/GB/month (89% cheaper than Hot)
- Retrieval: 15 hours (Standard rehydration), 1 hour (High priority, higher cost)
- Access cost: $0.02/GB to rehydrate
- Minimum storage: 180 days
- Use for: Long-term compliance archives
Azure Smart tier:
- Automatically moves blobs between Hot, Cool, and Cold tiers
- No monitoring fees (unlike S3 Intelligent-Tiering)
- Optimizes based on usage patterns
- Currently in preview as of 2026
Real cost example (5TB stored 1 year):
- Hot: 5,000GB × $0.018/month × 12 = $1,080/year
- Cool: 5,000GB × $0.01/month × 12 = $600/year (44% savings)
- Archive: 5,000GB × $0.002/month × 12 = $120/year (89% savings)
If data accessed less than 10 times per year, Archive cheaper even with rehydration costs.
GCP Cloud Storage Classes
GCP offers Standard ($0.02/GB/month in us-central1 for frequent access), Nearline ($0.01/GB, 30-day minimum for monthly access), Coldline ($0.004/GB, 90-day minimum for quarterly access), and Archive ($0.0012/GB, 365-day minimum for yearly access). GCP uses regional, dual-regional, and multi-regional locations affecting pricing. Autoclass automatically transitions to cheapest class like S3 Intelligent-Tiering.
GCP pricing is competitive with AWS and Azure.
Standard Storage:
- Cost: $0.02/GB/month (us-central1)
- Retrieval: Instant, no fees
- Use for: Active data accessed frequently
Nearline Storage:
- Cost: $0.01/GB/month (50% cheaper than Standard)
- Retrieval: Instant, $0.01/GB retrieval fee
- Minimum storage: 30 days
- Use for: Data accessed once per month
Coldline Storage:
- Cost: $0.004/GB/month (80% cheaper than Standard)
- Retrieval: Instant, $0.02/GB retrieval fee
- Minimum storage: 90 days
- Use for: Data accessed once per quarter
Archive Storage:
- Cost: $0.0012/GB/month (94% cheaper than Standard)
- Retrieval: Instant (despite name), $0.05/GB retrieval fee
- Minimum storage: 365 days
- Use for: Data accessed once per year or less
GCP Autoclass:
- Automatically transitions objects to appropriate class
- No monitoring fees
- Transitions based on access patterns
- Enabled per bucket
Comparison: GCP vs AWS vs Azure (1TB, 1 year, 0 access):
| Provider | Hot/Standard | Archive |
|---|---|---|
| AWS S3 | $276/year | $11.88/year (Deep Archive) |
| Azure Blob | $216/year | $24/year |
| GCP Storage | $240/year | $14.40/year |
GCP Archive slightly more expensive than AWS Deep Archive, but cheaper than Azure.
Setting Up Lifecycle Policies
Lifecycle policies automate storage tier transitions based on object age or last access time. Reduce storage costs by 60-80% by transitioning old data to cheaper tiers. AWS S3 lifecycle rules transition to Standard-IA after 30 days, Glacier after 90 days, Deep Archive after 365 days. Azure lifecycle management rules move to Cool after 30 days, Archive after 180 days. Test policies on subset before production rollout to avoid accidental deletions.
Lifecycle policies are set-and-forget cost optimization.
AWS S3 lifecycle policy example:
Transition application logs to cheaper tiers:
{
"Rules": [{
"Id": "LogArchiving",
"Status": "Enabled",
"Filter": {
"Prefix": "logs/"
},
"Transitions": [
{
"Days": 30,
"StorageClass": "STANDARD_IA"
},
{
"Days": 90,
"StorageClass": "GLACIER_IR"
},
{
"Days": 365,
"StorageClass": "DEEP_ARCHIVE"
}
],
"Expiration": {
"Days": 2555 // 7 years for compliance
}
}]
}Apply via AWS CLI:
aws s3api put-bucket-lifecycle-configuration \
--bucket my-logs-bucket \
--lifecycle-configuration file://lifecycle.jsonAzure Blob lifecycle management example:
{
"rules": [{
"name": "archiveOldBackups",
"enabled": true,
"type": "Lifecycle",
"definition": {
"filters": {
"blobTypes": ["blockBlob"],
"prefixMatch": ["backups/"]
},
"actions": {
"baseBlob": {
"tierToCool": {
"daysAfterModificationGreaterThan": 30
},
"tierToArchive": {
"daysAfterModificationGreaterThan": 180
},
"delete": {
"daysAfterModificationGreaterThan": 2555
}
}
}
}
}]
}Best practices:
- Start conservative: Transition after 90 days first, reduce to 30 days after monitoring
- Expire incomplete uploads: Abort incomplete multipart uploads after 7 days (hidden cost)
- Delete old versions: Expire non-current object versions after 90 days (S3 versioning bloat)
- Test first: Apply policy to test bucket with copy of data before production
- Monitor savings: Use S3 Storage Lens or Azure Storage insights to track cost reduction
Common policy patterns:
| Data Type | Transition Schedule | Expiration |
|---|---|---|
| Application logs | 30d→IA, 90d→Glacier | 1 year |
| Database backups | 30d→IA, 90d→Glacier | 90 days |
| Compliance archives | 90d→Deep Archive | 7 years |
| User uploads | Intelligent-Tiering | Never |
| Build artifacts | 7d→IA | 90 days |
Lifecycle policies on 100TB reduce costs from $2,300/month (S3 Standard) to $600/month (mixed tiers) = $1,700/month saved.
Cost Comparison Across Tiers
Storage cost comparison for 100TB stored 1 year across AWS, Azure, GCP. AWS S3 Standard: $27,600/year. S3 Deep Archive: $1,188/year (96% savings). Azure Hot: $21,600/year. Azure Archive: $2,400/year (89% savings). GCP Standard: $24,000/year. GCP Archive: $1,440/year (94% savings). Retrieval costs add $10-300 per retrieval depending on tier and urgency. Total cost includes storage + retrieval + minimum duration charges.
Real-world storage costs for typical scenarios.
Scenario 1: Application backups (20TB, accessed 2x per year for testing)
| Provider/Tier | Monthly Storage | Annual Retrieval (2x) | Annual Total | Savings |
|---|---|---|---|---|
| AWS S3 Standard | $460 | $0 | $5,520 | Baseline |
| AWS S3 Standard-IA | $250 | $400 (2×20TB×$0.01) | $3,400 | 38% |
| AWS S3 Glacier Flexible | $72 | $400 (2×20TB×$0.01) | $1,264 | 77% |
| Azure Hot | $360 | $0 | $4,320 | 22% |
| Azure Cool | $200 | $400 | $2,800 | 49% |
| Azure Archive | $40 | $800 (2×20TB×$0.02) | $1,280 | 77% |
Glacier Flexible and Azure Archive tie for cheapest with 2 retrievals/year.
Scenario 2: Compliance archives (50TB, accessed 0x per year)
| Provider/Tier | Annual Storage | Annual Retrieval | Annual Total | Savings |
|---|---|---|---|---|
| AWS S3 Standard | $13,800 | $0 | $13,800 | Baseline |
| AWS S3 Deep Archive | $594 | $0 | $594 | 96% |
| Azure Archive | $1,200 | $0 | $1,200 | 91% |
| GCP Archive | $720 | $0 | $720 | 95% |
AWS Deep Archive cheapest for never-accessed archives.
Scenario 3: Data lake (500TB, unpredictable access)
| Provider/Tier | Annual Storage | Monitoring/Transitions | Annual Total |
|---|---|---|---|
| AWS S3 Standard | $138,000 | $0 | $138,000 |
| AWS Intelligent-Tiering | $55,200 (avg) | $300 | $55,500 |
Intelligent-Tiering saves $82,500/year (60%) for unpredictable access.
Retrieval cost comparison (retrieving 10TB once):
| Tier | Retrieval Cost | Time | Total Cost |
|---|---|---|---|
| S3 Standard | $0 | Instant | $0 |
| S3 Standard-IA | $100 | Instant | $100 |
| S3 Glacier (Standard) | $100 | 3-5 hours | $100 |
| S3 Deep Archive (Standard) | $200 | 12 hours | $200 |
| Azure Archive (Standard) | $200 | 15 hours | $200 |
| GCP Archive | $500 | Instant | $500 |
GCP Archive has highest retrieval cost but fastest retrieval time.
When to Use Each Storage Tier
Use hot/standard tiers for data accessed daily or weekly (user content, active databases, application assets). Use infrequent access tiers for data accessed monthly (backups, disaster recovery). Use archive instant for quarterly access (compliance data, old projects). Use flexible/deep archive for yearly or never access (legal hold, regulatory compliance). Use Intelligent-Tiering or Smart tier when access patterns are unknown or unpredictable. Match tier to access frequency to minimize total cost.
Wrong tier costs money. Too hot wastes storage costs. Too cold wastes retrieval costs.
Decision tree:
- Data accessed daily/weekly? → Use Standard/Hot tier
- Data accessed monthly? → Use Infrequent Access/Cool tier
- Data accessed quarterly? → Use Archive Instant/Cold tier
- Data accessed yearly or never? → Use Deep Archive/Archive tier
- Access pattern unknown? → Use Intelligent-Tiering/Smart tier
Use cases by tier:
Standard/Hot (frequent access):
- User-uploaded images and videos
- Website static assets (CSS, JavaScript)
- Application configuration files
- Active customer data
- Real-time analytics data
Infrequent Access/Cool (monthly access):
- Daily/weekly database backups
- Disaster recovery snapshots
- Monthly financial reports
- User data for churned customers
- Development/staging environment backups
Archive Instant/Cold (quarterly access):
- Quarterly compliance reports
- Closed project files
- Historical customer data (1-3 years old)
- Audit logs for investigation
Deep Archive/Archive (rarely/never accessed):
- 7-year regulatory compliance archives (HIPAA, SOX)
- Legal hold data
- Historical backups (3+ years old)
- Cancelled project archives
- End-of-life product documentation
Intelligent-Tiering/Smart tier (unpredictable):
- Data lakes with mixed access patterns
- User-generated content (some viral, most dormant)
- Machine learning training datasets
- Media libraries with trending content
- Multi-tenant SaaS customer data
I store production database backups in Standard-IA (accessed monthly for testing), compliance logs in Deep Archive (accessed never unless audit), and user uploads in Intelligent-Tiering (access varies by user). Mixed approach saves 70% vs all-Standard.
FAQ
How much can I save with storage tiering?
Typical savings range from 60-95% depending on access patterns. Data accessed monthly saves 40-50% in Infrequent Access tiers. Data accessed yearly saves 80-90% in Archive tiers. Data never accessed saves 96% in Deep Archive. Lifecycle policies transitioning 100TB from Standard to mixed tiers save $1,500-2,000 per month. S3 Intelligent-Tiering auto-saves 40-68% for unpredictable access patterns without manual configuration.
What are minimum storage durations?
AWS S3 Standard-IA: 30 days. S3 Glacier Instant/Flexible: 90 days. S3 Deep Archive: 180 days. Azure Cool: 30 days. Azure Cold: 90 days. Azure Archive: 180 days. GCP Nearline: 30 days. GCP Coldline: 90 days. GCP Archive: 365 days. Delete objects before minimum duration and you’re charged for full minimum (deleted after 10 days from 90-day tier = charged 90 days).
Should I use Intelligent-Tiering or manual lifecycle policies?
Use Intelligent-Tiering for unpredictable access patterns (data lakes, user content) where access varies by object. Use manual lifecycle policies for predictable patterns (logs always deleted after 90 days, backups always accessed monthly). Intelligent-Tiering costs $0.0025 per 1,000 objects but eliminates retrieval fees. Manual policies save monitoring fees but require defining transition rules. For <10M objects, Intelligent-Tiering wins. For >100M objects, manual policies win.
How long does archive retrieval take?
AWS S3 Glacier Flexible Retrieval: Expedited 1-5 minutes ($0.03/GB), Standard 3-5 hours ($0.01/GB), Bulk 5-12 hours ($0.0025/GB). S3 Deep Archive: Standard 12 hours ($0.02/GB), Bulk 48 hours ($0.0025/GB). Azure Archive: Standard 15 hours ($0.02/GB rehydration), High priority 1 hour (higher cost). GCP Archive: Instant despite name (charged $0.05/GB). Plan archive retrievals 12-48 hours in advance for AWS/Azure.
What happens if I delete before minimum storage duration?
You’re charged for the full minimum duration even if deleted early. Example: Store 1TB in S3 Standard-IA (30-day minimum) and delete after 10 days = charged $12.50 (30 days × $0.0125/GB) not $4.17 (10 days). Same applies to all tiers with minimum durations. Check minimum duration requirements before using infrequent/archive tiers for short-lived data. Use Standard tier for data deleted within 30 days.
Sources
- Object Storage Classes – Amazon S3 | AWS — Official AWS S3 storage class documentation
- S3 Intelligent Tiering: Cut Your AWS Storage Costs by 50% (2026 Guide) | CloudFix — Intelligent-Tiering guide with cost analysis
- The Ultimate Guide to AWS S3 Pricing 2026 | CloudChipr — Comprehensive S3 pricing breakdown
- Access tiers for blob data – Azure Storage | Microsoft Learn — Official Azure Blob Storage tier documentation
- Azure Blob Storage Tiers Explained: Hot, Cool, Cold, Archive, and Premium | Techy Chalkboard — Azure tier comparison with 2026 updates
- How to Optimize Azure Blob Storage Costs with Lifecycle Management | OneUpTime — Azure lifecycle policy tutorial
- S3 Lifecycle Policies: Optimizing Cloud Storage in AWS | CloudOptimo — S3 lifecycle best practices
- How to Reduce S3 Storage Costs with Lifecycle Policies | OneUpTime — Step-by-step S3 lifecycle setup
