AWS Storage
Decision Guide
Choose the right storage service in under 5 minutes. Block, file, object, or archive β know which one to pick for every workload and exam question.
AWS storage services sit on a spectrum from fastest + most expensive to cheapest + slowest access. Your job as an architect is to place each workload at the right point on this spectrum.
| Category | Services | How It Works | Best For |
|---|---|---|---|
| Block | EBS | Raw disk blocks. Attach to one EC2 instance. OS mounts as drive. | Databases, boot volumes, single-instance apps |
| File | EFS, FSx | Shared filesystem (NFS/SMB). Multiple instances mount simultaneously. | Shared content, containers, Windows shares, HPC |
| Object | S3 | Key-value store. Flat namespace. HTTP API access. | Data lakes, backups, static assets, logs |
| Archive | S3 Glacier | Cheapest storage. Minutes-to-hours retrieval. | Compliance archives, DR copies, old backups |
π One-line rules: "Single instance, high IOPS" β EBS. "Shared filesystem, Linux" β EFS. "Windows/HPC" β FSx. "Unlimited objects, HTTP" β S3. "Rarely accessed, cheap" β Glacier. "Lambda needs >512 MB storage" β EFS (only option).
S3 storage class progression: S3 Standard (frequent) β S3 Standard-IA (infrequent) β Glacier Instant (quarterly access, ms retrieval) β Glacier Flexible (yearly, minβhrs) β Deep Archive (7+ years, 12β48 hrs). Lifecycle rules automate transitions.
| Service | Type | Access | Latency | Capacity | Use Case |
|---|---|---|---|---|---|
| EBS | Block | Single EC2 | Sub-ms | 16 TB (gp3) / 64 TiB (io2 Block Express) | Databases, boot volumes |
| EFS | File (NFS) | Multi-instance | ~ms | Elastic | Shared content, containers, Lambda |
| FSx Windows | File (SMB) | Multi-instance | ~ms | Provisioned | Windows apps, Active Directory |
| FSx Lustre | File (POSIX) | Multi-instance | Sub-ms | Provisioned | HPC, ML training, rendering |
| FSx ONTAP | File (NFS+SMB+iSCSI) | Multi-protocol | ~ms | Provisioned | Enterprise NAS, VMware, hybrid |
| S3 | Object | HTTP API | ~50-100 ms | Unlimited | Data lake, backups, static assets |
| S3 Glacier | Archive | Restore request | Min β Hours | Unlimited | Compliance, DR, old backups |
| If the Question Says⦠| Answer | Why |
|---|---|---|
| "Multiple EC2 instances need to access the same files" | EFS | Shared NFS, multi-AZ. EBS = single-attach. |
| "Single instance, high IOPS, database workload" | EBS (io2) | Block storage, sub-ms latency, up to 256K IOPS. |
| "Windows file shares with Active Directory" | FSx for Windows | SMB + AD. EFS = Linux-only NFS. |
| "Cheapest storage, 12-hour retrieval acceptable" | S3 Glacier Deep Archive | $0.00099/GB. Cheapest in AWS. |
| "HPC workload, 200 instances, need 100s GB/s" | FSx for Lustre | Fastest file system. Sub-ms, massive throughput. |
| "Unlimited storage, HTTP API access" | S3 | Object store, no capacity limits, REST API. |
| "Lambda needs to read/write large files" | EFS | Only shared filesystem that Lambda can mount. |
| "Shared storage for ECS/Fargate containers" | EFS | Persistent volume for containers. Survives restarts. |
"Shared" = EFS (not EBS). "Windows" = FSx (not EFS). "Archive" = Glacier (not S3 Standard). "Elastic capacity" = EFS or S3 (not EBS β EBS is fixed size). "Encrypt existing unencrypted EFS" = impossible (create new + migrate).