What is the difference between S3, EBS and EFS?
Three storage types with different access models — the distinction is how they are attached and accessed.
- S3 — object storage. Accessed over HTTP APIs, not mounted as a filesystem. Effectively unlimited capacity, eleven nines of durability, and very cheap. Objects are written and read whole rather than modified in place. Use for: backups, static assets, data lakes, logs, and media. Storage classes — Standard, Infrequent Access, Glacier tiers — trade retrieval cost against storage cost, managed by lifecycle policies.
- EBS — block storage. A virtual disk attached to a single EC2 instance, in one availability zone. Behaves like a physical disk, so it is what the operating system and databases run on. Volume types range from gp3 for general purpose to io2 for high-IOPS database workloads. Snapshots go to S3 for backup.
- EFS — network file system. An NFS share mountable by many instances simultaneously, across availability zones, growing automatically. Use for: shared content across a fleet, lift-and-shift applications expecting a shared filesystem, or shared home directories. More expensive per gigabyte than EBS.
How to choose: if it needs to look like a disk to one instance, EBS. If several instances need the same files at once, EFS. For anything else — and especially anything large or long-lived — S3, because it is cheaper, more durable, and does not need a server.





