S3 Storage Class Selection
Key concepts
Cost comparison across classes
Access patterns analysis
Minimum storage duration
Retrieval costs
Storage class decision tree
Overview
Amazon S3 offers multiple storage classes designed for different access patterns, durability requirements, and cost optimization strategies. Selecting the right storage class is critical for the SAA-C03 exam and real-world cost optimization.
Core Concept
S3 storage classes operate on a tiered architecture where each class serves different access patterns and cost requirements. The fundamental rule: less frequent access = lower storage costs but higher retrieval fees. Understanding this tradeoff is essential for exam success.
The exam frequently tests scenarios where you must balance storage costs against retrieval costs and access patterns. Always consider the TOTAL cost (storage + retrieval + minimum duration charges) when selecting a storage class.
Key Concepts
S3 Storage Classes Hierarchy

S3 Standard
Purpose: Frequently accessed data with immediate retrieval needs
Key Characteristics:
- 99.99% availability, 99.999999999% (11 9s) durability
- No retrieval fees, no minimum storage duration
- Highest storage cost among standard tiers
- Data replicated across minimum 3 Availability Zones
Best For: Active content, dynamic websites, mobile applications, gaming, big data analytics
S3 Intelligent-Tiering
Purpose: Data with unknown or changing access patterns
Key Characteristics:
- Automatically moves objects between access tiers based on usage
- No retrieval fees when data is moved between tiers
- Small monthly monitoring fee per object (~$0.0025 per 1,000 objects)
- Supports Archive Access and Deep Archive Access tiers
Access Tiers:
- Frequent Access (default)
- Infrequent Access (after 30 days of no access) - 40% lower cost
- Archive Instant Access (after 90 days) - 68% lower cost
- Archive Access (optional, 90-730 days)
- Deep Archive Access (optional, 180-730 days)
Best For: Unpredictable access patterns, data lakes, long-lived content with variable access
S3 Standard-IA
Purpose: Infrequently accessed data requiring rapid access when needed
Key Characteristics:
- 99.9% availability, 11 9s durability
- Lower storage cost than Standard (~40% less)
- Retrieval fee applies per GB retrieved
- Minimum storage duration: 30 days
- Minimum object size: 128 KB (charged for 128 KB even if smaller)
Best For: Disaster recovery, backups, older data that is still occasionally accessed
S3 One Zone-IA
Purpose: Infrequently accessed, re-creatable data in a single AZ
Key Characteristics:
- 99.5% availability (lower than Standard-IA)
- Data stored in only ONE Availability Zone
- ~20% cheaper than Standard-IA
- Minimum storage duration: 30 days
- Same 11 9s durability within the single AZ
Best For: Secondary backups, easily reproducible data, thumbnails
Glacier Storage Classes

S3 Glacier Instant Retrieval
Purpose: Archive data requiring millisecond retrieval
Key Characteristics:
- Same low latency as S3 Standard
- Up to 68% lower cost than S3 Standard-IA
- Minimum storage duration: 90 days
- Higher retrieval costs than Standard-IA
Best For: Medical images, news media assets, genomics data accessed quarterly
S3 Glacier Flexible Retrieval
Purpose: Archive data with flexible retrieval times
Retrieval Options: | Tier | Time | Cost | |------|------|------| | Expedited | 1-5 minutes | Highest | | Standard | 3-5 hours | Medium | | Bulk | 5-12 hours | Free/Lowest |
Key Characteristics:
- Minimum storage duration: 90 days
- Ideal for backup and disaster recovery
- Bulk retrievals are free
Best For: Backup data, disaster recovery, compliance archives
S3 Glacier Deep Archive
Purpose: Long-term archive with rare access (1-2 times per year)
Key Characteristics:
- Lowest storage cost in AWS (~$1/TB/month vs ~$23/TB for Standard)
- Minimum storage duration: 180 days
- Retrieval times: 12-48 hours
- Designed for 7-10+ year retention
Retrieval Options: | Tier | Time | |------|------| | Standard | 12 hours | | Bulk | 48 hours |
Best For: Regulatory compliance data, financial records, healthcare records, magnetic tape replacement
Storage Class Cost Comparison
S3 Storage Class Cost Comparison (US-East-1)
| Storage Class | Storage Cost/GB/Month | Retrieval Cost/GB | Min Duration | Availability |
|---|---|---|---|---|
| S3 Standard | $0.023 | None | None | 99.99% |
| S3 Intelligent-Tiering | $0.023 (FA) / $0.0125 (IA) | None | None | 99.9% |
| S3 Standard-IA | $0.0125 | $0.01 | 30 days | 99.9% |
| S3 One Zone-IA | $0.01 | $0.01 | 30 days | 99.5% |
| Glacier Instant | $0.004 | $0.03 | 90 days | 99.9% |
| Glacier Flexible | $0.0036 | $0.01-0.03 | 90 days | 99.99% |
| Glacier Deep Archive | $0.00099 | $0.02-0.052 | 180 days | 99.99% |
Storage Class Decision Tree

{
"Id": "ExampleStorageClassAnalysis",
"Filter": {
"Prefix": "documents/"
},
"StorageClassAnalysis": {
"DataExport": {
"OutputSchemaVersion": "V_1",
"Destination": {
"S3BucketDestination": {
"Format": "CSV",
"BucketAccountId": "123456789012",
"Bucket": "arn:aws:s3:::analytics-bucket",
"Prefix": "storage-class-analysis/"
}
}
}
}
}# List all objects and their storage classes in a bucket
aws s3api list-objects-v2 \
--bucket my-bucket \
--query 'Contents[].{Key: Key, StorageClass: StorageClass}'
# Get storage class of specific object
aws s3api head-object \
--bucket my-bucket \
--key my-object.txt \
--query 'StorageClass'
# Copy object to different storage class
aws s3 cp s3://my-bucket/myfile.txt s3://my-bucket/myfile.txt \
--storage-class STANDARD_IABest Practices
- Analyze Access Patterns First: Use S3 Storage Class Analysis for 30+ days before making transition decisions
- Use Intelligent-Tiering for Unknown Patterns: When access patterns are unpredictable, let AWS optimize automatically
- Consider Total Cost of Ownership: Include storage, retrieval, minimum duration, and request costs
- Implement Lifecycle Policies: Automate transitions based on object age
- Use One Zone-IA for Re-creatable Data Only: Never store critical, non-reproducible data in a single AZ
- Plan for Minimum Storage Durations: Avoid early deletion charges by understanding minimum periods
- Right-size Objects for IA Classes: Objects smaller than 128 KB are charged as 128 KB in IA classes
Common Exam Scenarios
Exam Scenario Decision Guide
| Scenario | Recommended Storage Class | Key Reasoning |
|---|---|---|
| Frequently accessed data, unpredictable traffic | S3 Standard | No retrieval fees, no minimum duration |
| Data accessed 1-2 times per month | S3 Standard-IA | Lower storage cost, acceptable retrieval fees |
| Backup copies that can be recreated | S3 One Zone-IA | Lowest cost for infrequent, re-creatable data |
| Unknown or changing access patterns | S3 Intelligent-Tiering | Automatic optimization without retrieval fees |
| Archive accessed quarterly with immediate needs | Glacier Instant Retrieval | Millisecond retrieval, lowest archive storage cost |
| Disaster recovery data, occasional restore tests | Glacier Flexible Retrieval | Low cost, flexible retrieval options |
| Compliance data retained 7+ years, rarely accessed | Glacier Deep Archive | Lowest cost, acceptable 12-48 hour retrieval |
| Thumbnails generated from source images | S3 One Zone-IA | Re-creatable, infrequent access |
Common Pitfalls
Early Deletion Charges
Deleting or overwriting objects before the minimum storage duration (30/90/180 days depending on class) incurs pro-rated charges for the remaining time. Plan data lifecycle carefully to avoid unexpected costs.
Retrieval Cost Surprise
Frequently retrieving data from Glacier or IA classes can cost more than storing it in S3 Standard. Calculate expected retrieval frequency before choosing cheaper storage classes.
Minimum Object Size Charges
Objects smaller than 128 KB stored in S3 Standard-IA, One Zone-IA, or Glacier Instant Retrieval are billed as 128 KB. For many small files, S3 Standard or Intelligent-Tiering may be more cost-effective.
One Zone-IA Data Loss Risk
S3 One Zone-IA stores data in only one Availability Zone. If that AZ experiences a disaster, data is permanently lost. Never use for critical, irreplaceable data.
Ignoring Request Costs
High-frequency operations (LIST, GET, PUT) on large numbers of objects can generate significant request costs. This is especially important with Intelligent-Tiering which charges a monitoring fee per object.
Related Services
Quick Reference
Storage Class Limits and Characteristics
| Storage Class | Durability | Availability | Min Duration | Min Size | AZs |
|---|---|---|---|---|---|
| Standard | 99.999999999% | 99.99% | None | None | ≥3 |
| Intelligent-Tiering | 99.999999999% | 99.9% | None | None | ≥3 |
| Standard-IA | 99.999999999% | 99.9% | 30 days | 128 KB | ≥3 |
| One Zone-IA | 99.999999999% | 99.5% | 30 days | 128 KB | 1 |
| Glacier Instant | 99.999999999% | 99.9% | 90 days | 128 KB | ≥3 |
| Glacier Flexible | 99.999999999% | 99.99% | 90 days | N/A | ≥3 |
| Glacier Deep Archive | 99.999999999% | 99.99% | 180 days | N/A | ≥3 |
Key CLI Commands
# Enable Storage Class Analysis
aws s3api put-bucket-analytics-configuration \
--bucket my-bucket \
--id my-analysis-id \
--analytics-configuration file://config.json
# Change storage class
aws s3 cp s3://bucket/key s3://bucket/key --storage-class GLACIER
# Restore from Glacier
aws s3api restore-object \
--bucket my-bucket \
--key my-archive.zip \
--restore-request '{"Days":7,"GlacierJobParameters":{"Tier":"Standard"}}'
Pricing Quick Reference (US-East-1, approximate)
- S3 Standard: $0.023/GB/month
- S3 Standard-IA: $0.0125/GB/month + $0.01/GB retrieved
- One Zone-IA: $0.01/GB/month + $0.01/GB retrieved
- Glacier Instant: $0.004/GB/month + $0.03/GB retrieved
- Glacier Flexible: $0.0036/GB/month + variable retrieval
- Glacier Deep Archive: $0.00099/GB/month + variable retrieval
Test Your Knowledge
A company stores 10 TB of log files that are accessed frequently for the first 30 days, occasionally for the next 60 days, and rarely after that. They need to minimize costs while ensuring data is always available within minutes. Which solution is MOST cost-effective?
A media company needs to store 500 TB of video assets. 80% are accessed once after upload for processing, then never again. 20% are accessed unpredictably over several years. What combination of storage classes should they use?
An organization accidentally enabled lifecycle policies that transition objects to S3 Glacier Flexible Retrieval after 1 day. They need to restore 1 TB of data immediately for a critical business process. What is the fastest restoration method and approximate cost?
A startup wants to minimize S3 costs for their application data. They upload 100,000 small JSON files (averaging 10 KB each) daily that are accessed frequently for 7 days, then rarely. What storage strategy should they use?