TL;DR: Amazon S3 offers a service named S3 Intelligent Tiering that has the potential to save you money by shifting S3 objects between various S3 storage classes on your behalf. However, there are accompanying fees and use-cases where this will actually cost you more money. This post helps break down the mechanics of how S3 Intelligent Tiering works in simple terms.
Amazon Simple Storage Service (S3) is one of the most popular services that AWS provides. AWS has made it dead simple for you to push files (which AWS refers to as objects) up to the cloud into namespaces (which AWS refers to as buckets) that allow you to pay for only what you use. Despite its popularity, S3 is one of the most complicated services from a pricing perspective as it charges you on a variety of dimensions including transit costs, the HTTP requests for accessing the service, as well as, the underlying storage utilized. This blog post covers the topic of S3 Intelligent Tiering which has potentially drastic cost saving implications for S3 storage in particular with the ability to save you over 50% depending on your objects' access patterns.
Primer: S3 Storage Classes
Before diving into what S3 Intelligent Tiering is and how it works, you should be comfortable with understanding the concept that S3 offers various different storage types that can be set on a per-object basis. If you're familiar with S3 storage classes you can skip to the next section.
S3 storage classes cover different use-cases offering varying degrees of durability and access performance and, as a result, different pricing. By default all objects are stored in the "Standard Storage" class which happens to be the most expensive storage class. All other storage classes offer varying, lower levels of durability or access performance.
This post won't go in depth on the various S3 storage classes and how they're priced but there is a separate blog post where you can learn more about this written here or you can read brief summaries in the S3 Storage Class section of the Cloud Cost Handbook.
What is S3 Intelligent Tiering?
S3 Intelligent Tiering in simplistic terms is an automated service that AWS S3 provides that will monitor access patterns of S3 objects and change their respective storage classes on your behalf to get you automatic cost savings. Objects uploaded or transitioned to S3 Intelligent-Tiering are automatically stored in the Frequent Access tier which has the same pricing as Standard Storage.
The four storage classes that S3 Intelligent Tiering transitions objects in between are:
- Frequent Access
- Infrequent Access
- Archive Access
- Deep Archive Access
S3 Intelligent Tiering Cost Savings
Now that you understand concepts of S3 storage classes and what intelligent tiering is, the first question is typically, "How much can this save me?" Ultimately that question is answered by three things:
- How much storage you have stored in S3 in standard storage.
- What the access patterns of these objects are.
- How many objects you're monitoring with S3 Intelligent Tiering.
The easiest way to think about possible savings is understanding the relative pricing between the four storage classes that S3 Intelligent Tiering can possibly place your objects in. Below is a table of relative savings percentages to S3 Standard Storage based upon prices in us-east-1:
Ultimately only you know your objects' access patterns. If all of your files are being regularly accessed, you‚Äôre ultimately not going to yield any savings through S3 Intelligent Tiering. If your access patterns are incredibly seldom then over time you can save over 90% on storage costs by leveraging the Deep Archive Access Tier.
The final consideration mentioned above is "How many objects you're monitoring with S3 Intelligent Tiering." For how that impacts potential cost savings, the entire section below covers this.
S3 Intelligent Tiering Fees
S3 Intelligent Tiering has monitoring fees associated with it of $0.0025 per 1,000 objects per month. Note that this fee will occur when you turn on Intelligent Tiering but it will take time for objects to transition from one storage class to another to realize savings. Ultimately your savings rate will be impacted by the number of objects that are being monitored by S3 Intelligent Tiering. To calculate S3 Intelligent Tiering Monitoring Fees, you can use the following equation (with one example) below:
S3 Intelligent Tiering Monitoring Costs per Month = # of objects with Intelligent Tiering / 1000 objects * $0.0025
$2.50 per month = 1,000,000 / 1000 * $0.0025
S3 Intelligent Tiering also has fees associated with transitioning objects from one storage class to another of $0.01 per 1,000 objects. This fee occurs as often as Intelligent Tiering transitions objects from one intelligent tiering class to another. To calculate S3 Intelligent Tiering Transition Fees, you can use the following equation (with one example) below. To estimate your transition fees, take a look at the transition timelines discussed later on in this post.
S3 Intelligent Tiering Transition Costs per Month = # of object transitions / 1000 objects transitions * $0.01
$5.00 per month = 500,000 object transitions / 1000 * $0.01
Note that AWS charges you for transitioning objects into Intelligent Tiering. So even just to transition an object from S3 Standard to S3 Intelligent Tiering, you'll be charged this fee right off the bat.
Net Savings Rate
When you think of your possible "net savings rate" as it relates to S3 Intelligent Tiering you should try and gage how much savings you think you'll yield from having objects transition from one storage class to another but factor in the monthly fee for the number of objects you're having S3 Intelligent Tiering monitor. This can be tricky as S3 Intelligent Tiering fees are based upon the number of objects monitored whereas the potential savings are derived from the storage of the underlying objects.
Using the example figured above, if you had 1,000,000 objects that in aggregate were storing roughly 45TB at a total storage cost of about $1,000 per month and you think half of that storage will transition to the Infrequent Access Tier (half the cost of the frequent access tier), your net savings rates would be:
Net Savings Rate = (Total Costs Before S3 Intelligent Tiering - Total Costs After S3 Intelligent Tiering) - Monthly Tiering Fee - Monthly Transition Fees
$492.50 in monthly savings = ($1000 - $500) - $2.50 - $5.00
S3 Intelligent Tiering Transition Timelines
Timelines for S3 Intelligent Tiering transitions are important to take note of as potential savings will be realized over the span of multiple months. It's very likely for your first month of S3 Intelligent Tiering, your S3 costs will *go up.* Below is a view of these timelines and how long it may take you to realize savings for transitioning objects from one storage class to another.
There are a few final considerations to be aware of when it comes to S3 Intelligent Tiering to level set expectations:
- Depending on file access patterns, you won't save any money. S3 Intelligent Tiering works by monitoring object access patterns. In the event that your files are all regularly accessed within 30 days, they will not shift from one storage class to another and you won‚Äôt realize any savings. In fact, your costs will increase as you'll be paying for the additional monitoring fee for S3 Intelligent Tiering.
- The number of objects being monitored matters. S3 Intelligent Tiering charges you by the number of objects being monitored despite your savings coming from storage of objects being shifted from one storage class to another. If you have a large number of objects with ultimately a small relative amount of storage the fees of monitoring for intelligent tiering may not make it worth it. See the section below on how to see the potential ROI.
- Intelligent Tiering Cost Savings Take Time: It's very likely that your first month of S3 costs will go up should you choose to enable Intelligent Tiering and savings will be realized after multiple months.