If you are using Azure Virtual Machines (VMs), you have an option of using Azure Reserved Instance (RI) VMs instead. Microsoft (MS) claims these can help save up to 72% of your spend. While this may be true on the surface, but it will be good to get a deeper view to understand what benefits you really stand to make, if at all. Yes, using reserved instances, doesn’t automatically means cost saving.
It is hence important to understand how this works and plan accordingly to get the right kind of benefit. I will try and point out key things to keep in mind when planning and using RIs.
The reservation cost that is paid upfront, covers the cost of running the reserved VM instance. If you are using additional software on it like Linux or Windows OS, or SQL Database, then these are charged on regular rates as per their consumption units. If a reserved VM consumes more than reserved hours, then the additional hours are charged on regular VM pay-as-you-go rates. You can read up more about RI billing here.
On a simplistic level, note that a RI VM comes into effect from the date time it is purchased. It can consume a maximum of 24 hr in a day (could be lesser on the start and end days, based on time). Given that you have paid upfront for the VM, MS gives discount on the actual VM price and this accumulated over the duration of RI gives net savings.
Let’s work with an example. For ‘Standard_D4_v3 VM – US North Central’, the list price for on-demand VM is $2 (rounded) for 10 hours. For 1 year, this would amount to $1,752 (8,760 hrs. per year). This is the maximum on demand price you would pay, if you were using this VM for the entire year and it was kept running all day long.
Now let’s say that you bought this VM as RI for 1 year. The price paid would be $1,051. If you used this RI VM for 1 year, 24 hr a day, you save $701 i.e. 40% saving. This is the maximum you can save on this kind of VM for 1 year. If you take a 3 year RI, you savings would be higher.
However there are more things to keep in mind. Let’s say that you shut down your VM on weekends. This means your VM is down for 52*2*24 = 2,496 hrs. The up-time is 6,264 hrs. This means an on-demand pricing of $1,253. For the RI VM, whether you run it all the time or switch off on the weekends, you would still have paid $1,051 upfront. The net savings are now down to $202 i.e. 11%.
It is hence easy to understand that if your VM usage isn’t 24 hrs. a day, all days, then you need to factor that in, when trying to work out what your RI purchase should be.
Things get more interesting in case you have corporate discount on your Azure pricing. Let’s say you get a 15% price discount on Azure pricing. This means that your yearly on-demand cost would have been $1,490 (with $1.7 for 10 hrs.). Using this discounted price, if you used the VM with weekends off, your yearly cost would be $1,065 and your VM RI cost would still be $1,051. So the net savings are now down to just $14 for the year, making RI investment almost useless.
Your organizational discounts could vary and individual RI pricing also varies based on what VM(s) you are trying to buy. It could so happen that resulting organizational on-demand pricing (after discount) could be lower than the RI VM pricing. In this case, investing in such a VM is a waste of money, as you would never be able to save on it. It would hence be worthwhile to do calculations based on usage for the year using your applicable price sheet, and then estimate your RI savings, else you may be in for a surprise with regards the savings you are able to make.
If you have any comments on this, I would be glad to discuss further.