This post on how to save money with Azure Reserved instances is part of a 7 part series on cost optimisation with Azure.
Save with reserved instances
Did you say “Save 73% with reserved instances”? I did. In fact, Azure even advertise you can save up to 80% if you combine reserved instances (RI) with Azure Hybrid Benefit (AHB). So what do we mean by reserved instances?
What is a reserved instance?
A reserved instance is a way of reserving capacity in Azure. You are offered a discount by agreeing to a 1 or 3 year commitment. You can choose to pay an element up from to reduce your monthly bill, or you can just pay monthly. Paying monthly does not cost more than paying a portion of the cost upfront so it comes down to a preference for you or your company. Savings are made against compute costs, but not licence costs such as SQL Server Enterprise.
When would I reserve
If you know that you would need an instance for 12 months or longer, it is usually worth taking a reserved instance. A typical scenario for this would be a production SQL Server running in Azure VM or a production SQL Database. If you have a stable workload that you don’t see changing in the near future, reservations are a good bet.
Save with Reserved Instances (Examples)
For this example, you are running SQL Server enterprise on E8s 4s VMs in UK West. You have a cluster of 3 to support your availability groups.
|Reservation||Compute cost||Windows licence cost||SQL licence cost||Total monthly cost|
|Pay as you go||£995.66||£600.66||£4,896.68||£6,493.04|
|1 yr reserved||£587.31||£600.66||£4,896.68||£6,084.65|
|3 yr reserved||£378.25||£600.66||£4,896.68||£5,875.59|
Alternatively, look at the potential savings with Azure SQL DB. In this example, we are looking at a SQL DB, 8 vCore provisioned instance in UK West on General Purpose tier.
|Reservation||Compute cost||SQL licence cost||Total monthly cost|
|Pay as you go||£828.17||£435.11||£1,263.29|
|1 yr reserved||£538.11||£435.11||£973.22|
|3 yr reserved||£372.67||£435.11||£807.78|
I hesitated to put prices on here because they will change more frequently than I can update the blog but it gives you a general idea. For up to date pricing, please always refer to the Azure Pricing Calculator.
Reserved Instance Allocation
Thankfully, you don’t need to specify which instance uses the allocation, it is just available at an hourly grain level. If you have a live instance that matches your reservation, the reservation credits are used for billing. If you drop an instance and you have another eligible instance type, it will automatically uses the allocation. The allocation is on a use it or lose it basis. If you have a reservation but no suitable resource to use the allocation, you lose it. If you have more instances than reservations, you pay on PAYG terms for anything above your reservation levels.
What type of resources can I reserve
As this post is directed at Azure SQL Data professionals; it is worth pointing out Virtual machines, SQL Database, Azure Synapse Analytics and Azure Blob Storage. It’s also encouraging to see discounts available for MySQL, MariaDB and PostgreSQL.
What if my needs change?
Despite being a long term commitment, Reserved Instances are fairly flexible as Microsoft acknowledges that customers’ needs will change from time to time. You can exchange or cancel reservations as your needs change up to limits imposed by Microsoft.