How to choose the right reserved instance in Azure
Published May 07 2024 10:00 AM 5,281 Views

What is a reserved instance and why use it?

A reserved instance is a way to prepay for a certain amount of compute usage in Azure for a fixed period of time (either one or three years [1]), at a discount. By doing so, you can save up to 72% compared to the pay-as-you-go (PAYG) price, depending on the type and size of the instance. Reserved instances are ideal for workloads that have predictable and consistent usage patterns, such as production environments, databases, or web servers.

 

While Reserved Instances offer a cost-effective solution for consistent workloads, it's important to understand the flexibility and limitations they present. Currently, you can cancel reservations with no penalty fee, subject to a cap of $50,000 per 12-month period. However, there might be an upcoming 12% cancellation fee for canceling reservations [2]. Additionally, virtual machine reservations are not limited to a single product; Instance Size Flexibility allows you to apply your reservation to any virtual machine within the same flexibility group, enhancing adaptability to changing needs [3]. However, this flexibility is exclusive to VM instances.

 

For non-compute resources like SQL databases, reservations remain exchangeable, providing further versatility. The introduction of Microsoft's Savings Plan for Compute presents an even more flexible option, allowing for significant savings without the rigidity of traditional Reserved Instances [4].

 

It's also crucial to note that while SLAs are not inherently included with Reserved Instances, they don't typically influence the purchasing decision as customers do not generally expect SLA coverage from them. Instead, the focus is on the cost benefits provided.

Moreover, existing discounts on Pay-As-You-Go (PAYG) pricing through a Microsoft Azure consumption Commitment (MACC) need careful consideration, as these may overlap with Reserved Instance discounts, which do not stack [5]. Customers must evaluate their current PAYG discounts against the potential savings from Reserved Instances to make an informed decision. This comprehensive approach ensures that customers can maximize their investment while maintaining the flexibility to adapt to evolving business requirements.

 

Therefore, before you decide to buy a reserved instance, you need to carefully evaluate if this is the right solution for your needs, and if you can get the most value out of it. In this article, we will guide you through the steps you should take to make an informed decision, and provide you with some tips and best practices along the way.

 

Step 1: Evaluate if this is the right solution

The initial step involves evaluating whether your workload is appropriate for a reserved instance. This assessment is influenced by various factors, including the product type, usage pattern, scalability needs, and your application's design.

 

A prevalent issue that many businesses encounter is that their cloud applications, designed or migrated by external partners, may not be optimized for the cloud environment. For instance, they may have merely rehosted their applications, which entails transferring them from on-premises servers to cloud-based virtual machines (VMs) without altering the code or architecture. This could lead to overprovisioning, underutilization, or subpar performance of the cloud resources.

 

However, it's important to note that refactoring, which involves modifying applications to leverage cloud-native features and services, is just one approach to rationalizing your digital estate [6]. The Cloud Adoption Framework mentions five strategies for rationalization, often referred to as the "Five R's": Rehost, Refactor, Rearchitect, Rebuild, and Replace [7].

 

In our example, we focus on refactoring. This could involve using containers, serverless functions, managed databases, or Platform as a Service (PaaS) offerings. The result could be reduced costs, improved efficiency, or enhanced scalability of your cloud resources. For instance, instead of using a VM with SQL Server, you might find it beneficial to use Azure SQL Database, a fully managed and scalable relational database service. Or, rather than using a scale-up design (increasing the size of your VMs to handle more load), you might benefit from a scale-out design (adding more VMs to a Virtual Machine Scale Set (VMSS), a group of identical VMs that can automatically scale up or down based on demand).

 

Ultimately, it's crucial to ensure that you choose the right product and configuration for your needs over the next one to three years, and that you're not paying for more than what you need. This involves collaborating with your partner or internal solution architects to review your application design and identify any opportunities for optimization or modernization. You should also consider your application's future plans and roadmap, and how they might impact your cloud resource needs. Remember, refactoring is just one way to do it, and the best approach depends on your specific circumstances and requirements.

 

Step 2: Monitor and right size

The second step is to monitor and right size your cloud resources, based on their actual usage and performance. This will help you avoid wasting money on unused or underused capacity and ensure that you are getting the optimal level of service for your workload.

 

To do this, you can use Azure Advisor, which is a free tool that provides personalized recommendations for improving your cloud resource utilization, security, reliability, and performance [8]. Azure Advisor analyzes your resource configuration and usage data, and suggests actions that you can take to optimize your cloud resources. For example, it can help you identify VMs that are running consistently low on CPU or memory, and recommend resizing or shutting them down. It can also help you identify VMs that are not using the latest generation of hardware and recommend upgrading them to benefit from better performance and lower costs [9].

 

However, it's important to note that Azure Advisor does not analyze every resource type for right-size recommendations. It is focused mostly on VMs/VMSS. For the products Azure Advisor does not provide right-size recommendations, customers should look at the Azure Monitor metrics for those resources and assess whether they are being used in an optimal manner. Additionally, Azure Advisor also provides reservation recommendations, which can help you determine what Azure reservation you should purchase.

 

You should also monitor your usage patterns, and see if they vary over time [10]. For example, is your workload running 24/7, or does it have peak and off-peak hours, days, or seasons? If your workload is not running continuously, you may benefit from using Azure DevTest Labs, which is a service that allows you to create and manage development and test environments in the cloud and automate policies and schedules for starting and stopping your VMs [11]. This way, you can save money by only paying for the VMs when they are in use, and avoid paying for them when they are idle. However, this option is not suitable for customer-facing or business-critical applications, which need to be always available and responsive.

 

Step 3: Check if you can actually reserve the product

The third step is to check if you can actually purchase a reserved instance for the product and configuration that you want. Not all Azure products and services are eligible for reserved instances, especially those that are in preview or have dynamic pricing. You can review the Azure pricing page or the Azure pricing calculator to see if the product you want is available for reservation, and what are the options and prices for different terms, regions, and sizes [12].

GregorWohlfarter_2-1714123758619.png

You should also check if you have any internal policies or restrictions that may limit your ability to deploy and purchase a reserved instance [13]. For example, some enterprises may have a list of allowed SKUs, which are the specific identifiers of the products and configurations that they can use in the cloud. If your desired product or configuration is not on the list, you may need to request an exemption or an update to the policy, before you can proceed with the reservation. Otherwise, you may encounter errors or delays when trying to deploy or purchase the reserved instance.

 

It's important to note that Azure Advisor provides reservation recommendations, which can help you determine what Azure reservation you should purchase. Additionally, you can refer to the official documentation for a list of products available for reservation purchase and the eligible Azure offers.

 

When evaluating the potential savings from purchasing a reservation, carefully consider any existing discounts on Pay-As-You-Go (PAYG) pricing through a Microsoft Azure Consumption Commitment (MACC). MACC discounts apply to PAYG prices, while discounts provided by Reserved Instances (RI) are usually fixed. Customers must evaluate their current PAYG discounts against the potential savings from Reserved Instances to make an informed decision. This approach ensures that customers can maximize their investment while maintaining the flexibility to adapt to evolving business requirements. However, this only applies to large enterprises with big commitments. Many SMEs might benefit in most cases from the RI discount provided for a 1-year term. Customers can choose to pay monthly or upfront, it's up to them. There is no additional discount for paying upfront.

 

Step 4: Calculate the break-even point

The fourth step is to calculate the break-even point, which is the point in time when the reserved instance pays for itself, compared to the PAYG price. This will help you understand how long you need to use the reserved instance to get the full value of your investment, and if it makes sense for your workload and budget.

 

To calculate the break-even point, you can use the following formula:

 

Break-even in months = Reserved instance price / PAYG price

 

For example, suppose you want to buy a reserved instance for a D2s v3 VM in the East US region, which has 2 vCPUs and 8 GB of memory. The PAYG price for this VM is $0.096 per hour, or $70.08 per month. The reserved instance price for a one-year term is $470.88, or $39.24 per month. Using the formula, we get:

 

Break-even in months = $470.88 / $70.08 = 6.72

 

This means that you need to use the reserved instance for at least 6.72 months, or about 7 months, to break even with the PAYG price. If you use it for longer than that, you will start saving money. If you use it for shorter than that, you will lose money.

 

Step 5: Evaluate your backup and failover strategy

The fifth and final step is to evaluate your backup and failover strategy, and make sure that you have the appropriate level of protection and resilience for your workload. This includes having backups in place for your running instances, in case of data loss or corruption, and having a disaster recovery plan in place, in case of a regional outage or a service disruption.

 

For backups, you can use Azure Backup, which is a service that allows you to create and manage backup policies and schedules for your VMs, and restore them to a previous point in time, if needed [14]. You can also use Azure Site Recovery, which is a service that allows you to replicate your VMs to another region or availability zone, and fail over to them in the event of a disaster [15]. You can also use Azure Site Recovery to test your failover scenarios, and verify that your workload can run smoothly in the secondary location.

 

For disaster recovery, you should consider the availability and reliability requirements of your workload, and choose the appropriate design and configuration for your VMs. For example, if your workload is business-critical, you may need to have an active-active configuration, which means that you have two or more instances of your workload running in different regions or availability zones, and load balancing the traffic between them. This way, you can ensure that your workload is always available and responsive, even if one of the locations fails. However, this also means that you need to purchase reserved instances for both locations, and synchronize the data and the configuration between them.

 

Alternatively, you may have an active-passive configuration, which means that you have one instance of your workload running in the primary location, and another instance in the secondary location, but only the primary one is receiving the traffic. This way, you can save money by only paying for the reserved instance in the primary location, and using the PAYG price for the secondary one. However, this also means that you need to have a mechanism to switch the traffic to the secondary location, in case of a failure, and that you may experience some downtime or performance degradation during the failover process.

 

It is important to note that depending on your reliability and security requirements, you may need to purchase additional reservations. It is possible to buy Reservations for Azure Backup to optimize costs for Azure Backup Storage with reserved capacity. Another perspective to consider is the need to ensure capacity is available on the secondary location when failing over. A good segue way to refer to On-Demand Capacity Reservations and the need to buy RIs to make Capacity reservations cheaper [16]. For more information, please refer to the official documentation where these options are better described.

 

The bottom line is that you need to balance the trade-offs between cost, availability, and performance, and choose the best option for your workload and your business objectives. You should also review the Azure SLAs for the products and services that you use, and understand the guarantees and the limitations that they provide. You should also consider purchasing additional SLAs for availability, performance, or support, if you need a higher level of service or assurance.

 

Conclusion

In this article, we have discussed the steps that you should take before purchasing a reserved instance in Azure, and the factors that you should consider to make the best decision for your workload and your budget. We have also provided you with some tips and best practices to optimize your cloud resource utilization, security, reliability, and performance. We hope that this article has been helpful and informative, and that you have learned something new and useful. If you have any questions or feedback, please feel free to contact us or leave a comment below. Thank you for reading, and happy cloud computing!

 

References

[1] Azure Reserved Virtual Machine Instances | Microsoft Azure

[2] Self-service exchanges and refunds for Azure Reservations - Microsoft Cost Management | Microsoft Le...

[3] Virtual machine size flexibility -Azure Reserved VM Instances - Azure Virtual Machines | Microsoft L...

[4] What is Azure savings plans for compute? - Microsoft Cost Management | Microsoft Learn

[5] Track your Microsoft Azure Consumption Commitment (MACC) - Microsoft Cost Management | Microsoft Lea...

[6] Rationalize the digital estate - Cloud Adoption Framework | Microsoft Learn

[7] Cloud rationalization - Cloud Adoption Framework | Microsoft Learn

[8] Introduction to Azure Advisor - Azure Advisor | Microsoft Learn

[9] Reduce service costs using Azure Advisor - Azure Advisor | Microsoft Learn

[10] Azure Monitor overview - Azure Monitor | Microsoft Learn

[11] What is Azure DevTest Labs? - Azure DevTest Labs | Microsoft Learn

[12] Pricing - Windows Virtual Machines | Microsoft Azure

[13] Azure Policy definitions deny effect - Azure Policy | Microsoft Learn

[14] What is Azure Backup? - Azure Backup | Microsoft Learn

[15] About Azure Site Recovery - Azure Site Recovery | Microsoft Learn

[16] On-demand Capacity Reservation in Azure - Azure Virtual Machines | Microsoft Learn

20 Comments
Version history
Last update:
‎Jul 17 2024 07:07 AM
Updated by: