Choose storage by access pattern and performance
Choose object, file, block, scratch, or hybrid storage from the required access interface first, then test IOPS, throughput, latency, durability, and transfer time.
LESSON GOALS
By the end, you can
- Choose object, shared-file, block, scratch, and hybrid storage from client access and durability requirements.
- Measure IOPS, throughput, latency, locality, growth, and transfer limits with the real workload shape.
01
Choose the access interface before the speed
First ask how the application reads and writes data: object API, shared filesystem, or block device. Performance tuning cannot repair the wrong interface. Record the clients, location, locking, durability, recovery, and growth requirements before choosing a service.
Then measure request size and pattern, IOPS, throughput, and latency. IOPS counts operations while throughput counts bytes, so small random requests and large sequential scans hit different limits. S3 supports object workloads, EFS supplies elastic shared POSIX, and EBS supplies zonal block volumes with type-specific performance.
No tuning can make an object API a native POSIX namespace or make one block device the stated multi-client filesystem.
02
Match durable, shared, and temporary data separately
Different datasets in one application may need different storage. Separate durable objects, shared files, database blocks, and reproducible scratch. S3 scales object APIs and parallel/multipart patterns. EFS provides elastic shared POSIX; choose modes from measurement. EBS is AZ block, and its volume and compute path must meet the required IOPS, throughput, and latency. Instance store is temporary local scratch/cache.
FSx for Lustre fits high-performance parallel file workloads and S3 integration. EFS remains a simpler general-purpose elastic shared POSIX option when measurement meets the target. EC2 instance store is temporary host-local block storage suited to buffers, caches, and reproducible scratch; its data can disappear with relevant instance lifecycle or disk failure and must not hold the only database copy.
Put durable random block data on a tested EBS and EC2 path. Benchmark real request size, queue depth, instance limits, volume limits, and failure headroom rather than treating a provisioned number as application proof.
03
Calculate the physical path and test failure
For hybrid data, the network is part of the storage design. Calculate a lower bound before promising a migration window. DataSync moves data among supported on-premises and AWS storage. Storage Gateway presents supported file, volume, or tape interfaces with local caching. Neither changes the target access semantics.
Use S3 for durable objects and estimate the DataSync transfer window; evaluate IOPS, throughput, locality, growth, and durability separately. Two hundred decimal terabytes equals 1,600,000 gigabits.
At a perfect 2 Gbps, the theoretical lower bound is 800,000 seconds, about 9.26 days; overhead, retries, and contention make reality longer. Parallelism cannot exceed the physical bottleneck. Use S3 for elastic object growth, benchmark the render filesystem at required concurrency, and retain Storage Gateway only when an on-premises protocol interface is itself required. Performance acceptance should report workload shape with the number.
A result without request size, concurrency, cache state, dataset size, and failure placement cannot be compared with the target. Repeat tests after removing a storage path or compute host, verify scratch reconstruction, and measure transfer checkpoints so an interruption does not turn a nine-day lower bound into an unplanned restart. Growth planning differs by service.
Object storage expands without resizing a volume, while block and provisioned file systems can require capacity or throughput changes. Monitor consumed bytes, burst or throughput credits where relevant, queue depth, and time to scale. Leave enough margin for recovery and maintenance, because a benchmark at full nominal capacity provides no room for a failed path or catch-up work.
DECISION TABLE
Compare the architecture constraints
| requirement | choose | because | reject |
|---|---|---|---|
| 500 TB immutable object growth | S3 | Object semantics/elastic scale. | EBS/shared file without need. |
| 40 Linux clients shared POSIX | EFS or FSx Lustre for HPC profile | Shared files; tune throughput. | Single-host EBS. |
| 12k random IOPS durable block | Measured EBS config | Block semantics/IOPS. | Instance store durability. |
GUIDED WORKED SCENARIO
Reason from the stated constraints
This is a guided example, not a question to memorise. The knowledge check uses new situations to test the same reasoning.
Choose storage for 500 TB objects growing 30 TB/month, 40 parallel render workers that require one S3-integrated POSIX file system and sustained 2 GB/s shared scans, 8 TB disposable scratch, and a database needing 12,000 random IOPS at 2 ms. Transfer 200 TB over 2 Gbps.
Requirements
- Separate object/POSIX/scratch/block.
- S3-integrated parallel files at 2 GB/s and database at 12k IOPS.
- Objects grow without volume expansion.
- Transfer constrained by link.
- Scratch loss acceptable, database loss not.
Reasoning path
- Eliminate semantic mismatches.
- Calculate 200 TB over a perfect 2 Gbps as at least 800,000 seconds, about 9.26 days, before overhead.
- Benchmark EFS vs FSx for Lustre; the explicit parallel, S3-integrated profile selects Lustre.
- Instance store scratch only.
- Choose/test EBS/EC2 path for 12k IOPS/latency.
Why it wins
- Services match access semantics first.
- IOPS/throughput/locality/growth/durability separate.
- 2 Gbps physical path remains a bound.
Why the alternatives lose
It does not match the scenario's explicit parallel S3-integrated file-system requirement as directly as FSx for Lustre.
Becomes correct when: The workload needs a general-purpose elastic shared POSIX namespace and measured EFS throughput and latency satisfy the target.No object API/shared multi-client POSIX.
Becomes correct when: Single-host durable block.Host lifecycle loses data.
Becomes correct when: Disposable reproducible scratch.It is hybrid interface/cache, not target semantic.
Becomes correct when: On-prem must retain NFS/SMB/iSCSI/tape interface.INTERACTIVE ARCHITECTURE VISUAL
Stop at the first broken contract
Change the required interface, then test a candidate. Price never repairs a failed protocol or data model.
× Contract failsThe candidate fails the required interface or data model. Eliminate it before comparing price.
Read the diagram as text
Storage gate table: required interface, durability, locality, request size, concurrency, IOPS, throughput, latency, growth, failure behavior, and transfer bound. Stop at the first mismatch.
KNOWLEDGE CHECK
Answer one question at a time
Pass every question to complete this lesson. Each answer includes reasoning before you continue.
KEY TERMS
Glossary
- Object storage
- Storage accessed through an object API using bucket and key, such as Amazon S3.
- File storage
- A shared filesystem interface with files and directories, such as EFS or FSx.
- Block storage
- Disk-like storage exposed to a compute host, such as Amazon EBS.
- IOPS
- Input/output operations completed per second.
- Throughput
- The quantity of data transferred per unit of time.
- Latency
- The time one storage operation takes.
- Instance store
- Temporary storage physically attached to an EC2 host and unsuitable as the only durable copy.
- Scratch data
- Temporary, reproducible data that may be lost without business loss.
- AWS DataSync
- A managed service for online movement and recurring synchronisation of supported data.
- AWS Storage Gateway
- A hybrid service presenting supported file, volume, or tape interfaces backed by AWS storage.
PRIMARY SOURCES
Verify the claims
- primaryAmazon S3 User Guideaws-storage-s3 · retrieved 2026-07-29
- primaryAmazon EBS volume typesaws-ebs-volume-types · retrieved 2026-07-30
- primaryAmazon EFS performance specificationsaws-efs-performance-specifications · retrieved 2026-07-30
- primaryBest practices design patterns: optimizing Amazon S3 performanceaws-s3-performance-design-patterns · retrieved 2026-07-30
- primaryWhat is Amazon FSx for Lustre?aws-fsx-lustre-overview · retrieved 2026-07-30
- primaryWhat is AWS DataSync?aws-xfer-datasync · retrieved 2026-07-29
- primaryWhat is AWS Storage Gateway?aws-xfer-storage-gw · retrieved 2026-07-29
- primaryHybrid Networking Lensaws-wa-hybrid-net-lens · retrieved 2026-07-29
- primaryEc2 Instance Storeaws-ec2-instance-store · retrieved 2026-07-30