Effective immediately, this new option allows you to buy EC2 capacity for a short duration on a regular basis (daily, weekly, monthly) at a 5-10% discount off of on-demand rates. It’s great news for any organization that’s running periodic compute workloads for short durations that don’t need the full capacity of a Reserved Instance (RIs).
This won’t affect customers with existing RIs. It does, however, represent a new choice in the best way to save on your AWS EC2 usage.
We found the new names a little verbose (“Scheduled Reserved Instances” and “Standard Reserved Instances”) so for the purposes of this post we’ll refer to SIs and RIs.
How are Scheduled Instances Different from Reserved Instances?
To understand how Scheduled Instances (SIs) differ from RIs let’s quickly review what an RI is. Reserved Instances allow you to reserve both resources and capacity. You do this by specifying the type of compute you want for a specific Availability Zone within a region. Remember that an RI is like a coupon — in exchange for a longer-term commitment you get a discount when you run compute that matches specific parameters.
Like an RI, an SI reserves capacity but applies a new dimension: time. You can specify time windows on a daily, weekly, or monthly basis over one year. At this time there are no 2 or 3 year commitments. You are still responsible for actually launching your instance — the SI merely gives you a green light to run compute in a specified window. The fact that you control actually starting the instance is an important distinction from a Spot instance which runs automatically when pricing is accepted.
Similar to RIs you can login to the AWS Console and search for the capacity you need over the schedule you desire. It’s very similar to the way you search for RIs – you search based on platform (Linux, Windows), Availability Zone, and instance type (i.e., r3.2xlarge). The console helps you search dates and times and has a helpful fuzzy search that adds “+/- 2 hours” to hourly searches. Remember, this is just a way to search for capacity — an actual SI must run under a specific (non-fuzzy) time window.
Quick survey of costs
The AWS price list API hasn’t been updated yet with SI prices but a quick survey of the AWS EC2 pricing page confirms what AWS promises: cost savings between 5-10% depending on when you run the workload. An important thing to consider is that the times for running instances are normalized to UTC and essentially line up with the weekends. (Click here for a handy UTC timezone converter)
For example, below are some sample prices for off-peak times (weekend) in the US-West region:
Let’s take a quick example: I want to run a c3.2xlarge every day for 4 hours. I need to consider 5 days of peak pricing and 2 days of off-peak pricing every week. On-demand pricing would be $611.52 and using a scheduled instance would cost $572.62 saving you 6%.
Interestingly, at the time of writing all instance types (for example, r3.4xlarge) were not available so clearly this compute is subject to availability. In typical AWS fashion, we expect them to make more instance types available over time.
When should you choose Scheduled Instances?
Jeff’s post highlighted some common use cases like running financial calculations every weekday or an animation studio doing nightly renders. Other common cases for periodic compute might be dev/test (running nightly complex integration and test builds) or nightly data refreshes that involve querying remote data and ETL. Given the minimum usage requirements (more on that below) SIs are not intended to be used over shorter periods of time for 24 hour use (i.e., extra holiday capacity in November and December).
There is one final aspect of SIs that make them unique commitments and affect your choice to use. Depending on the type of schedule (daily, weekly, monthly) you’re committing to a minimum of 4 hours per day, 24 hours a week, or 100 hours a month of compute for an entire year. For workloads below those thresholds EC2 Spot instances might make sense or possibly Lambda functions.