S3 vs EBS vs EFS – AWS Storage Services Compared

AWS S3 vs EBS vs EFS – Storage Services Compared

  • AWS provides three primary storage services: S3 (object storage), EBS (block storage), and EFS (file storage).
  • Each serves different use cases — choosing the right one depends on access patterns, performance requirements, and cost constraints.
  • Understanding the differences is critical for both architecture decisions and AWS certification exams (SAA-C03, SAP-C02).
AWS Storage — Access Pattern Comparison
S3 (Object)
App 1 → API →
App 2 → API →
Lambda → API →
S3 Bucket
(Unlimited)
Any # of clients via HTTP
EBS (Block)
EC2 Instance
↕ attached
EBS Volume
(1 GiB-64 TiB)
1 instance (same AZ)
EFS (File/NFS)
EC2 (AZ-1) →
EC2 (AZ-2) →
Lambda →
EFS Mount
(Auto-scales)
1000s clients (cross-AZ)

S3 vs EBS vs EFS Comparison Table

Feature Amazon S3 Amazon EBS Amazon EFS
Storage Type Object storage Block storage File storage (NFS)
Access Pattern HTTP/HTTPS API (any number of clients) Single EC2 instance (Multi-Attach for io1/io2 up to 16) Multiple EC2/ECS/Lambda (1000s concurrent)
Protocol REST API, S3 API Block device (like a hard drive) NFSv4.1
Capacity Unlimited (5 TB per object) 1 GiB – 64 TiB per volume Unlimited (automatic scaling)
Durability 99.999999999% (11 nines) 99.999% (within AZ) 99.999999999% (11 nines)
Availability 99.99% (Standard) 99.999% (io2 Block Express) 99.99% (Standard), 99.9% (One Zone)
Scope Regional (across AZs) Single AZ (snapshots are Regional) Regional (across AZs) or One Zone
Performance – Latency Milliseconds (first byte) Sub-millisecond (io2/gp3) Low milliseconds
Performance – IOPS 3,500+ PUT/s, 5,500+ GET/s per prefix Up to 256,000 (io2 Block Express) 500,000+ read IOPS (Elastic Throughput)
Performance – Throughput Aggregate scales with prefixes Up to 4,000 MiB/s (io2 Block Express) Up to 10+ GiB/s (Elastic Throughput)
Storage Classes/Types Standard, IA, One Zone-IA, Glacier IR, Glacier Flexible, Glacier Deep, Express One Zone gp3, gp2, io2 Block Express, io1, st1, sc1 Standard, Infrequent Access, Archive (with Intelligent-Tiering)
Pricing Model Per GB stored + requests + data transfer Per GB provisioned + IOPS (io1/io2) Per GB used (pay for what you store)
Cost (approx. US East) $0.023/GB (Standard) $0.08/GB (gp3) $0.30/GB (Standard), $0.016/GB (IA)
Encryption SSE-S3, SSE-KMS, SSE-C, client-side AES-256 (KMS or EBS-managed) At rest (KMS) + in transit (TLS)
Backup Versioning, Cross-Region Replication, S3 Batch Snapshots (incremental, to S3) AWS Backup, EFS-to-EFS replication
Cross-Region CRR, Multi-Region Access Points Snapshot copy to other Regions EFS Replication (async, RPO minutes)
OS Integration Not mountable as filesystem (use S3 Mountpoint for read-heavy) Mount as block device (format with ext4/xfs) Mount as NFS filesystem
Modify on Write No (replace entire object) Yes (modify bytes in place) Yes (modify files in place)
Use With Any AWS service, internet, on-premises EC2 only EC2, ECS, EKS, Lambda, on-premises (DataSync)

When to Use Each

Use S3 when:
  • Storing unlimited objects (media, logs, backups, data lakes)
  • Static website hosting
  • Data needs to be accessed by multiple services/applications via API
  • Long-term archival (Glacier classes)
  • Analytics/ML training data
Use EBS when:
  • Boot volumes for EC2 instances
  • Databases requiring low-latency block I/O (RDS, self-managed DBs)
  • Applications needing consistent sub-millisecond latency
  • High-IOPS transactional workloads
  • Single-instance access pattern
Use EFS when:
  • Shared filesystem across multiple EC2 instances/containers
  • Content management systems (WordPress, Drupal)
  • Home directories for development teams
  • Machine learning training data (shared across instances)
  • Container storage (ECS/EKS persistent volumes)
  • Lambda function storage (/mnt mount)

Pricing Comparison (US East-1)

Scenario S3 EBS EFS
1 TB stored (monthly) $23.55 (Standard) $81.92 (gp3) $307.20 (Standard) or $16.40 (IA)
1 TB infrequent access $12.50 (S3 IA) $45.00 (sc1) $16.40 (EFS IA)
1 TB archive $3.60 (Glacier IR) N/A $8.00 (EFS Archive)
High IOPS (50K) N/A $3,250/month (io2) Included (Elastic)

Common Architecture Patterns

  • Web Application: EBS for database, EFS for shared media/uploads, S3 for static assets via CloudFront
  • Data Lake: S3 for raw/processed data, EBS for compute nodes, EFS for shared notebooks
  • Containers (EKS/ECS): EFS for shared persistent volumes, EBS for StatefulSet per-pod storage, S3 for artifacts
  • Machine Learning: S3 for training data, EFS for shared model artifacts, EBS for GPU instance local storage

Key Differences Summary

  • S3 is cheapest for large-scale storage but has higher latency and no in-place modification
  • EBS is fastest (sub-ms latency) but limited to single AZ and single instance (unless Multi-Attach)
  • EFS is most flexible for shared access but most expensive per GB for frequently accessed data
  • All three support encryption at rest and in transit
  • S3 and EFS have 11 nines durability; EBS has 5 nines (use snapshots for DR)

Practice Questions

Question 1

A company runs a containerized application on EKS that requires a shared filesystem accessible by all pods across multiple Availability Zones. The data includes ML model artifacts that are written once and read frequently. Which storage solution is most appropriate?

Show Answer

Answer: – Amazon EFS with Infrequent Access lifecycle policy. EFS provides NFS-compatible shared storage across AZs, accessible by all pods. The lifecycle policy moves infrequently accessed files to IA tier automatically, reducing costs for write-once-read-occasionally patterns.

Question 2

An application requires 100,000 IOPS with sub-millisecond latency for a self-managed Oracle database running on a single EC2 instance. Which storage option should be used?

Show Answer

Answer: – Amazon EBS io2 Block Express. It provides up to 256,000 IOPS with sub-millisecond latency, designed for critical database workloads requiring consistent high performance on a single instance.

Question 3

A media company needs to store 500 TB of video files that are accessed via a web application and CDN. Files are never modified after upload. Which is the most cost-effective solution?

Show Answer

Answer: – Amazon S3 Standard with CloudFront distribution. S3 provides unlimited scalable object storage at $0.023/GB, supports direct CDN integration, and its immutable object model matches the write-once pattern. Cost: ~$11,750/month vs ~$40,000 (EBS) or $150,000 (EFS).

Question 4

A development team needs shared storage for home directories accessible from multiple EC2 instances. Storage usage varies between 100 GB and 2 TB monthly. Which option provides the best cost efficiency?

Show Answer

Answer: – Amazon EFS with Elastic Throughput and Intelligent-Tiering. EFS automatically scales capacity (no provisioning needed), and Intelligent-Tiering moves infrequently accessed files to cheaper tiers automatically. You only pay for what you use.

Question 5

An application stores user-uploaded images that must be accessible from any AWS Region with low latency. Which storage configuration provides this?

Show Answer

Answer: – Amazon S3 with Multi-Region Access Points (MRAP) or Cross-Region Replication. S3 MRAP routes requests to the nearest replicated bucket automatically, providing low-latency global access. EBS and EFS are regional services and cannot natively serve content globally.

Related Posts

What About Amazon FSx?

While S3, EBS, and EFS cover most use cases, Amazon FSx provides fully managed file systems for specialized workloads:

  • FSx for Lustre — High-performance parallel file system for HPC, ML training, and media processing (sub-ms latency, 100s of GB/s throughput)
  • FSx for Windows File Server — Fully managed Windows-native file shares with SMB protocol, Active Directory integration
  • FSx for NetApp ONTAP — Multi-protocol (NFS, SMB, iSCSI) enterprise storage with snapshots, cloning, and tiering
  • FSx for OpenZFS — High-performance file system with snapshots, compression, and up to 1M IOPS

When to choose FSx over EFS: Choose FSx when you need Windows compatibility (FSx for Windows), HPC-grade throughput (Lustre), or advanced enterprise features like data deduplication and multi-protocol access (ONTAP).

📖 For a detailed FSx comparison, see AWS S3 vs EBS vs EFS vs FSx – Complete Storage Guide.

Frequently Asked Questions

What is the difference between S3, EBS, and EFS?

S3 is object storage (unlimited, accessed via API). EBS is block storage (attached to single EC2, low-latency like a hard drive). EFS is file storage (NFS shared across multiple instances). Choose based on access pattern: API access → S3, single-instance database → EBS, shared filesystem → EFS.

Which AWS storage service is cheapest?

S3 Standard is cheapest at $0.023/GB/month for frequently accessed data. EBS gp3 costs $0.08/GB. EFS Standard costs $0.30/GB but with Intelligent-Tiering and IA classes, effective cost can drop to $0.016/GB for infrequently accessed files.

Can EBS be shared across multiple instances?

EBS Multi-Attach (io1/io2 only) allows up to 16 EC2 instances in the same AZ to access a single volume simultaneously. For true multi-AZ shared storage, use EFS instead.

References

Posted in AWS

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.