Usage Patterns - AWS Storage Services Overview

Usage Patterns

There are four common usage patterns for Amazon S3.

First, Amazon S3 is used to store and distribute static web content and media. This content can be delivered directly from Amazon S3 because each object in Amazon S3 has a unique HTTP URL. Alternatively, Amazon S3 can serve as an origin store for a content delivery network (CDN), such as Amazon CloudFront. The elasticity of Amazon S3 makes it particularly well suited for hosting web content that requires bandwidth for addressing extreme demand spikes. Also, because no storage provisioning is required, Amazon S3 works well for fast-growing websites hosting data-intensive, user-generated content, such as video- and photo-sharing sites.

Second, Amazon S3 is used to host entire static websites. Amazon S3 provides a low-cost, highly available, and highly scalable solution, including storage for static HTML files, images, videos, and client-side scripts in formats such as JavaScript.

Third, Amazon S3 is used as a data store for computation and large-scale analytics, such as financial transaction analysis, clickstream analytics, and media transcoding. Because of the horizontal scalability of Amazon S3, you can access your data from multiple computing nodes concurrently without being constrained by a single connection.

Finally, Amazon S3 is often used as a highly durable, scalable, and secure solution for backup and archiving of critical data. You can easily move cold data to Amazon S3 Glacier using lifecycle management rules on data stored in Amazon S3. You can also use Amazon S3 cross-region replication to automatically copy objects across S3 buckets in different AWS Regions asynchronously, providing disaster recovery solutions for business continuity.

Amazon S3 doesn’t suit all storage situations. The following table presents some storage needs for which you should consider other AWS storage options.

Storage Need Solution AWS Services
File system Amazon S3 uses a flat namespace and isn’t meant to serve as a standalone, POSIX-compliant file system. Instead, consider using Amazon EFS as a file system. Amazon EFS
Structured data with query Amazon S3 doesn’t offer query capabilities to retrieve specific objects. When you use Amazon S3 you need to know the exact bucket name and key for the files you want to retrieve from the service. Amazon S3 can’t be used as a database or search engine by itself. Instead, you can pair Amazon S3 with Amazon DynamoDB, Amazon CloudSearch, or Amazon Relational Database Service (Amazon RDS) to index and query metadata about Amazon S3 buckets and objects. Amazon DynamoDB Amazon RDS Amazon CloudSearch
Rapidly changing data Data that must be updated very frequently might be better served by storage solutions that take into account read and write latencies, such as Amazon EBS volumes, Amazon RDS, Amazon DynamoDB, Amazon EFS, or relational databases running on Amazon EC2.

Amazon EBS

Amazon EFS Amazon DynamoDB Amazon RDS

Archival data Data that requires encrypted archival storage with infrequent read access with a long recovery time objective (RTO) can be stored in Amazon S3 Glacier more cost-effectively. Amazon S3 Glacier
Dynamic website hosting Although Amazon S3 is ideal for static content websites, dynamic websites that depend on database interaction or use server-side scripting should be hosted on Amazon EC2 or Amazon EFS.

Amazon EC2

Amazon EFS