EBS vs S3: A Venn Diagram
EBS and S3 Solve Different Problems — But Modern Workloads Need a Third Layer
Engineers frame EBS vs S3 as a tradeoff. Block storage with low latency on one side. Scalable object storage at massive scale on the other. Pick your poison.
That's the wrong question.
S3 and EBS don't compete—they operate at different layers. The real friction shows up when a workload needs S3's durability and block-level performance at the same time. That's where most architectures quietly fall apart.
The better questions are:
- What's my durable system of record?
- What does my compute layer actually expect?
- How am I handling performance-sensitive access to S3-backed data?
That last one is where things get complicated.
S3: Durable Object Storage at Massive Scale
S3 is built for durability, scale, and cost efficiency. Objects live in buckets—data, metadata, and a unique key. Capacity scales without pre-provisioning. Replication across availability zones happens automatically.
S3 is the right call for raw data landing zones, long-term archival, media storage, and any shared system of record across services. You pay for what you store and the requests you make.
What you don't get is filesystem behavior. No mountable volumes, no POSIX locking, no shared mutable state that looks like a disk. Latency runs in the tens of milliseconds—fine for object storage, wrong for tight training loops or write-heavy workloads.
S3 is a durable foundation. It's not a high-performance shared filesystem.
EBS: Low-Latency Block Storage for EC2
EBS gives you block volumes attached to EC2 instances. Provision in advance, and the volume behaves like a virtual SSD. Single-digit millisecond latency, high IOPS, database-grade performance—EBS handles all of it well.
You pay for provisioned capacity and performance tiers regardless of actual utilization. Allocation stays fixed even when usage swings.
EBS is the right answer to "I need a disk attached to this machine." It is not the right answer to "I need fast, shared storage across a distributed fleet running against S3 data." It was never designed for that.
The Real Bottleneck: Performance-Sensitive Compute on S3 Data
This is where AI, analytics, observability, and document processing all hit the same wall.
Data lives in S3 because that's where it belongs—durable, cheap, accessible. But compute needs to hit that data repeatedly, often across multiple instances simultaneously. Jobs restart. Workers scale out. Checkpoints get written constantly.
So teams build their own solution. It usually looks like this:
- Store data in S3
- Stage frequently accessed data onto EBS
- Sync changes between disk and S3
- Build snapshot, migration, and recovery logic on top
It works. But now you own the complexity.
You're managing capacity planning, cache invalidation, cross-instance coordination, and failure recovery. The storage decision became an engineering tax you're paying on every sprint. At scale, that's not a storage choice anymore—it's an architectural burden.
What's Actually Missing: A Dedicated Access Layer
Modern compute frameworks assume filesystem behavior. Mountable paths, atomic renames, locking, consistent directories shared across nodes. That's the contract they're written against.
Object APIs don't honor that contract. Block storage does—but only at the instance boundary.
The gap is a filesystem layer that:
- Keeps S3 as the source of truth
- Exposes POSIX-compliant volumes
- Scales automatically with your S3 datasets
- Supports simultaneous multi-instance access
- Handles performance internally
That's exactly what Archil is built to be.
Archil: A Purpose-Built Filesystem Layer for S3
Archil gives you POSIX-compliant virtual volumes backed directly by S3. They mount like local disks. Capacity scales transparently with your dataset. Multiple instances attach to the same volume and work on shared files with full filesystem semantics—no coordination overhead.
Instead of manually staging data onto EBS, compute hits an Archil volume directly. Synchronization and caching happen automatically underneath.
What that removes from your stack:
- Manual EBS provisioning
- Custom S3 ↔ disk sync logic
- Rebuilding working sets after instance loss
- Overprovisioned disks sized for peak capacity
Archil keeps a high-speed layer in front of S3 so active data stays close to compute. Cold data stays in S3. You pay for active working sets, not static disk allocations.
For AI training, distributed analytics, and stateful processing on S3 datasets, Archil replaces DIY hybrid architectures with something purpose-built for this exact problem.
Cost: Provisioned Capacity vs. Active Data
EBS charges for provisioned capacity and performance tiers whether you're using them or not.
S3 charges for stored data and requests, which stacks up fast under heavy I/O.
Archil charges for active data usage. Hot datasets stay fast. Cold datasets stay in S3. You're not permanently provisioning peak disk capacity just to maintain performance headroom.
For workloads that fluctuate or scale dynamically, that difference compounds.
When to Use Each Layer
S3 — durable, scalable object storage. The system of record.
EBS — tightly coupled, low-latency block storage for a single instance.
Archil — shared, high-performance filesystem access to large S3-backed datasets across distributed compute.
These aren't competitors. They solve different architectural responsibilities.
S3 stores. EBS accelerates instance-local workloads. Archil bridges S3 and performance-sensitive compute.
Example: Large-Scale Model Training
A training pipeline operating on terabytes of S3 data. DIY approach: stage onto EBS for speed, manage sync manually, handle recovery through snapshots. You know the drill.
With Archil, compute instances mount a shared S3-backed volume directly. Training jobs see filesystem semantics. Checkpoints persist independently of any single machine. Restart logic gets simpler because state doesn't live on ephemeral disks.
S3 stays the durable system of record. Archil handles performance and sharing. Compute focuses on training.
Conclusion
EBS and S3 aren't competitors. They were never meant to be.
The complexity shows up when performance-sensitive compute meets S3-backed data. At that point you're either building and maintaining a hybrid S3 + EBS system yourself, or you bring in a dedicated access layer.
Archil is that layer—a filesystem interface on top of S3 that removes the operational weight of manual caching and disk orchestration.
The question was never "EBS or S3?"
It's whether you want to own the bridge between durability and performance, or use something built specifically to handle it.