Late last week, I noticed this blog by Jeff Barr and almost jumped with joy. I am blogging about it today to ensure you don’t miss it as it’s a significant capability in terms of cost reduction for many auto-scaled applications deployed on the AWS platform.
We all know spot instances are brilliant when it comes to saving costs for any workload. The difficulty has always been that you can’t rely on them always being present, the bid process and that they can disappear at very short notice.
For those reasons, they were always used as extra capacity and were typically separate pools of Spot Instances. One had to create logic to direct work to the main On-Demand instance pool but also to the Spot instance pool when it was available. Introduction of Spot Fleet relieved some of that pain but in general, it was a fair amount of work to achieve cost efficiency.
Everyone wanted the ability to combine On-Demand/Reserved with Spot instances so that workloads can run a required amount of resource but also scale up when the cheaper resource is available in form of Spot instances but crucially, without the extra complexity.
Earlier this year, EC2 Fleet was introduced to do exactly that. Suddenly, you could mix On-Demand, Reserved and Spot instances and define the ratio in one launch template. That took away most of the logic work one had to do to redirect work towards different pools of resource and was a major step forward toward saving costs with minimal effort.
EC2 Fleet was great in terms of saving on complexity and cost but one still had to adjust target capacity or delete fleets manually once the resource requirements changed. In other words, it didn’t auto-scale. Still very useful but to realise the dream of having the most cost-efficient deployment with no extra effort, it needed to work in an auto-scaled configuration with all relevant triggers, thresholds and health checks etc.
That’s the news that was delivered last week. Now you can create auto-scaled deployments with a mix of On-Demand/Reserved/Spot instances with pre-determined ratios and priorities and the launch configuration delivers the most cost-effective deployment while remaining within those constraints. If you have bought Reserved Instances for that zone/region and your configuration includes those instances types, the deployment can also utilise those to achieve further costs savings. Tweaks can also be made once the deployment is up if after running for a while, you think the ratio of Spot Instances can be increased, for example.
This is great news and applies to almost any deployment that makes use of auto-scaled infrastructure for its operations. It will result in significant costs savings for most deployments, especially if they scale to many instances.
I believe Cloud Formation is yet to support it (at the time of writing) but that’s normal and should come soon. Once that is available, I believe this capability will make its way into most automated deployments and become the default way to scale cost-effectively.