Reading35 min read·Module 3High exam weight

Amazon S3 Storage Classes & Performance

Key concepts

  • S3 Standard, IA, One Zone-IA

  • S3 Glacier classes

  • S3 Intelligent-Tiering

  • Performance optimization (prefixes)

  • Request rate limits

Overview

Amazon Simple Storage Service (S3) is AWS's flagship object storage service, offering industry-leading scalability, data availability, security, and performance. Understanding S3 storage classes is critical for the SAA-C03 exam, as it directly impacts both cost optimization (Domain 4) and high-performance architecture design (Domain 3).

S3 provides multiple storage classes designed for different use cases, ranging from frequently accessed data requiring millisecond latency to long-term archives accessed once or twice a year. Choosing the right storage class can reduce costs by up to 95% while maintaining the durability and availability your application requires.

Key Principle

All S3 storage classes offer 11 nines (99.999999999%) durability. The differences lie in availability, retrieval times, and cost. Your storage class choice should be based on access patterns, not durability concerns.

Exam Tip

S3 storage class questions appear frequently. Know the retrieval times, minimum storage durations, and when to use each class. Expect 4-6 questions specifically on S3 storage optimization.


Architecture Diagram

The following diagram illustrates the S3 storage classes and their relationship to access patterns:

S3 Storage Classes Overview
Figure 1: S3 Storage Classes - From frequent access (S3 Standard) to archive storage (Glacier Deep Archive)

Key Concepts

S3 Standard

S3 Standard

S3 Standard is the default storage class, optimized for frequently accessed data requiring low latency and high throughput.

Characteristics:

  • Availability: 99.99% (designed for)
  • Durability: 99.999999999% (11 nines)
  • Retrieval Time: Milliseconds
  • Minimum Storage Duration: None
  • Retrieval Fee: None

Best For:

  • Dynamic websites and content distribution
  • Mobile and gaming applications
  • Big data analytics
  • Any workload with frequent, unpredictable access patterns

S3 Intelligent-Tiering

S3 Intelligent-Tiering

S3 Intelligent-Tiering automatically moves data between access tiers based on changing access patterns, optimizing costs without performance impact or operational overhead.

Access Tiers:

  1. Frequent Access - Data accessed regularly (default)
  2. Infrequent Access - Data not accessed for 30 days
  3. Archive Instant Access - Data not accessed for 90 days (optional)
  4. Archive Access - Data not accessed for 90-730 days (optional)
  5. Deep Archive Access - Data not accessed for 180-730 days (optional)

Key Benefits:

  • No retrieval fees when data moves between tiers
  • No minimum storage duration
  • Automatic cost optimization (typically 20-40% savings)
  • Small monthly monitoring fee per object

Best For:

  • Workloads with unknown or changing access patterns
  • Data lakes with mixed access frequencies
  • Long-lived data where access patterns are unpredictable

S3 Standard-IA (Infrequent Access)

S3 Standard-IA

S3 Standard-IA is designed for data accessed less frequently but requiring rapid access when needed.

Characteristics:

  • Availability: 99.9%
  • Retrieval Time: Milliseconds
  • Minimum Storage Duration: 30 days
  • Minimum Object Size: 128 KB (billed)
  • Retrieval Fee: Per-GB charge

Best For:

  • Backups and disaster recovery
  • Long-term storage for infrequently accessed files
  • Data requiring immediate access but accessed less than once a month

S3 One Zone-IA

S3 One Zone-IA

S3 One Zone-IA stores data in a single Availability Zone, offering 20% lower cost than Standard-IA.

Characteristics:

  • Availability: 99.5%
  • Durability: 99.999999999% (within single AZ)
  • Risk: Data lost if AZ is destroyed
  • Minimum Storage Duration: 30 days

Best For:

  • Secondary backup copies
  • Easily reproducible data
  • Data that can tolerate lower availability
  • Cost-sensitive infrequent access workloads

S3 Glacier Storage Classes

S3 Glacier Family

The Glacier family provides low-cost archive storage for long-term retention.

Three Glacier Options:

| Class | Retrieval Time | Min Duration | Use Case | |-------|---------------|--------------|----------| | Glacier Instant Retrieval | Milliseconds | 90 days | Archives needing immediate access | | Glacier Flexible Retrieval | 1-5 min to 5-12 hours | 90 days | Flexible archive access | | Glacier Deep Archive | 12-48 hours | 180 days | Long-term compliance archives |

Glacier Flexible Retrieval Options:

  • Expedited: 1-5 minutes (highest cost)
  • Standard: 3-5 hours
  • Bulk: 5-12 hours (lowest cost, free tier available)

S3 Storage Classes Comparison

Storage ClassAvailabilityMin DurationRetrieval TimeUse Case
S3 Standard99.99%NoneMillisecondsFrequent access, dynamic content
S3 Intelligent-Tiering99.9%NoneMilliseconds*Unknown/changing patterns
S3 Standard-IA99.9%30 daysMillisecondsInfrequent but immediate access
S3 One Zone-IA99.5%30 daysMillisecondsReproducible infrequent data
Glacier Instant Retrieval99.9%90 daysMillisecondsArchive with instant access
Glacier Flexible Retrieval99.99%90 days1 min - 12 hoursFlexible archive retrieval
Glacier Deep Archive99.99%180 days12-48 hoursLong-term compliance

How It Works

Storage Class Selection Flow

Use this decision flow to select the appropriate storage class:

S3 Storage Class Selection Flowchart
Figure 2: Decision flowchart for selecting the optimal S3 storage class based on access patterns and requirements

Pricing Structure

S3 Pricing Components (US East - N. Virginia)

Storage ClassStorage ($/GB/month)Retrieval ($/GB)Request Pricing
S3 Standard$0.023None$0.0004/1000 GET
S3 Standard-IA$0.0125$0.01$0.001/1000 GET
S3 One Zone-IA$0.01$0.01$0.001/1000 GET
Glacier Instant Retrieval$0.004$0.03$0.01/1000 GET
Glacier Flexible Retrieval$0.0036$0.01-0.03$0.03/1000 GET
Glacier Deep Archive$0.00099$0.02$0.025/1000 GET
Cost Savings Example

Storing 1 TB in US East-1:

  • S3 Standard: ~$23/month
  • Glacier Deep Archive: ~$1/month

That's a 95% cost reduction for archive data!

S3 Performance Optimization

Amazon S3 automatically scales to handle high request rates:

S3 Performance Optimization
Figure 3: S3 performance features including request rate scaling, multipart upload, and transfer acceleration

Request Rate Performance

S3 Request Rate Limits

S3 automatically scales to support high request rates:

  • 3,500 PUT/COPY/POST/DELETE requests per second per prefix
  • 5,500 GET/HEAD requests per second per prefix
  • No limit on the number of prefixes in a bucket

Scaling Strategy: Distribute objects across multiple prefixes to multiply your request rate capacity. For example, 10 prefixes = 55,000 GET requests/second.

TEXTPrefix Distribution for Performance
# Poor design - single prefix bottleneck
s3://mybucket/images/image1.jpg
s3://mybucket/images/image2.jpg

# Better design - date-based prefixes
s3://mybucket/2024/01/15/image1.jpg
s3://mybucket/2024/01/16/image2.jpg

# Best design - hash-based prefixes for random distribution
s3://mybucket/a1b2c3/image1.jpg
s3://mybucket/d4e5f6/image2.jpg

Multipart Upload

Multipart Upload

Multipart upload enables parallel uploads of large objects in parts, improving throughput and reliability.

Key Facts:

  • Recommended: For objects > 100 MB
  • Required: For objects > 5 GB (max single PUT is 5 GB)
  • Maximum object size: 5 TB
  • Part size: 5 MB to 5 GB
  • Maximum parts: 10,000

Benefits:

  • Parallel uploads for faster throughput
  • Resume interrupted uploads
  • Begin upload before knowing final size
SHAWS CLI Multipart Configuration
# Configure AWS CLI for optimal multipart uploads
aws configure set default.s3.max_concurrent_requests 20
aws configure set default.s3.multipart_threshold 64MB
aws configure set default.s3.multipart_chunksize 16MB

# Upload large file with multipart
aws s3 cp large-file.zip s3://mybucket/large-file.zip

S3 Transfer Acceleration

S3 Transfer Acceleration

Transfer Acceleration uses CloudFront edge locations to speed up long-distance transfers.

How It Works:

  1. Data uploads to nearest CloudFront edge location
  2. AWS backbone network routes data to S3 bucket
  3. Optimized network path reduces latency

Performance Gains:

  • 50-500% faster for long-distance transfers
  • Most effective for uploads > 1 GB over long distances
  • Additional cost: $0.04-0.08/GB transferred

When to Use:

  • Global users uploading to centralized bucket
  • Regular transfers across continents
  • Large file transfers where speed matters

Use Cases

Use Case 1: Media Company Content Library

Scenario: A media company stores video content that is popular when first released, then accessed infrequently.

Solution:

  1. Upload new content to S3 Standard
  2. Use Lifecycle Policy to transition to S3 Standard-IA after 30 days
  3. Move to Glacier Instant Retrieval after 90 days
  4. Archive to Glacier Deep Archive after 1 year
JSONLifecycle Policy Configuration
{
  "Rules": [
    {
      "ID": "MediaContentLifecycle",
      "Status": "Enabled",
      "Filter": { "Prefix": "videos/" },
      "Transitions": [
        { "Days": 30, "StorageClass": "STANDARD_IA" },
        { "Days": 90, "StorageClass": "GLACIER_IR" },
        { "Days": 365, "StorageClass": "DEEP_ARCHIVE" }
      ]
    }
  ]
}

Use Case 2: Data Lake with Unknown Access Patterns

Scenario: Analytics team stores data that may or may not be accessed, with unpredictable patterns.

Solution:

  • Use S3 Intelligent-Tiering to automatically optimize costs
  • Enable Archive Access tiers for data older than 90 days
  • No operational overhead required

Use Case 3: Global Application with User Uploads

Scenario: Mobile app users worldwide upload profile images and documents.

Solution:

  1. Enable S3 Transfer Acceleration on the bucket
  2. Configure Multipart Upload for files > 100 MB
  3. Use S3 Standard for active user content
  4. Lifecycle to S3 One Zone-IA for inactive accounts (30+ days)

Best Practices

S3 Storage Class Best Practices
  1. Analyze Access Patterns First - Use S3 Storage Class Analysis to understand your data access patterns before choosing storage classes
  2. Use Intelligent-Tiering for Unknown Patterns - When access patterns are unpredictable, let S3 optimize automatically
  3. Implement Lifecycle Policies - Automate transitions between storage classes based on object age
  4. Consider Retrieval Costs - Factor in retrieval fees when estimating total cost for IA and Glacier classes
  5. Use Multipart Upload for Large Objects - Always use multipart for objects > 100 MB
  6. Enable Transfer Acceleration for Global Access - Worth the cost for geographically distributed users
  7. Distribute Prefixes for High Request Rates - Avoid single-prefix bottlenecks

Common Exam Scenarios

Exam Scenarios and Solutions

ScenarioSolutionWhy
Company needs lowest cost for compliance archives accessed once per yearS3 Glacier Deep ArchiveLowest cost ($0.00099/GB), 12-hour retrieval acceptable for rare access
Data lake with unpredictable access patternsS3 Intelligent-TieringAutomatic optimization without operational overhead
Backup data needing immediate access when restoredS3 Standard-IA or Glacier Instant RetrievalMillisecond retrieval with lower storage cost
Secondary backup copies that can be recreatedS3 One Zone-IA20% cheaper than Standard-IA, acceptable risk for reproducible data
Global users uploading large filesS3 Transfer Acceleration + Multipart UploadReduces latency via edge locations, improves throughput
High-traffic image hosting websiteS3 Standard with prefix distribution5,500 GET/s per prefix, distribute across prefixes for scale

Common Pitfalls

Pitfall 1: Ignoring Minimum Storage Duration

Mistake: Transitioning objects to Glacier then deleting them before the minimum storage duration.

Why it's costly:

  • Glacier Flexible Retrieval: 90-day minimum
  • Glacier Deep Archive: 180-day minimum
  • Early deletion incurs charges for remaining days

Correct Approach:

  • Calculate total cost including minimum duration charges
  • Only use Glacier for truly long-term data
  • Consider Intelligent-Tiering for uncertain retention periods
Pitfall 2: Using Standard-IA for Frequently Accessed Data

Mistake: Moving data to Standard-IA when it's still accessed multiple times per month.

Why it's costly:

  • Per-GB retrieval fees add up quickly
  • Higher per-request costs
  • May exceed S3 Standard costs

Correct Approach:

  • Use S3 Storage Class Analysis to identify true access patterns
  • Only transition data accessed < once per month
  • Consider Intelligent-Tiering for borderline cases
Pitfall 3: Single Prefix Bottleneck

Mistake: Storing all objects under a single prefix for high-throughput workloads.

Why it fails:

  • Limited to 3,500 PUT or 5,500 GET per second per prefix
  • Creates performance bottleneck at scale

Correct Approach:

  • Distribute objects across multiple prefixes
  • Use hash-based or date-based prefixing strategies
  • Scale linearly with number of prefixes

Test Your Knowledge

Q

A company stores 10 TB of log files that are accessed daily for the first week, then rarely accessed for compliance retention of 7 years. Which storage strategy is MOST cost-effective?

AStore in S3 Standard permanently
BStore in S3 Intelligent-Tiering
CStore in S3 Standard, lifecycle to Glacier Deep Archive after 30 days
DStore directly in Glacier Deep Archive
Q

An application requires storing 500 GB of data with unpredictable access patterns. Some data is accessed frequently while other data is rarely touched. Which S3 storage class is BEST suited?

AS3 Standard
BS3 Standard-IA
CS3 Intelligent-Tiering
DS3 Glacier Instant Retrieval
Q

What is the maximum request rate per prefix for S3 GET requests?

A1,000 requests/second
B3,500 requests/second
C5,500 requests/second
D10,000 requests/second
Q

A company needs to upload 50 GB files from users in Asia to an S3 bucket in us-east-1. Which features should be enabled to MAXIMIZE upload performance?

AS3 Standard storage class only
BS3 Transfer Acceleration only
CMultipart Upload only
DS3 Transfer Acceleration AND Multipart Upload


Quick Reference

S3 Limits

S3 Service Limits

ResourceLimit
Maximum object size5 TB
Maximum single PUT upload5 GB
Multipart upload part size5 MB - 5 GB
Maximum parts per multipart upload10,000
GET requests per prefix/second5,500
PUT requests per prefix/second3,500
Buckets per account100 (soft limit)
Objects per bucketUnlimited

Storage Class Quick Comparison

At-a-Glance Storage Class Selection

Access PatternRecommended Class
Frequent access, low latencyS3 Standard
Unknown or changing patternsS3 Intelligent-Tiering
Accessed < once/month, immediate retrievalS3 Standard-IA
Reproducible data, < once/monthS3 One Zone-IA
Archive, instant retrieval neededGlacier Instant Retrieval
Archive, flexible retrieval OKGlacier Flexible Retrieval
Long-term compliance, rare accessGlacier Deep Archive

Further Reading

Related services

S3