1.4.2. Storage Services: S3, EBS, EFS (Lean List)
š” First Principle: AWS provides various storage services, each optimized for distinct data access patterns, performance needs, and durability requirements, enabling cost-effective and scalable data persistence.
AWS provides various storage services, each designed with distinct first principles to cater to different data access patterns and durability needs.
- S3 (Simple Storage Service): An object storage service that offers industry-leading scalability, data availability, security, and performance. Highly durable, scalable object storage. Useful for static websites, backups, and data lakes due to unlimited capacity and high availability.
- EBS (Elastic Block Store): Provides persistent block storage volumes for use with Amazon EC2 instances. Applied as boot volumes, critical storage for databases, and for low-latency, high-performance disk access.
- EFS (Elastic File System): A scalable, elastic, cloud-native NFS (Network File System) file system. Useful for shared file access across multiple EC2 instances, like Content Management Systems (CMS), dev environments, and big data analytics.
Key Storage Services & Characteristics:
- "S3": Object storage, highly durable, scalable, accessible via HTTP/S.
- "EBS": Block storage, attaches to single EC2 instance, persistent.
- "EFS": File storage, shared across multiple EC2 instances, POSIX compliant.
Scenario: You need to store various types of data for a new application: static website files, a database's primary storage volume, and shared configuration files accessible by multiple web servers.
ā ļø Common Pitfall: Using S3 for a database's primary storage. S3 is object storage and not designed for the low-latency, random read/write access required by transactional databases; EBS is the correct choice.
Key Trade-Offs:
- Scalability/Cost (S3) vs. Performance/Access Pattern (EBS/EFS): S3 is highly scalable and cost-effective for static objects. EBS offers high performance for block storage for a single instance. EFS offers shared file access but might be more expensive than S3 or EBS for certain use cases.
Reflection Question: How would you choose between Amazon S3, Amazon EBS, and Amazon EFS to meet the diverse storage needs of this application, considering their fundamental differences in data access patterns and scalability?