Every day, more and more businesses are adopting Amazon Web Services (AWS). From big data analytics to blockchain technologies, they seem to provide services for every possible need. Perhaps the most popular services AWS offers, however, are storage solutions.
Here, we’ll look at the three primary storage solutions offered by AWS to help you determine which might be best suited to your needs.
Simple Storage System (S3)
S3 is an object storage service that is scalable, highly durable, and backed by Service Level Agreements (SLAs) for availability. S3 supports Secure Sockets Layer (SSL) for the protection of data in transit and built-in encryption for data at rest. You can access data stored in S3 through APIs or HTTP/HTTPS connections and data can be accessed from any region. S3 storage includes features for file versioning, allowing for easy data restoration and archiving, as well as a built-in query feature.
With S3, you have the options of 3 different storage classes, which can be configured at the object level:
- S3 Standard — intended for general purpose use with high throughput and low-latency. It is best used for cloud applications, dynamic websites, content distribution, and big data analytics.
- S3 Intelligent-Tiering — intended for cost optimization with automatic switching between frequent and infrequent access tiers. It is best used for long-lived data with unpredictable access patterns.
- S3 Standard-IA / S3 One Zone-IA — intended for infrequent access with rapid accessibility. The one zone version only stores data in one AZ for cost savings. They are best used for long-term storage, backups, and disaster recovery files.
- S3 Glacier / S3 Glacier Deep Archive — intended for data archiving and lowest cost. Glacier offers faster retrieval times than Deep Archive but slightly higher costs. They are best used for compliance records, backups, and disaster recovery.
These classes can be configured at the object level and multiple classes can be stored in a single bucket. Through S3 Lifecycle policies, you can automatically move objects between storage classes without making changes to your applications.
S3 is typically used for storing backup and restoration, disaster recovery, archiving, data lakes and big data analytics, hybrid cloud storage, and cloud-native application data.
Elastic Block Store (EBS)
EBS is a block storage service designed to provide persistent storage for Elastic Cloud Compute (EC2) instances. It can handle both throughput and transaction-intensive workloads and is designed for mission-critical systems with high availability and scalability. Backup of EBS data is easily accomplished through EBS snapshots, which can be used to restore failed volumes or generate new ones. Volumes can be encrypted by default on creation and data is protected both at-rest and in-transit via a built-in key management infrastructure.
With EBS, you can choose between four volume types:
- Provisioned IOPS SSD (io1) — provides high performance for latency-sensitive, transactional workloads. It is best used for I/O-intensive NoSQL and relational databases.
- General Purpose SSD (gp2) — provides price balanced performance for a variety of transactional workloads. It is best used for boot volumes, low-latency applications, and development and testing.
- Throughput Optimized HDD (st1) — provides a low-cost option for frequently accessed, throughput intensive workloads. It is best used for big data, data warehousing, and log processing.
- Cold HDD (sc1) — provides a low-cost option for infrequently accessed workloads. It is best used for backups and non-mission critical applications.
EBS allows you to change volume types at will. The service is not auto-scaling but you can change sizes manually with zero downtime.
EBS is typically used for enterprise applications, relational databases, business continuity, NoSQL databases, big data analytics, file systems, and media workflows.
Elastic File System (EFS)
EFS is a scalable, fully managed elastic NFS file system for use with AWS services and hybrid clouds. It is designed to allow massively parallel shared access with thousands of EC2 instances to provide high aggregate throughput and I/O Operations per Second (IOPS).
Data is stored regionally across multiple AZs for durability and high-availability. It is accessible across regions, AZs, and VPCs by EC2 instances and through VPN or AWS Direct Connect from on-premise servers. EFS is POSIX compliant and uses an NFSv4 protocol that is compatible with traditional file system configurations.
With EFS, you have the choice of two storage classes: Standard and Infrequent Access (EFS IA). You can choose to have infrequently used files moved automatically to EFS IA according to the policies set up in EFS LIfecycle Management. You can access your data, regardless of which storage class your data is stored in, from a common file system namespace which makes the classes transparent to end-users.
EFS is typically used for lift-and-shift migrations, big data analytics, web serving, content management, app development and testing, media workflows, database backups, and container storage.
Comparison Cheat Sheet
|Features||Amazon S3||Amazon EBS||Amazon EFS|
|Max Storage / File Size||Unlimited / 5 TB||16 TB per volume / Up to volume size||Unlimited / 47.9TiB|
|Scalability||Manually Scaling||Manually Scaling||Auto-scaling|
|Availability||99.99%||99.99%||Highly available (No SLA)|
|Reliability||Stored across multiple AZs||Stored in single AZ||Stored across multiple AZs|
|Data Access Options||1 Million+ connections available over the Internet, includes RESTful API interface||Single EC2 instance in a single availability zone||Up to 1k EC2 instances or servers concurrently with no AZ or region restrictions|
|Cost*||$0.021-0.023 per GB/mth depending on total data stored||$0.045 — $0.125 per GB/mth depending on volume type|
Provisioned IOPS cost additional $0.065 per IOPS/mth
|$0.045 — $0.3 per GB/mth|
Provisioned throughput costs an additional $6 per MB/s-mth
*Summarized pricing; for full details see the AWS Pricing Calculator.
Hopefully, this article gave you a better idea of your primary options when it comes to storage services in AWS. With all of the services that AWS offers, it can be difficult to choose the one that is best for you and I encourage you to read more on any features or services that you’re considering. Make sure you take the time to choose carefully and keep in mind that most of the services available can be used in combination, allowing you to craft a solution custom-built to your needs.