Microsoft Azure, like many other cloud service providers, have built their billing and subscription models on a pay-per-use basis, i.e., if you use one hour of CPU time you pay for the hour you have consumed. No more, no less.
This basic economic principle forms the foundation of most public cloud services. However, the implementation of this simple concept can be quite complex and intricate. This is especially true if the cloud provider offers a wide variety of cloud services which utilize computing resources in different ways as is the case with Microsoft Azure.
Azure solutions are built on multiple standalone services
The key concept to understand when determining Azure pricing is that each solution is comprised of a number of different services and building a solution price entails combining the cost of these multiple services.
If we take a web application as an example, it may not only consist of a web app service and a database; it may also include some form of static storage and perhaps need a few advanced networking services. All are priced individually by Azure, so understanding the full scope of the services your solution consumes will help you determine its ultimate cost.
One size does not fit all – Each Azure services is priced differently
Each service on Azure is priced as a measured service. However, not all services use the same set of computing resources, so the hourly cost of each service is calculated differently.
For example, pricing for virtual machines is calculated by summing the individual unit prices for the virtual CPUs, memory, storage, and networking services consumed. Databases, on the other hand, are priced according to what Microsoft terms a Database Transaction Unit (DTU) which is a bundled measure of computing, storage, and IO resources. Storage and backup services measure their costs using GBs consumed.
The point is, each service is priced according to the resources you use on an hourly basis. One size does not fit all, unfortunately, so to price your solution, you should understand the full scope of the services consumed as well as how the cost of each service is calculated by Microsoft.
Azure Pricing Tiers – The more resources used, the more you pay
Over and above the different measures used to determine the cost of each service, each also has different pricing tiers and the price increases as you choose to consume more resources.
For example, virtual machines come in a variety of different preconfigured instances each with its own vCPU, memory, and storage configuration. The more resources the instance you choose consumes, the more you pay. Databases, on the other hand, give you the option to set the number of instances, the type (managed, elastic pool or single database), and the generation. Storage is calculated by the type of storage (blob, file, table, etc.), the level of redundancy you require, and of course, the size.
In essence, this illustrates how each service has its own unique permutation of resources used to calculate the cost per hour and the higher the number of resources used, the higher the cost. If we have multiple services to price, you can start to see how calculating the cost of a solution becomes overwhelming.
Don’t forget pricing for ancillary services
When pricing Azure services, remember to determine the ancillary services your solution uses. This is crucial to figure the overall cost as many solution calculations have failed to take these costs into account at their own peril.
For example, virtual networks carry a bandwidth transfer cost and backups are an additional charge. It is essential that every resource you use for your solution be accounted for up front to ensure there are no nasty price surprises down the line.
Azure Pricing is complex – Use the Azure Pricing Calculator
As we have seen, Azure offers a multitude of different cloud service solutions, each priced in its own way. Also, when we build our costing model, it is essential to itemize each service and understand how the cost is calculated, then choose the right pricing tier while also remembering to add in any ancillary services.
Building an Azure costing model can become overwhelming, but thankfully there are resources and tools available to assist us in getting the information we need. There are multiple pricing resources on the Azure portal which detail how each service is priced, however, the Azure Pricing Calculator is an invaluable resource to understand Azure costs. With this tool, you can itemize each service, choose the appropriate pricing tier, and also add any ancillary services you may need to consume.
Azure cost saving tips
Now that we have discussed how complex and intricate Azure pricing can be let’s take a look at a few ways you can save costs while ensuring your solution is not negatively impacted.
Switch off what you don’t use
Microsoft Azure works on a pay-per-use subscription model so the more you use, the more you pay. To reduce costs, you can deallocate certain types of resources when they are not in use to save money. Shutting down virtual machines which are not in active use is a perfect example. A shutdown virtual machine only incurs storage costs saving you money on the computing resources not in use when the virtual machine is not running.
Azure prepaid subscriptions and alternate regions
Pre-paying for Azure services also has saving benefits as Microsoft has built discounts into the different pre-payment models. In addition, if you have the flexibility to deploy to another Azure region, some services in certain regions cost less than the same service in a more popular or remote region where resources have high demand.
Choose the right pricing tier for your solution
The best way to save money when deploying your solution to Azure is to make sure you pick the right level of resource for the performance you expect. This is the key factor which ultimately impacts cost per hour.
Cloud vs. On-Premise – TCO is a key measure
Hosting your solution on a cloud platform like Azure does come with costs, the intricacies of which have been discussed in this post. You may think that hosting your solution on-premise may be a better option with all the permutations to consider. This is not true. The Cloud is often the right financial choice, and the key here is to understand the Total Cost of Ownership (TCO) of your solution whether you to host it on Azure or on-premise.
To understand Azure’s TCO, it is important to realize that Azure pricing includes the procurement, management, and ongoing maintenance of the underlying hardware, software, and networking infrastructure which hosts these services. On Azure, you do not only pay for the cloud service you consume, but you also pay for the management, maintenance, and security of that service. If you compare hosting a solution on-premise versus hosting it on Azure, it is imperative that you take these management and infrastructure costs into account.
If you host your solution on-premise and accurately compare this cost to Azure, you have to calculate the direct costs associated with managing and maintaining your own hardware and software. You also need to add the inefficiency cost of not utilizing the full resources at your disposal as well as the opportunity cost of investing a large amount of capital which could be put to better use elsewhere in your organization. And it is these indirect costs which swing the balance in Azure’s favor.
If you take the full TCO of an on-premise solution and compare it to the Azure cost for hosting the same service, Azure is usually more cost-effective. It is especially true if we consider the hidden indirect costs which come with hosting solutions on-premise. Why would you want to take on this responsibility if it is not core to your business? Let Azure take care of your IT services while you take care of growing your business.