---
title: Which AWS Storage Service Should I Use?
description: S3, EFS, FSx, EBS, or Storage Gateway? Answer 4 questions and get an opinionated storage recommendation with the comparison guide that goes deeper.
url: https://www.factualminds.com/decide/which-aws-storage/
category: storage
publishDate: 2026-08-05
updateDate: 2026-08-05
---

# 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.

## 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.

## Start Here

access-pattern

## Decision Questions

### access-pattern: How will applications access the data?

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

- "Object storage via HTTP/S3 API (data lake, backups, static assets, ML datasets)" → s3-access-freq
- "Shared filesystem (many instances/containers mounting the same files)" → fs-posix
- "Block volume attached to a single EC2 instance (boot, databases, low-latency disks)" → rec-ebs
- "On-prem apps that need cloud backup or hybrid file access" → hybrid-shape

### s3-access-freq: What is the access frequency and retention shape?

_S3 storage classes and Intelligent-Tiering exist so you do not pay Standard rates for cold data._

- "Hot / frequently accessed; need low latency and high request rate" → rec-s3-standard
- "Unknown or changing access patterns — want automatic tiering" → rec-s3-intelligent
- "Infrequent access or archive with retrieval windows (hours–days)" → rec-s3-archive
- "Need query-in-place analytics on tabular data in the lake" → rec-s3-tables

### fs-posix: What filesystem semantics and throughput do you need?

_EFS is the general shared NFS path. FSx variants win for Windows, Lustre/HPC, NetApp, and OpenZFS._

- "Linux NFS shared across many clients; elastic capacity" → efs-performance
- "Windows SMB / Active Directory integrated file shares" → rec-fsx-windows
- "HPC / ML training needing Lustre-class parallel filesystem" → rec-fsx-lustre
- "NetApp ONTAP features or OpenZFS snapshots/clones" → rec-fsx-netapp-zfs

### efs-performance: Is the workload latency-sensitive or throughput-heavy?

_EFS has General Purpose and Max I/O modes, plus Elastic Throughput. Wrong mode shows up as p99 latency or throttling._

- "General shared app files, home dirs, CMS — latency-sensitive" → rec-efs-gp
- "Thousands of concurrent clients; max aggregate throughput" → rec-efs-maxio

### hybrid-shape: What hybrid pattern do you need?

_Storage Gateway modes map to backup, file share caching, and tape replacement — pick the mode, not just “gateway.”_

- "File share cache in front of S3 for on-prem apps" → rec-sgw-file
- "Volume gateway / cached volumes for block backup" → rec-sgw-volume
- "Virtual tape library for backup apps" → rec-sgw-tape

## Recommendations

### rec-s3-standard: 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.
**When to use:**
- Hot datasets, websites, media origins, ML training inputs
- You need 11 nines durability and massive scale
**When NOT to use:**
- You need POSIX shared mounts — use EFS or FSx
- Single-instance low-latency disks — use EBS
**AWS services:**
- [AWS CloudFront Consulting](/services/aws-cloudfront-consultant/)
- [AWS Data Analytics](/services/aws-data-analytics/)

### rec-s3-intelligent: Amazon S3 Intelligent-Tiering

Automatic tiering when access patterns are unknown or change over time. Prefer over guessing Glacier vs Standard for mixed corpora.
**When to use:**
- Access frequency is unpredictable
- Large corpora where manual lifecycle rules would lag reality
**When NOT to use:**
- You already know cold archive windows — lifecycle to Glacier Instant/Flexible/Deep Archive may be cheaper

### rec-s3-archive: S3 Glacier Instant / Flexible / Deep Archive

Archive classes for compliance and backup retention. Match retrieval SLA to the class before legal holds surprise you.
**When to use:**
- Long retention with rare restores
- Compliance archives with defined retrieval windows
**When NOT to use:**
- Interactive analytics that need frequent reads — keep hot copies in Standard or Intelligent-Tiering

### rec-s3-tables: 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.
**When to use:**
- Analytics workloads on evolving tabular datasets
- You want Iceberg compaction and table maintenance without DIY
**When NOT to use:**
- Simple object blobs with no table semantics
**AWS services:**
- [AWS Data Analytics](/services/aws-data-analytics/)

### rec-efs-gp: Amazon EFS (General Purpose)

Elastic NFS for Linux workloads that need a shared filesystem without capacity planning. Default shared-file path on AWS.
**When to use:**
- CMS, home directories, shared app configs across Auto Scaling groups
- Containers that need a shared POSIX mount
**When NOT to use:**
- Windows SMB — use FSx for Windows
- HPC parallel IO — use FSx for Lustre
**AWS services:**
- [AWS Architecture Review](/services/aws-architecture-review/)

### rec-efs-maxio: 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.
**When to use:**
- Thousands of concurrent clients hammering the same filesystem
**When NOT to use:**
- Latency-sensitive single-threaded apps — stay on General Purpose

### rec-fsx-windows: 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.
**When to use:**
- Windows apps expecting SMB and AD ACLs
**When NOT to use:**
- Linux-only NFS — use EFS

### rec-fsx-lustre: Amazon FSx for Lustre

High-performance parallel filesystem for ML training and HPC. Often linked to S3 for durable datasets.
**When to use:**
- GPU training jobs that need Lustre-class throughput
- HPC simulation scratch space
**When NOT to use:**
- General shared app files — EFS is simpler and cheaper
**AWS services:**
- [AWS SageMaker Consulting](/services/aws-sagemaker/)

### rec-fsx-netapp-zfs: 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.
**When to use:**
- Existing NetApp operational model or ONTAP-specific features
- Dev/test clones and snapshot-heavy workflows (OpenZFS)
**When NOT to use:**
- Simple NFS without advanced features — EFS

### rec-ebs: 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.
**When to use:**
- EC2 boot volumes, databases, and single-node low-latency disks
- You can size IOPS/throughput on gp3 without jumping to io2
**When NOT to use:**
- Shared mounts across instances — EFS/FSx
- Durable shared object data — S3
**AWS services:**
- [AWS Architecture Review](/services/aws-architecture-review/)

### rec-sgw-file: 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.
**When to use:**
- On-prem apps must keep file protocols while data lands in S3
**When NOT to use:**
- Cloud-native apps — talk to S3 or EFS directly

### rec-sgw-volume: AWS Storage Gateway — Volume Gateway

iSCSI volumes with cloud backup/caching for on-prem block workloads moving toward AWS.
**When to use:**
- Block-level backup or cached volumes for on-prem servers
**When NOT to use:**
- Already on EC2 — use EBS snapshots and AMI pipelines

### rec-sgw-tape: AWS Storage Gateway — Tape Gateway

Virtual tape library for backup software that still speaks tape. Common compliance bridge off physical tape.
**When to use:**
- Existing backup apps with tape workflows
**When NOT to use:**
- Greenfield backup — prefer AWS Backup + S3/Glacier directly

## FAQ

### 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.

---

*Source: https://www.factualminds.com/decide/which-aws-storage/*
