What is Microsoft Azure?
Microsoft Azure is Microsoft’s public cloud computing platform. It provides various cloud services such as computing, analytics, storage, cloud networking, and industry-leading cloud security solutions such as Azure Active Directory (AD) and Azure Defender.
When customers subscribe to Azure, they have access to all services included in the Azure portal. Subscribers can use these services to create cloud-based resources such as virtual machines (VMs) and databases.
In addition to the services Microsoft provides through the Azure portal, many third-party vendors provide software directly through the Azure Marketplace. This complexity makes Azure cost optimization a difficult, but important, discipline for any company that invests in the cloud.
Azure Pricing Concepts
In most cases, you are billed for services on a pay-as-you-go basis. In other words, you’ll receive monthly invoices with a charge for the time your organization used specific resources, measured in minutes or seconds.
Fees charged for third-party applications vary widely, but in addition to third-party subscription fees, you may also be charged for the infrastructure used to host the applications.
Pay as you Go
When using this model, payment for compute resources is charged by the second, with no long-term commitment or upfront payments. You can increase or decrease computing power as needed and pay only for what you use.
This model is best suited for workloads that require high flexibility—short-term or unpredictable workloads that cannot tolerate downtime—or dev/test environments.
Azure Reserved Virtual Machines are pre-purchased for a term of one or three years in a specific region. In return for the long-term commitment, you can save up to 72% compared to pay-as-you-go pricing. If you don’t need a Reserved VM, you can exchange it for another instance or return it, paying an exit fee.
This model is best suited for workloads with stable load, workloads that need high budget predictability, and resources anyway expected to run in Azure for the long term.
Azure lets you buy unused computing capacity at a significant discount of up to 90% compared to pay-as-you-go rates. However, spot VMs can be interrupted with only 30 seconds’ notice if Azure needs to reclaim capacity.
This model is suitable for applications that can be interrupted with no significant impact, non-critical applications, or applications that have built-in fault tolerance.
Azure Cost Optimization Best Practices
The following best practices can help you optimize Azure usage to save costs.
Azure Cost Management Tools
Azure Cost Management is a free tool that provides advanced analytics that show your organization’s cost and usage patterns. At a basic level, it shows usage-based costs for Azure services and third-party marketplace products.
Pricing shown in Cost Management is based on prices negotiated by the organization and takes into account VM reservations and Azure Hybrid Benefit discounts. For third-party offerings, it shows the current Azure Marketplace pricing.
These reports help you understand your spending and resource usage and can also help spot anomalies in spending. Azure Cost Management also provides predictive analytics to forecast future costs based on historic trends. Cost Management uses Azure management groups and budgets to help you structure your costs and provides recommendations for optimizing Azure resources to reduce costs.
You can integrate cost data with external systems by exporting billing data or using the Azure Cost Management APIs. Automatic billing data export and reservation reporting are also available.
Estimate the Cost of Your Solution
Evaluate the cost of a solution before deploying it on Azure. This can help you plan your budget ahead of time. You can then use this budget to validate the estimate over time and ensure that actual costs are as expected.
Azure provides two tools that can help you estimate the cost of deployment scenarios on Azure:
- Azure Pricing Tool—lets you select different combinations of Azure services and get an estimated cost. There are several options for any solution you deploy in Azure. The pricing tool lets you check the expected cost of each option and make an informed decision.
- Azure Migration—Azure Migrate is a service for assessing workloads in an on-premises datacenter and helps you automatically migrate them to Azure. As part of the assessment of on-premises resources, the tool provides estimates of the Azure VMs or other resources needed to support the same application in the cloud.
Optimize Azure SQL Database Costs
Azure SQL Database is the cloud version of Microsoft SQL Server. When creating an Azure SQL Database, you need to choose a performance tier. Each tier provides a certain level of performance measured in database transaction units (DTUs) or virtual cores (vCores).
For a stable database load, you can easily optimize by choosing a tier size that fits your performance requirements. But if there are unpredictable bursts or spikes in database activity, you can use the elastic pools feature to conserve costs.
Azure SQL Database elastic pools help you manage and scale multiple databases with varied and unpredictable usage requirements. Databases in an elastic pool reside on a single Azure SQL Database server and share a fixed number of resources at a fixed price. Pools are suitable for multiple databases with diverse, volatile usage patterns. The assumption is that while some databases experience high loads, others will have lower than average loads.
The more databases you can add to the pool, the more money you can save. This is a highly effective way to spread costs across multiple databases.
Apply Tags to Identify Cost Owners
Tags allow you to manage costs associated with different groups of Azure products and resources. You can organize your billing data by tagging Azure resource groups. Tags are an important way to create accountability, by specifying that certain resources in Azure belong to a specific cost center, department, business unit, or project.
For example, if you are running multiple VMs per team, you can use tags to categorize costs for the VMs belonging to each team.
Another advantage of tagging is that it makes it easy to identify the most expensive groups of resources, identifying who are the “big spenders” and discussing possible optimizations with that team.
In this article, I explained the basics of Azure pricing, and provided several best practices that can help you optimize your usage of Azure resources to conserve costs:
- Use Azure cost management tools – Azure provides free tools that can help you forecast Azure costs on Azure and identify opportunities for cost savings.
- Estimate the cost of your solution – before deploying new solutions, use the Azure pricing calculator to check different options and identify the most cost-efficient option.
- Optimize Azure SQL Database costs – leverage the service’s variety of deployment options to find the most cost effective and take advantage of database pools if possible.
- Apply tags to identify cost owners – use Azure tags to create accountability and apply department budgets to your Azure resources.
I hope this will be useful as you improve the return on your investment in the Azure cloud.