Prior to the advent of the cloud, costs solely comprised the acquisition and servicing of servers and networking hardware, as well as continuous expenses for things like power, cooling, and facility security. Even creating solid budgets was not very complex, there was not much mystery involved. Budgeting on-site is a reasonably simple process. You decide how much the IT staff can spend on hardware and software, and you create a purchase order to cover that expense. In comparison to on premise budgeting, proper governance in the cloud is significantly more complicated and requires a very different approach. Implementing the appropriate governance is crucial to balancing IT expenses and performance while allowing the technology team to move quickly.

A cloud budget is a financial strategy that projects how much an organization will spend on cloud computing services over a specific time frame. Forecasting and allocating funds for various cloud computing components are considered to be part of cloud budgeting. A cloud budget differs from an IT budget. All expenditures made by the IT department of the organization, including cloud services, are included in the IT budget. A Cloud Budget allots amount for the cloud component of software engineering, which is why it is important to avoid confusing them.

Microsoft Azure provides multiple options such as autoscaling, hybrid benefit, etc to plan cost optimization. But reserving the instances can help save your cloud cost significantly. In this article I talk about two available options for capacity reservation: On-demand capacity reservation and Reserved instances.

Why buy a reservation?

If you have consistent resource usage that supports reservations, buying a reservation gives you the option to reduce your costs. For example, when you continuously run instances of a service without a reservation, you’re charged at pay-as-you-go rates. When you buy a reservation, you immediately get the reservation discount. The resources are no longer charged at the pay-as-you-go rates.

Table of contents:

On-demand Capacity Reservation

On-demand Capacity Reservation enables you to reserve Compute capacity in an Azure region or an Availability Zone for any duration of time. Unlike Reserved Instances, you do not have to sign up for a 1-year or a 3-year term commitment. Create and delete reservations at any time and have full control over how you want to manage your reservations.

Once the Capacity Reservation is created, the capacity is available immediately and is exclusively reserved for your use until the reservation is deleted.

Capacity Reservation has some basic properties that are always defined at the time of creation:

  • VM size - Each reservation is for one VM size. For example, Standard_D2s_v3.
  • Location - Each reservation is for one location (region). If that location has availability zones, then the reservation can also specify one of the zones.
  • Quantity - Each reservation has a quantity of instances to be reserved.

To create a Capacity Reservation, these parameters are passed to Azure as a capacity request. If the subscription lacks the required quota or Azure does not have capacity available that meets the specification, the reservation will fail to deploy. To avoid deployment failure, request more quota or try a different VM size, location, or zone combination.

Once Azure accepts a reservation request, it is available to be consumed by VMs of matching configurations. To consume Capacity Reservation, the VM will have to specify the reservation as one of its properties. Otherwise, the Capacity Reservation will remain unused. One benefit of this design is that you can target only critical workloads to reservations and other non-critical workloads can run without reserved capacity.

Reserved Instances

Azure Reservations help you save money by committing to one-year or three-year plans for multiple products. Committing allows you to get a discount on the resources you use. Reservations can significantly reduce your resource costs by up to 72% from pay-as-you-go prices. Reservations provide a billing discount and don’t affect the runtime state of your resources. After you purchase a reservation, the discount automatically applies to matching resources.

You can pay for a reservation up front or monthly. The total cost of up-front and monthly reservations is the same and you don’t pay any extra fees when you choose to pay monthly. Monthly payment is available for Azure reservations, not third-party products.

How reservation discount is applied

After purchase, the reservation discount automatically applies to the resource usage that matches the attributes you select when you buy the reservation. Attributes include the SKU, regions (where applicable), and scope. Reservation scope selects where the reservation savings apply.

Determine what to purchase

All reservations, except Azure Databricks, are applied on an hourly basis. Consider reservation purchases based on your consistent base usage. You can determine which reservation to purchase by analyzing your usage data or by using reservation recommendations. Recommendations are available in:

  • Azure Advisor (VMs only)
  • Reservation purchase experience in the Azure portal
  • Cost Management Power BI app

Difference between both options

DifferencesOn-demand Capacity ReservationReserved Instances
TermNo term commitment required. Can be created and deleted as per the customer requirementFixed term commitment of either one-year or three-years
Billing discountCharged at pay-as-you-go rates for the underlying VM size*Significant cost savings over pay-as-you-go rates
Capacity SLAProvides capacity guarantee in the specified location (region or availability zone)Does not provide a capacity guarantee. Customers can choose “capacity priority” to gain better access, but that option does not carry an SLA
Region vs Availability ZonesCan be deployed per region or per availability zoneOnly available at regional level