Skip to main content

Storage decision tree

Which AWS Storage Service Should I Use?

Pick S3, EFS, FSx, EBS, or hybrid gateway options by access pattern, latency, and shared-filesystem needs — in 4 questions.

Last updated: August 5, 2026Author: FactualMinds AWS ArchitectsReviewed by: AWS Solutions Architect — Professional certified

Step 1/Choose to begin

How will applications access the data?

Object APIs, shared POSIX filesystems, and block volumes are different products — not interchangeable “storage.”

How to use this tree

Start from the access API your application already speaks (object, POSIX, block, or hybrid). Most “storage debates” are really API mismatches. If two answers feel close — especially S3 Intelligent-Tiering vs lifecycle rules — model 30 days of access logs before you lock a class.

All possible recommendations in this tree

Reference list of every endpoint in this decision tree — useful when you want to skim before answering questions, or when JavaScript is disabled.

Amazon S3 Standard (+ CloudFront for public assets)

Default object store for hot data. Pair with CloudFront for public media and static sites; keep origins private with OAC.

Amazon S3 Intelligent-Tiering

Automatic tiering when access patterns are unknown or change over time. Prefer over guessing Glacier vs Standard for mixed corpora.

S3 Glacier Instant / Flexible / Deep Archive

Archive classes for compliance and backup retention. Match retrieval SLA to the class before legal holds surprise you.

Amazon S3 Tables (Iceberg) + analytics lake

Managed Iceberg tables on S3 for lakehouse analytics. Pair with Athena, Redshift, or Spark when tabular query is the product.

Amazon EFS (General Purpose)

Elastic NFS for Linux workloads that need a shared filesystem without capacity planning. Default shared-file path on AWS.

Amazon EFS (Max I/O)

Higher aggregate throughput for highly parallel access at the cost of slightly higher per-op latency. Use when client count is the bottleneck.

Amazon FSx for Windows File Server

Managed Windows file shares with SMB and Active Directory integration. The AWS-native path for lift-and-shift Windows file servers.

Amazon FSx for Lustre

High-performance parallel filesystem for ML training and HPC. Often linked to S3 for durable datasets.

Amazon FSx for NetApp ONTAP or OpenZFS

Choose ONTAP when you need NetApp feature parity; OpenZFS when you want snapshots/clones with ZFS semantics on AWS.

Amazon EBS (gp3 / io2 as needed)

Block storage for a single EC2 instance. Default for boot volumes and databases that need consistent low-latency disks.

AWS Storage Gateway — File Gateway

On-prem NFS/SMB cache in front of S3. Good for gradual cloud migration of file shares without rewriting apps on day one.

AWS Storage Gateway — Volume Gateway

iSCSI volumes with cloud backup/caching for on-prem block workloads moving toward AWS.

AWS Storage Gateway — Tape Gateway

Virtual tape library for backup software that still speaks tape. Common compliance bridge off physical tape.

Frequently Asked Questions

Is S3 always cheaper than EFS?

For pure object data, yes — S3 storage and request pricing usually beat EFS. The moment you need POSIX shared mounts, EFS or FSx is the correct product; forcing S3 into a filesystem shim usually costs more in engineering than it saves in storage.

When should I pick FSx for Lustre over EFS?

When ML/HPC jobs need parallel filesystem throughput that EFS cannot sustain. Link Lustre to S3 for durable datasets and treat Lustre as scratch/hot working set.

gp3 or io2 for EBS?

Start with gp3 and provision IOPS/throughput explicitly. Move to io2 when you need higher durability or provisioned IOPS beyond gp3’s practical range for latency-critical databases.

Want a deeper review than the tree?

Send us your workload requirements and we'll write back with a one-page architecture recommendation — usually within two business days.