Choosing the right storage service is a frequent exam topic and a real architectural decision. AWS provides different storage types for different access patterns, durability requirements, and cost targets.
Amazon S3 — Simple Storage Service
S3 is object storage: you store any file (an "object") in a named container (a "bucket"). Objects are identified by a key (the file path/name). S3 is:
- 11 nines durable (99.999999999%) — objects are stored across at least 3 AZs
- Scalable to virtually unlimited capacity
- Accessible via HTTPS from anywhere
- Billed per GB stored, plus per-request costs
S3 Use Cases
- Static website hosting (HTML, CSS, JS, images)
- Backup and disaster recovery
- Data lake for analytics (Athena, EMR, Redshift Spectrum)
- Application file storage (user uploads, exports)
- CloudFront origin for CDN content delivery
S3 Storage Classes
| Class | Use Case | Retrieval |
|---|---|---|
| S3 Standard | Frequently accessed data | Milliseconds |
| S3 Intelligent-Tiering | Unknown/changing access patterns | Milliseconds |
| S3 Standard-IA | Infrequently accessed, kept long-term | Milliseconds |
| S3 One Zone-IA | Infrequent access, single AZ (lower cost) | Milliseconds |
| S3 Glacier Instant Retrieval | Archive, accessed quarterly | Milliseconds |
| S3 Glacier Flexible Retrieval | Archive, accessed rarely | Minutes to hours |
| S3 Glacier Deep Archive | Long-term archive (7–10 years) | Up to 12 hours |
Key S3 Features
- Bucket policies and ACLs — control who can read/write objects
- Versioning — keep every version of an object; easy rollback
- Lifecycle policies — automatically transition objects between storage classes or delete them after N days
- Server-side encryption (SSE-S3, SSE-KMS, SSE-C)
- S3 Transfer Acceleration — upload via CloudFront edge locations for faster transfers
- Presigned URLs — grant temporary access to private objects
Amazon EBS — Elastic Block Store
EBS provides block storage volumes that attach to a single EC2 instance, like a physical hard drive. EC2 instances boot from EBS root volumes.
- gp3 (General Purpose SSD): Default for most workloads. Up to 16,000 IOPS.
- io2 / io2 Block Express: High-performance SSD for I/O-intensive databases. Up to 256,000 IOPS.
- st1 (Throughput Optimised HDD): Sequential reads/writes; big data, log processing.
- sc1 (Cold HDD): Cheapest option; infrequently accessed data.
EBS volumes are AZ-specific — to move a volume, you create a snapshot (stored in S3) and restore it in another AZ. EBS Snapshots are incremental and can be automated with Data Lifecycle Manager.
Amazon EFS — Elastic File System
EFS provides a managed NFS (Network File System) that can be mounted on multiple EC2 instances simultaneously. It's ideal for shared content that multiple servers need to access at the same time — like web server content, CI/CD artifacts, or shared application config.
- Automatically scales to petabytes
- Supports two performance modes: General Purpose and Max I/O
- Storage classes: EFS Standard, EFS Infrequent Access
- Regional — spans all AZs in a region
Amazon FSx
Managed high-performance file systems:
- FSx for Windows File Server: SMB protocol; integrates with Active Directory
- FSx for Lustre: High-performance for HPC, ML, and big data workloads
Storage Gateway
Connects on-premises storage to AWS. Useful for hybrid cloud architectures where some data stays on-premises and some is in S3 or S3 Glacier.
Choosing the Right Storage
| Need | Service |
|---|---|
| Store website assets / backups | S3 |
| Root volume for EC2 instance | EBS |
| Shared filesystem for multiple EC2s | EFS |
| Long-term data archival | S3 Glacier |
| Windows file share | FSx for Windows |
The next lesson covers AWS database services — relational, NoSQL, in-memory, and beyond.