With the development of cloud computing and the move to working online increasing, data storage needs can grow exponentially. This is particularly true if you are working with images, videos and other large data objects. Amazon’s Simple Storage Service, S3, provides a straightforward platform to scale to your storage requirements in a flexible platform.
S3 is part of Amazon’s Web Services (AWS) platform that provides object storage via a web service interface.
Key benefits and features include:
- Nearly unlimited data and object storage of just about any type of data.
- Built on a Reduced Redundancy Storage (RRS) framework which stores data in regional buckets to reduce latency of data access from different geographic locations.
- Strong authentication to ensure security
- Data access can be done via Representational State Transfer (REST) or Simple Object Protocol (SOAP) web services which are commonly used on many different development platforms.
- Static web sites can be hosted on the S3 infrastructure.
A bucket is the logical storage container for your objects. When you start out to load data into S3, you have to create a S3 bucket in a specific region. By default, its possible to create up to 100 individual buckets in each of your AWS accounts and up to 1000 by requesting service limit increase. Once the bucket is created, you can begin uploading data objects.
Once the bucket is created, you can then use the API to manage it. To make a REST API call to S3 in your application, you will compute the signature to add to your S3 request (see more here).
Amazon S3 offers different storage classes that offer different levels of durability, availability, pricing and performance requirements
S3 provides different types of storage classes that provide different options:
- S3 Standard: General purpose storage for any type of data, typically used for frequently accessed data [Price: $0.023 per GB]
- S3 Intelligent – Tiering: Automatic cost savings for data with unknown or changing access patterns [Price: $0.023 per GB]
- S3 Standard – Infrequent Access: For long lived but infrequently accessed data that needs millisecond access [Price: $0.0125 per GB]
- S3 One Zone – For re-createable infrequently accessed data that needs millisecond access. [Price: $0.01 per GB]
- S3 Glacier – For long-term backups and archives with retrieval option from 1 minute to 12 hours [Price: $0.004 per GB]
- S3 Glacier Deep Archive – For long-term data archiving that is accessed once or twice in a year and can be restored within 12 hours [Price: $0.00099 per GB]
There are basically three factors that go into determining the total cost of using S3:
- The amount of storage
- The amount of data transferred every month
- The number of requests made monthly
In most implementations, only the storage amount and data transferred significantly impacts the cost. Here is the pricing as of the writing of this post:
- Storage Amount: In general Cost is $0.023/GB (varies depending on the storage class). Cost is based on total size of objects in the S3 Bucket
- Outbound Data Transfers: You pay around $0.09 per gigabyte. Charges are determined by the amount of data transferred from S3 to the Internet and data transferred between AWS regions
- Web Requests: The cost of web requests really focuses on GET and PUT Requests, which cost around $0.005 per 1,000 requests.
You can estimate your cost using the AWS calculator https://calculator.aws/#/createCalculator
Amazon’s AWS infrastructure provided access to a massively scalable infrastructure that can power your cloud application and business needs. S3 can be used to maximize those storage needs. It can be a bit confusing and complicated to get started with so make sure you allow enough time to do learning and testing on how to best implement.