AWS S3: understanding cloud storage costs and how to save
NOTE: This post was published in 2016. Click here to go to our new post about Amazon S3 pricing.
AWS S3 billing can get complicated, such as navigating the different flavors of S3 storage types and operations that can determine a user’s cloud storage costs. Identifying them all can help users make sense of extra cloud charges beyond what it costs to store digital goods.
[EDIT: 11/23/16] AWS recently updated S3 and Glacier pricing in various regions. We use U.S. West Oregon pricing for our examples in this piece. Check out the AWS documentation for the most updated pricing and information.
Let’s walk through how AWS bills users for S3 and a few different considerations that might come up when determining costs of the service.
Pricing by S3 storage types
Most users store content that’s frequently accessed by their users, audiences, colleagues, and other folks who need to access that data. Some data receive less attention, but require rock-solid, redundant storage. And then, there are data that hardly get touched, but require storage due to compliance or regulatory reasons.
Fortunately, there are a few different flavors of S3 to suit many different storage needs. Users can specify which class of S3 to use for their data from the AWS console, which region to place the S3 resource, and begin to store their data. The available types are as follows:
This S3 class is the standard use case for many businesses and individuals. Create a storage account, choose a region to place it, use it, and be billed for only what’s used.
S3 Standard – Infrequent Access
This S3 class is best for storing data that is accessed less frequently, but might require rapid access when it’s needed. It’s ideal for long-term storage, backups, and is popularly used as a data store for disaster recovery. It’s a little cheaper to store over time, but with higher charges to retrieve or transfer the data.
Glacier is not a S3 class, but an AWS storage product for very long-term, infrequently accessed data. It’s ideal for end-of-lifecycle data that can’t yet be deleted, compliance-type backups, and other long-term needs. Data can be restored at any time with a few different methods of data retrieval at various speeds.
Here’s how much these types of storage can cost
Storage prices vary by AWS Region. Each S3 resource incurs a storage, request, and data transfer fee. Here’s an example of U.S. West Oregon’s storage, request, and data transfer pricing. More regional pricing can be found on the AWS S3 pricing site. Pricing may also vary by region.
|S3 Standard||S3 Standard – Infrequent Access||AWS Glacier|
|First 50 TB/ month||$0.023 / GB||$0.0125 / GB||$0.004 / GB|
|Next 450 TB/ month||$0.022 / GB||$0.0125 / GB||$0.004 / GB|
|Over 500 TB/ month||$0.021 / GB||$0.0125 / GB||$0.004 / GB|
|PUT, COPY, POST, or LIST||$0.005 / 1,000 requests||$0.01 / 1,000 requests|
|GET and all other requests||$0.004 / 10,000 requests||$0.01 / 10,000 requests|
|Delete requests||Free||Free||Free, but with limits and potential surcharges|
|Lifecycle Transition Requests into S3 Standard IA||$0.01 / 1,000 requests|
|Glacier archive and restore requests||$0.05 / 1,000 requests, see Glacier pricing for more details on retrieval fees|
Here’s a snapshot (pun intended) of pricing as an illustrative example. Note that in late 2016, there were pricing updates to S3 and Glacier.
About S3 Tier requests and tagging them
AWS Billing for S3 Requests is broken into three tiers that indicate the type of requests, as shown in the table above. For each request type, the tiers include:
- Tier 1: PUT, COPY, POST, or LIST requests
- Tier 2: GET and other requests
- Tier 3: Glacier Archive and Restore Requests
AWS users who take the time to tag their S3 resources can visualize these tiers, requests data, associated costs, and data transfer. We cover this type of cloud cost monitoring extensively within Cloudability, for example. For more tagging and linked account information, check out this free eBook for helpful best practices and tips.
Data Transfer Charges: U.S. West Oregon example
|Data IN to Amazon S3|
|All data transfer in||$0.000 per GB|
|Data OUT from Amazon S3 TO|
|Amazon EC2 in the same region||$0.000 per GB|
|Another AWS Region||$0.020 per GB|
|Amazon CloudFront||$0.000 per GB|
|Data OUT from Amazon S3 to Internet|
|First 1 GB/month||$0.000 per GB|
|Up to next 10 TB / month||$0.090 per GB|
|Next 40 TB / month||$0.085 per GB|
|Next 100 TB / month||$0.070 per GB|
|Next 350 TB / month||$0.050 per GB|
|Next 524 TB / month||Contact AWS|
|Next 4 PB / month||Contact AWS|
|Greater than 5 PB / month||Contact AWS|
Visit the AWS pricing page for S3 to see the costs of data transfer, to and from, for other regions.
Some fine (web) print
S3 Standard – Infrequent Access and AWS Glacier can include particular extra charges under certain circumstances. S3 Standard IA has a minimum billable object size of 128KB. Smaller objects can be stored, but will be priced as 128KB object sizes.
Using Lifecycle Management to reduce costs
Users can programmatically configure rules for data deletion or migration between types of S3 to help lower long-term storage costs using AWS Object Lifecycle Management. For instance, active data can remain in S3 Standard storage. Yet, if certain data begin to show signs of infrequent access, users can program rules to migrate that data over to S3 Standard Infrequent to incur a cheaper storage rate.
Migrating infrequently accessed data to cheaper storage can reduce AWS storage bills over time with Lifecycle Management configurations, and can start with writing a simple XML file. AWS has plenty of resources on how to get started.
How filling the S3 buckets incurs charges
Aside from using your business or individual internet service provider to upload data, AWS has a few other methods to deliver data and content to S3. Each of these methods have their own pricing nuances that can increase your storage bill.
- Direct Connect: AWS has direct ports into their data centers at all kinds of incredible speeds. AWS charges users per port per hour.
- AWS Kinesis allows the streaming of real-time data into storage. Kinesis users will be charged for: transmitted data, PUT requests, and storage costs). Learn more about Kinesis Firehose and specific real-time data streaming into storage from the AWS documentation.
- AWS Snowball gives users the means to ship massive amounts of data physically, charging users “by the job.” Each job includes a certain about TB transferred, extra day charges, data transfer rates from the media into AWS storage, and the shipping to and from for physical media.
Using these alternative means of transferring data over to S3 can increase AWS storage bills beyond what’s outlined on the S3 product page.
Need for speed: AWS Transfer Acceleration
AWS Transfer Acceleration grants Wide Access Network speeds without the need for custom protocols or apps. AWS users can achieve up to six times faster data transfer thanks to AWS intelligent routing. The best part about Transfer Acceleration from a billing standpoint is that if AWS can’t make the data packet move faster, it won’t charge the premium.
Data OUT from Amazon S3 to the InternetData Transfer between Amazon S3 and another AWS region
|Data IN to Amazon S3 from the Internet|
|Accelerated by AWS Edge Locations in the United States, Europe, and Japan||$0.04 / GB|
|Accelerated by all other AWS Edge Locations||$0.08 / GB|
|Accelerated by any AWS Edge Location||$0.04 / GB|
|Accelerated by any AWS Edge Location||$0.04 / GB|
Each time users activate Transfer Acceleration to upload an object, AWS checks whether or not the feature will be faster than a typical Amazon S3 transfer. If AWS determines that Transfer Acceleration will not improve transfer (of a regular Amazon S3 transfer of the same object to the same destination AWS region), AWS will not charge the premium. Often, it may bypass the Transfer Acceleration system for that upload.
Bottom line: Storage pricing includes more than storing the data
Realizing all of the moving billable parts of S3 storage can help operations managers and engineers keep financial surprises to a minimum. Not only can they set proper billing expectations by knowing exactly what to expect when moving data around from S3 type to type, but they can also identify key storage metrics to monitor and measure storage costs over time.
We’ve covered strategic ways to reduce S3 billing in the past, so check out that article for tips on lowering the bill. Otherwise, setting up a cloud cost management tool, like Cloudability, is a great way to start monitoring cloud storage usage and costs to identify possible ways to make storage cost-efficient. We have a Free Trial available for AWS users wanting to see this in action.