With the seemingly wide variety of pricing models that are offered by AWS, yet another has recently been added to the pile. Up until now, AWS customers have become accustomed to AWS’ flagship On-Demand and Reserved Instance pricing models to satisfy their short term requirements and longer term commitments. For those who have more spontaneous requirements, AWS Spot Instances offer customers a significant discount compared to on-demand rates, but are volatile and can be terminated at any moment, and are not always available. Now, Amazon has come up with a new pricing model that is known as Scheduled Reserved Instances.
What Are They?
Essentially, Scheduled Reserved Instances give you the option to reserve an instance from a certain instance family, size, operating system and Availability Zone, for scheduled time slots on a recurring basis over the course of a year. You can reserve an instance on a weekly or monthly basis, which means it is not a completely reserved instance, but because it can be reserved for particular periods of time, it is useful for repetitive frequent tasks, such as batch jobs over the weekend or MapReduce jobs, for example.
Two different discounts are available with this new pricing model depending on when you reserve a time slot. If your reservation time slot is during Amazon’s peak hours (i.e., weekdays), you can receive a 5% discount on the regular on-demand rate. If you reserve an instance during off-peak hours (i.e., weekends), you can receive a 10% discount on the regular on-demand rate.
Seeing as we specialize in finding ways to optimize cloud spend, we decided to calculate whether or not Scheduled Instances are actually worth your while. We looked at the different pricing options for a sample m4.xlarge machine that runs Linux in us-east-1. The basic on-demand rate for this instance is $0.239 per hour. The Scheduled Instance rate in this case would come out to $0.227 per hour during peak hours and $0.215 during off-peak hours.
Scheduled Instances vs. Reserved Instances
Reserved Instance pricing for the same sample is fixed, more or less, allowing you to choose different payment options. The per hour rate is calculated by how much the instance was utilized over time. At 100% utilization, meaning you used the instance for the entire reservation period, the cost would come out to $0.138 per hour, which translates into a 42% discount on the regular on-demand rate. As utilization decreases, you effectively pay more per hour.
As shown in the table below, we calculated the exact utilization level where Reserved Instances break even with Scheduled Instance rates. That being said, a Scheduled Instance off-peak hour 10% discount would translate into 64% utilization of a full Reserved Instance, and a peak hour 5% discount would translate into 60% utilization of that Reserved Instance over time.
From this analysis, we can conclude that if you have a series of scheduled jobs that run on non-overlapping time slots, and you can build them up to over 60% utilization over time, it may be more worthwhile to buy a Reserved Instance for all of the scheduled jobs.
Scheduled Instances vs. Spot Block Instances
Another option in this scenario is to use Spot Instances, which we know are volatile, as mentioned above, and not very reliable due to the fact that they can be terminated at any point in time. Nevertheless, they offer an 87% discount on the regular on-demand instance rate. Spot Blocks are a softer option for Spot Instances. They offer higher reliability and suit these types of schedule jobs quite well.
Spots Block instances offer predictable behavior for one or six hours with significant discounts. As shown in the table below, continuing with our m4.xlarge instance analysis, if the six hour run time option could support a scheduled job, you would pay $0.176 per hour, which is a 26% discount on the regular on-demand rates. Spot Blocks may therefore be a viable option for scheduled jobs at a better rate than Scheduled Instances, however, there is greater uncertainty when it comes to provisioning the instances because their available capacity isn’t guaranteed. While there is no information about how often provisioning is actually denied due to a lack of capacity, it does need to be pointed out that it’s possible.
What It All Means
We are not suggesting that you do or don’t use Scheduled Instances, we simply wanted to present you with the various AWS pricing options that are available for scheduled jobs. After looking at your own scheduled job patterns and learning about current pricing models, you will be able to better decide which pricing model best suits your needs, and provides you with the best discount and reliability.
These types of pricing models help AWS increase bare-metal infrastructure utilization. In order to support their economies of scale, AWS is expected to encourage utilization during off-peak hours. We’ve seen this with Spot Instances, and we see it again with Scheduled Instances in a more extreme way, where capacity is reserved for specific time slots. By acknowledging that not all users are willing to commit to 100% utilization like some do with Reserved Instances, Scheduled Instances are a sort of partial reservation in order to maximize underlying infrastructure utilization.
Having outlined AWS’ new pricing model, Scheduled Reserved Instances offer either a 5% or 10% discount on regular on-demand instance rates for compute jobs that run during scheduled time slots. While this may seem like a good offering, it’s important to always take a step back and look at the bigger picture of AWS pricing models in order to decide which pricing model is the most appropriate for your situation. While this creates an additional level of complexity, you can make decisions easier with a system like Cloudyn that continuously tracks your usage and utilization. Additionally, Cloudyn keeps you informed about cloud cost optimization opportunities so you can take action, be it with AWS offerings, or in a comprehensive hybrid or multi-public cloud environment.