Why start with a map
When someone asks "where should this data live?", most engineers go straight to the service they already know. That habit causes a lot of storage mistakes. Before you can compare services, you need to know every option, what it is called today, what it used to be called, and whether AWS will still let a new account use it.
Think of this level as the legend on a city map. You won't look at the streets yet. You'll learn the districts and spot the buildings that are closed. We'll use seven groups, sorted by how your application talks to the data.
The one-page map
| Group | Services and options | Watch out for |
|---|---|---|
| Object | Amazon S3 classes: Standard, Intelligent-Tiering, Standard-IA, One Zone-IA, Express One Zone. S3 Tables (Apache Iceberg tables in table buckets). S3 Vectors (vector buckets) | S3 Select is closed to new customers. Reduced Redundancy Storage still exists, but AWS says not to use it |
| Block | EBS SSD: gp3, gp2, io2 Block Express, io1. EBS HDD: st1, sc1. EC2 instance store | Instance store is ephemeral. It lives and dies with the instance |
| File | Amazon EFS (NFS), FSx for Windows File Server (SMB), FSx for NetApp ONTAP (NFS, SMB, iSCSI), FSx for OpenZFS (NFS) | ONTAP and OpenZFS can be very fast too. Lustre gets its own group because it is built for parallel HPC and ML work |
| High-performance file | FSx for Lustre | |
| Archive | S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval, S3 Glacier Deep Archive | The separate vault-based Amazon Glacier service is closed to new customers |
| Data transfer | Storage Gateway (S3 File Gateway, Volume Gateway, Tape Gateway), DataSync, Transfer Family, Snowball Edge | FSx File Gateway and Snowball Edge are closed to new customers |
| Backup | AWS Backup |
A quick way to sort a service: ask what does the client actually send? HTTP GET/PUT on keys means object. Reads and writes to a raw disk that one OS formats means block. Paths over NFS or SMB that many clients share means file.
Old names vs. current names
Old names hang around in blog posts, Terraform modules and exam dumps. These are the ones that trip people up:
- Amazon Glacier (vaults) vs. S3 Glacier storage classes. The original Glacier is a separate service with its own API: vaults, archives and jobs. The S3 Glacier storage classes are just S3 objects in an S3 bucket. The S3 docs say so directly: objects in S3 Glacier classes can't be reached through the separate Amazon Glacier service. The vault service stopped taking new customers on 15 December 2025. Existing data stays accessible.
- "S3 Glacier" storage class → S3 Glacier Flexible Retrieval (renamed 30 November 2021, when Glacier Instant Retrieval launched). The API value never changed, so
GLACIERin code means Flexible Retrieval. - gp2 → gp3. Both are general-purpose SSD and both are still sold. gp3 is the current generation. gp2 is the one you'll find on older volumes.
- io1 → io2 Block Express. Since 30 April 2025, every io2 volume, new or old, is io2 Block Express. io1 is still listed, but it is the older Provisioned IOPS type.
- Snowball Edge variants. Storage Optimized and Compute Optimized were the main models. Today no Snow device can be ordered by a new customer.
Here is what the API names look like when you list a bucket:
# Count objects in a bucket by storage class (StorageClass is the API name)
aws s3api list-objects-v2 --bucket my-archive-bucket \
--query 'Contents[].StorageClass' --output text | tr '\t' '\n' | sort | uniq -c
# Example output:
# 1840 DEEP_ARCHIVE
# 312 GLACIER <- this is Glacier FLEXIBLE RETRIEVAL, not the vault service
# 95 GLACIER_IR
# 47 STANDARD
Gotcha: S3 lists Standard objects as
STANDARD, and some API calls simply leave the class out for them. The legacy classREDUCED_REDUNDANCYmay also show up in old buckets. AWS recommends against it because S3 Standard is now cheaper and more durable.
Finding legacy names in your own account
A five-minute audit shows which old names your estate still uses:
# 1. EBS volumes grouped by type: look for gp2 and io1
aws ec2 describe-volumes --query 'Volumes[].VolumeType' --output text \
| tr '\t' '\n' | sort | uniq -c
# 212 gp3
# 64 gp2 <- older generation, review later
# 6 io2
# 3 io1 <- older Provisioned IOPS type
# 2. Are you still using the vault-based Amazon Glacier service?
aws glacier list-vaults --account-id -
# {"VaultList": [{"VaultName": "finance-2019", ...}]} <- legacy vault API
# 3. Gateways and their types (S3 File, Volume, Tape, FSx File)
aws storagegateway list-gateways --query 'Gateways[].[GatewayName,GatewayType]'
You don't need to fix anything yet. For now, just record each finding on your map.
Closed doors: services new customers can't adopt
AWS has a pattern of saying a service is "no longer available to new customers". Existing users carry on, AWS keeps fixing security and availability, and no new features arrive. Here are the ones that matter for storage:
| Service or feature | Closed to new customers since | AWS-suggested direction |
|---|---|---|
| S3 Select (and S3 Glacier Select) | 25 July 2024 | Amazon Athena or client-side filtering |
| Amazon FSx File Gateway | 28 October 2024 | Access FSx for Windows File Server directly |
| S3 Object Lambda | 7 November 2025 | Lambda behind CloudFront, API Gateway or function URLs |
| AWS Snowball Edge (all Snow devices) | 7 November 2025 | DataSync online, AWS Data Transfer Terminal or partners offline, Outposts for edge compute |
| Amazon Glacier (vault API) | 15 December 2025 | S3 Glacier storage classes |
Best practice: These pages change. Before you put any of these services in a design, open its AWS documentation page and check the banner at the top. A tutorial from 2023 that says "order a Snowball" is a dead end for a new account today.
Trade-off: If you already use one of these services, nothing breaks tomorrow. But you're building on something that won't get new features, so plan an exit when you next redesign.
Worked example: placing five workloads
- Nightly Parquet files queried with SQL as tables → Object (S3 Tables, or S3 Standard with Athena).
- A PostgreSQL data disk on EC2 → Block (EBS gp3, or io2 Block Express for heavy IOPS).
- A Windows team share with SMB and Active Directory → File (FSx for Windows File Server).
- A GPU training cluster reading the same data set in parallel → High-performance file (FSx for Lustre).
- Seven-year compliance records, read almost never → Archive (S3 Glacier Deep Archive, not a new Glacier vault).
At this stage you're only finding the right district. Picking the right building comes later.
Key takeaways
- There are seven groups: object, block, file, high-performance file, archive, data transfer and backup. Sort by the protocol the client speaks.
GLACIERin the S3 API means S3 Glacier Flexible Retrieval. The vault-based Amazon Glacier service is separate and has been closed to new customers since 15 Dec 2025.- gp3 replaces gp2 as the current general-purpose SSD. Since 30 Apr 2025, all io2 volumes are io2 Block Express.
- S3 Select, FSx File Gateway, S3 Object Lambda, Snowball Edge and the Glacier vault API are all closed to new customers.
- Always check the service's AWS page for a status banner before you rely on it.