Azure Reserved Instances and Savings Plans
When it comes to Azure cost optimization, Reserved Instances (RI) and Azure Savings Plans are the primary discount options that can reduce costs by up to 72% compared to pay-as-you-go pricing. This document explains how each works, their differences, and effective strategies for using them.
Azure Reserved Instances
Overview
Reserved Instances (RI) are a purchasing option that lets you pre-commit to specific Azure resources for 1 or 3 years, earning significant discounts compared to pay-as-you-go (PAYG) pricing. Discounts are automatically applied to usage that matches the reservation's attributes (region, SKU, etc.).
Supported Services
Reserved Instances are available for the following major services:
| Service | Maximum Discount |
|---|---|
| Azure Virtual Machines | Up to 72% |
| Azure SQL Database | Up to 55% |
| Azure SQL Managed Instance | Up to 55% |
| Azure Cosmos DB | Up to 65% |
| Azure Blob Storage | Up to 23% |
| Azure Databricks | Up to 45% |
| Azure App Service (Isolated) | Up to 55% |
| Azure Cache for Redis | Up to 55% |
How It Works
Reservation Scopes
The reservation scope defines where discounts are applied.
| Scope | Description | Use Case |
|---|---|---|
| Single Resource Group | Only resources in a specific resource group | Project-specific application |
| Single Subscription | Resources within a specific subscription | Environment-level management |
| Shared Scope | All subscriptions under the same billing account | Flexible enterprise-wide usage |
| Management Group | All subscriptions under a management group | Department or team-level management |
Instance Size Flexibility
For Virtual Machine reservations, Instance Size Flexibility allows discount sharing across different sizes within the same VM family.
- Enabled (default): Discount applies to any size within the same series
- Disabled: Discount applies only to the exact reserved size
Modification and Cancellation
| Action | Conditions |
|---|---|
| Exchange | Can exchange for another reservation of the same service category (e.g., VM to VM) |
| Cancel | Refunds available up to $50,000 USD/year; 12% early termination fee applies |
| Modify | Scope and resource group can be changed at any time |
Azure Savings Plans
Overview
Azure Savings Plans offer flexible discounts in exchange for a committed hourly spend. Introduced in October 2022, they cover a broader range of services than Reserved Instances.
Plan Types
Savings Plans come in two types with different coverage:
1. Compute Savings Plans
The broadest coverage, automatically applying discounts to the following services. Term: 1 year or 3 years.
- Azure Virtual Machines
- Azure App Service
- Azure Functions (Premium plan)
- Azure Container Instances
- Azure Dedicated Host
- Azure Container Apps
- Azure Spring Apps for Enterprise
Software, networking, and storage charges are not covered. Licensing costs can be covered separately with Azure Hybrid Benefit.
2. Savings Plan for Databases
Covers infrastructure and software IP costs for database services. Term: 1 year only.
Eligible services include:
- Azure SQL Database (including Hyperscale and Serverless)
- Azure SQL Managed Instance
- Azure Database for PostgreSQL
- Azure Database for MySQL
- Azure Cosmos DB
- Azure DocumentDB
- Azure Database Migration Service
- SQL Server on Azure Virtual Machines (hourly licenses)
- SQL Server enabled by Azure Arc (hourly licenses)
How It Works
Since committed amounts are charged even if usage falls below them, it is critical to understand actual usage patterns before setting a commitment.
Reserved Instances vs. Savings Plans Comparison
| Dimension | Reserved Instances | Azure Savings Plans |
|---|---|---|
| Maximum discount | Up to 72% (VMs) | Up to 65% |
| Flexibility | Low (tied to specific resources) | High (applies across services) |
| Commitment type | Reserve a specific resource | Hourly spend amount |
| Service coverage | Service-specific (VMs, SQL, etc.) | Broad compute coverage (Compute Plan) |
| Region flexibility | Fixed region or zone | Applies across regions |
| Term | 1 year / 3 years | Compute: 1 year / 3 years; Databases: 1 year only |
| Payment options | Full upfront / monthly | Full upfront / monthly (total cost is the same) |
| Cancellation | Allowed (early termination fee applies) | Not allowed |
| Best for | Stable, specific workloads | Dynamic, diverse compute workloads |
Choosing the Right Option
When to Use Reserved Instances
- Running specific VM sizes or series stably over an extended period
- Continuously using specific PaaS services like SQL Database or Cosmos DB
- Prioritizing maximum discount rates (up to 72%)
- Resource configuration is fixed with low change frequency
When to Use Savings Plans
- VM sizes or series change periodically
- Workloads span multiple regions
- Using a mix of compute services like App Service and Functions
- Need flexibility for future resource changes
Using Both Together
Reserved Instances and Savings Plans can be used together. Microsoft's recommended optimization sequence is:
- Right-size first — Remove unused or oversized resources before buying any discounts. Discounts reduce rates, not waste.
- Exchange underutilized reservations — If workloads changed, reassign existing reservations to better-fit configurations.
- Trade in underutilized reservations for savings plans — When usage is variable, convert rigid reservations into more flexible savings plans.
- Purchase new reservations — Commit only for stable, well-understood workloads where usage and configuration are unlikely to change.
- Purchase new savings plans — Finally, add flexible, spend-based commitments sized to a clean, optimized baseline.
This sequence removes waste first, fixes existing commitments next, and only then adds new commitments — ensuring actual savings rather than theoretical discounts.
Cost Optimization Best Practices
1. Start with Usage Analysis
Before purchasing any reservations, analyze the past 30–90 days of usage patterns.
- Use Azure Cost Management + Billing for cost analysis
- Review resource utilization (CPU, memory) in Azure Monitor
- Classify always-on resources vs. temporary resources
2. Leverage Azure Advisor Recommendations
Azure Advisor analyzes usage patterns and provides cost optimization recommendations.
Azure Portal → Azure Advisor → Cost →
"Buy a reserved virtual machine instance to save money over pay-as-you-go costs"
Advisor recommendations include estimated savings and recommended reservation SKUs to support decision-making.
3. Choose the Right Scope
If you have multiple subscriptions, choosing Shared Scope or Management Group Scope allows more flexible use of discounts. If per-team or per-project cost tracking is needed, use subscription or resource group scope.
4. Combine with Azure Hybrid Benefit
Bring existing on-premises Windows Server or SQL Server licenses (with Software Assurance) to Azure for additional savings.
| Combination | Estimated Savings |
|---|---|
| Reservation only | Up to 72% |
| Azure Hybrid Benefit only | Up to 40% |
| Reservation + Azure Hybrid Benefit | 80%+ |
5. Adopt a Phased Approach
Rather than purchasing reservations all at once, proceed incrementally.
Step 1: Identify and remove unused/oversized resources (right-sizing)
Step 2: Exchange or trade in existing underutilized reservations
Step 3: Purchase reservations for confirmed stable workloads
Step 4: Cover variable compute with Savings Plans
Step 5: Establish a regular review cycle
Before purchasing new Savings Plan commitments, allow at least 7 days after any reservation purchase for Advisor recommendations to update. Recommendations use the lower of the 3-day and 30-day estimates to protect against over-commitment.
6. Regular Review and Optimization
Regularly check reservation utilization.
- Azure Portal → Reservations → Utilization to review coverage
- Consider exchanging low-utilization reservations to other resources
- Evaluate whether new resources can be covered by existing reservations
- Review term and scope at annual renewal
7. Cost Visibility with Tagging
Properly allocate reservation costs by tagging resources.
{
"Environment": "Production",
"Team": "Platform",
"CostCenter": "CC-1234",
"ReservationScope": "SharedSubscription"
}
Tag-based filtering in Azure Cost Management enables cost visibility by department or project.
Azure Cost Management + Billing
Azure Cost Management + Billing is the central tool for cost optimization.
Key Features
| Feature | Description |
|---|---|
| Cost analysis | Visualize costs by resource, tag, and service |
| Budget alerts | Alert notifications against set budgets |
| Recommendations | RI and Savings Plans purchase recommendations |
| Cost allocation | Distribute shared resource costs across teams |
| Export | Periodic cost data export to Blob Storage |
Checking Reservation Coverage
From the Reservations blade in the Azure Portal, you can check the utilization of purchased reservations and the coverage of target resources.
- 100% utilization is ideal (reservation is being fully used)
- Low coverage indicates additional reservation purchases should be considered
Summary
| Action | Expected Benefit |
|---|---|
| Reserved Instances (3-year, full upfront) | Up to 72% cost reduction |
| Savings Plans (3-year) | Up to 65% cost reduction |
| Combined with Azure Hybrid Benefit | Additional 10–40% reduction |
| Deleting unused resources | Eliminate unnecessary costs entirely |
| Right-sizing resources | Resolve over-provisioned resources |
Cost optimization is not a one-time task — a continuous improvement cycle is essential. Regularly review Azure Advisor and Azure Cost Management, and revisit your reservation strategy as workloads evolve.