S3 may stand for Simple Storage Service, but many people consider Amazon S3 pricing to be far from simple. And no wonder. Your final S3 costs depend on a bunch of different pieces, including storage use, the amount of outbound data transferred every month and the number of requests made.
Let’s look at your S3 options and the billing associated with each one so you can take the first steps towards getting a handle on your storage spend.
To cover this whole spectrum, Amazon S3 offers six different storage classes, each with different durability, availability and performance requirements:
S3 Standard is the default for many users. It’s designed for data that’s accessed frequently. S3 Standard is the workhorse of Amazon S3. The low latency and high throughput makes it an extremely versatile backbone for many applications.
S3 Intelligent Tiering
Intelligent Tiering uses monitoring and automation capabilities to move data between a frequent-access tier (FA) and an infrequent-access (IA) tier for cost optimization. Intelligent Tiering ensures you’re not paying FA prices for data that isn’t being accessed. While there is a monthly monitoring and auto-tiering fee, there are no data retrieval fees, so you don’t have to worry about unexpected bill spikes if a data access pattern changes.
S3 Standard – Infrequent Access (IA)
S3 Standard-IA is best for storing data that is accessed less frequently than data stored in S3 Standard, but that still requires rapid access when it’s needed. It’s ideal for long-term storage or backups, and it’s often used as a data store for disaster recovery. Its storage costs are lower than S3 Standard, but there are data retrieval charges.
S3 One Zone – Infrequent Access (S3 One Zone-IA)
This Amazon S3 class stores data in a single AWS Availability Zone (AZ). Unlike the other S3 classes, it isn’t designed to be resilient to the physical loss of an AZ due to a major event such as an earthquake or a flood. But if you don’t need the extra protection provided by geographic redundancy, then you can take advantage of prices 20% lower than S3 Standard-IA.
Glacier is intended for very long-term, rarely accessed data. It’s often used for end-of-lifecycle data that can’t be deleted because of compliance and regulatory requirements. There are a few ways to retrieve your data at various speeds, but it can take up to 12 hours to get your data back.
S3 Glacier Deep Archive
Glacier Deep Archive is the lowest-cost option for S3, and is built for long-term retention and digital preservation of data that won’t be regularly accessed. It can be used for backup and disaster recovery, but one of its strongest use cases is for highly-regulated industries that have to retain data sets for regulatory compliance.
To make sure you’re always looking at the current pricing for your region, refer to Amazon S3 Pricing.
The key to managing your storage costs is to pair the right data with the right storage class based on how the data is used. We recommend sorting your data by how frequently it needs to be accessed to figure out whether you need S3 Standard or not. Once you’ve ruled out S3 Standard, you have to figure out whether you should stick with S3 Standard-IA or if you can take advantage of the savings from One Zone-IA and Glacier. If the data can be easily recreated or has redundancy, then S3 One Zone-IA can be a good choice. If the data’s an archive or long-term storage, then Glacier may be your best bet. Focus on how you’re using the data now rather than years in the future. Not sure? S3 Intelligent-Tiering can help by governing your data’s placement in Standard or IA storage.
AWS S3 Storage Management
AWS has a number of tools that let you manage your storage. They include AWS Object Lifecycle Management, inventory, analytics, and object tagging. The last three have costs associated with them.
Using Lifecycle Management to reduce costs
AWS Object Lifecycle Management lets you programmatically configure rules for data deletion or migration between types of S3 storage to help lower long-term storage costs. For example, active data should remain in S3 Standard storage. However, if some data begins to be accessed less frequently, you can automatically migrate that data over to S3 Standard-IA for a cheaper storage rate. S3 Intelligent-Tiering incorporates a similar functionality in a ready-made package.
Object Lifecycle actions are sorted into Transaction Actions (moving data) and Expiration Actions (deleting data). Expiration Actions are free, and while there are no actual costs for using AWS Object Lifecycle Management, there are costs for Transaction Actions, such as transferring data between S3 Standard-IA and Glacier.
Lifecycle Management Tip: Glacier Requests
You can add lifecycle management rules to tell Amazon S3 to transition objects to another S3 class, including Glacier. If you plan to do this frequently, remember that some extra storage is needed to store metadata. Also, remember that there are fees for data retrieval, the retrieval speed, the archive request and a few other options. Take a look at the AWS documentation, Transitioning Objects for more info.
Amazon S3 inventory provides a flat file list of your objects and metadata, and is a scheduled alternative to the Amazon S3 synchronous List API operation. Take a look at the AWS documentation, How Do I Configure Amazon S3 Inventory? for more information.
Billing for S3 Inventory is based on how many objects are listed and priced at $0.0025 per million objects listed.
S3 Analytics Storage Class Analysis
Storage Class Analysis lets you monitor the access frequency of the objects within your S3 bucket in order to move less frequently-accessed storage to a lower cost storage class. Learn more by checking out the AWS documentation: Amazon S3 Analytics – Storage Class Analysis.
S3 Analytics is priced at $0.10 per million objects monitored per month.
S3 Object Tagging
Amazon S3 Object Tagging lets you manage and control access for S3 objects. S3 object tags are key-value pairs applied to S3 objects, and they can be created, updated, or deleted at any time during the lifetime of the object. To find out more, take a look at the AWS documentation, Object Tagging.
S3 Object Tagging is price by the number of tags at $0.01 per 10,000 tags per month.
Using Other AWS Services with S3
AWS has a few other services that provide more options for delivering and using S3 data. Each one of these services has their own systems and pricing that incorporate others AWS services, so we won’t go into their pricing here. But it’s important to know that they’re there and that part of their use can be allocated to your total S3 costs.
AWS Direct Connect
AWS Direct Connect lets you create a dedicated network to access direct ports into AWS data centers at incredible speeds. Direct Connect can be used for all AWS services, including EC2, DynamoDB, VPC and S3. AWS charges per port per hour and by the amount of data transferred.
Amazon Kinesis Data Firehose
Amazon Kinesis Data Firehose loads streaming data into data stores, including S3, Lambda and more. Pricing is based on the volume of data ingested, which is calculated as the number of data records you send to the service times the size of each record rounded up to the nearest 5KB. For example, if your data records are 42KB each, Kinesis Data Firehose will count each record as 45KB of data ingested.
Getting a Handle On Your AWS S3 Costs
As you can see, there are a lot of moving parts to Amazon S3, all of which can unexpectedly drive up your costs. This is where a culture of cloud cost management and the right cloud cost management platform are vital for an organization.
With a solid cost management culture, every member of your team from executive to developer is empowered to take actions that get your more for your cloud investment.