AWS Cost-savings: Savings Plans & Reserved Instances for Windows Instances
I was recently explaining to customers the cost savings available with AWS Savings Plans (introduced November 2019) and Reserved Instances for their Windows EC2 instances. The Windows license cost makes for interesting (and disappointing) differences in percentage savings compared to standard Linux VMs.
With up-front payment, you have to pay for the license cost as well as the compute, but only save on the compute (e.g. the 24% saving you might expect with Linux is more like 13% saving with Windows). It therefore requires to pay a lot more upfront for a smaller saving, which can change the business calculations considerably.
Let’s explain some of the terminology, and unpack that: how do cost savings compare, when is it worth while, and can we avoid paying licenses upfront?
Terminology
AWS Reserved Instances is a discount model where you commit to using a certain amount of a given type of instance for a one or three year period. Think of it as a discount coupon that applies to instances with specific predefined properties. It doesn’t just apply to a “single instance”, but instead is deducted from your bill based on the 24/7 usage of instances of that type.
AWS Savings Plans is a discount model where you commit to spending a specific amount (measured in dollars per hour) of compute power over a one or three year period. All usage up to that amount will be covered by the Saving Plan, and anything past it will be billed at the On Demand rate. Importantly you can change your mind about OS (e.g. Windows vs Linux) with your purchased savings plan applying to both.
Savings Plans give you a lot more flexibility compared to Reserved Instances, but Reserved Instances give a bigger overall saving - the right choice therefore depends on your use-case.
Price Comparison
Comparing the Reserved Instance pricing for Linux and Windows VMs in eu-west-1 (Ireland) for an m5.large instance:
on-demand (1-year) | 1-year RI (all upfront) | ||||
OS | per hour | total | total | $ saving | % saving |
Standard Linux | $0.107 | $938 | $551 | $387 | 41% |
Windows | $0.199 | $1,744 | $1,357 | $387 | 22% |
RHEL | $0.167 | $1,464 | $1,077 | $387 | 26% |
And similarly comparing the EC2 Instance Savings Plan pricing for Linux and Windows VMs in eu-west-1 (Ireland) for an m5.large instance:
on-demand (1-year) | 1-year SP (all upfront) | ||||
OS | per hour | total | total | $ saving | % saving |
Standard Linux | $0.107 | $938 | $710 | $228 | 24% |
Windows | $0.199 | $1,744 | $1,517 | $228 | 13% |
RHEL | $0.167 | $1,464 | $1,236 | $228 | 16% |
The amount saved in dollars is identical for Linux vs Windows, because you only save on the compute - you don’t save on the license costs even though you pay the full whack upfront.
When is a Saving Worth It?
The decision for whether to commit depends on a number of factors beyond just whether I think I’ll run instance(s) like that 24/7 for the next year.
Considerations include:
- Does my company have the cash and budget to pay upfront (or partial upfront)?
If not, I could pay “no upfront” for a smaller saving (i.e. spreading the costs over the 12 or 36 months). For example, no upfront 1 year Savings Plan would give 20% and 11% saving compared to on-demand for Linux and Windows VMs respectively. - What else would my company do with that capital?
Could we invest it for a higher return elsewhere? (The no upfront cost comparison applies here as well). - What is the likelihood of my requirements changing?
There are many external factors that could change whether I still want instances of that type. For example, Covid-19 has changed business requirements in unforeseeable ways; my application may change massively in response to other market drivers or optimisations. Also AWS may release a new and better instance type that changes the maths.
For (3) in particular, the bet we’re placing when buying a Savings Plan or Reserved Instance is very different for a Windows VM: the cost is higher and the percentage saving is lower.
Can we Avoid Paying Licenses Upfront?
Ideally we’d like to avoid paying the licence costs upfront (do AWS really pay Microsoft or RedHat up-front for the full year of license cost?!). However, AWS don’t offer us any such option.
This makes Bring Your Own License (BYOL) feel more appealing. However, the conclusion there isn’t satisfying: if you already own sufficient Windows Server licenses, you should be using BYOL already rather than paying twice; if you don’t own licenses already, then for most people it won’t save you money buying licenses direct from Microsoft - you’ll likely have to pay Microsoft upfront and their licensing is complicated!
For details on Windows licensing, it’s best to read the analysis of experts in that field - there’s a great writeup on Virtually Inclined, and also see the AWS documentation on BYOL. This talks about the huge changes that were introduced in Windows 2016, the need for License Mobility Rights that come with Software Assurance, and much much more.
About me and Cloudsoft
I’m VP of Engineering at Cloudsoft, an AWS Advanced Consulting Partner and AWS Well-Architected partner. We love doing Well-Architected reviews as a great way to deep-dive into all aspects of your application architecture, including cost savings best practices and recommendations.