Azure offers various ways to save money, some of which can be combined to minimise the costs of Azure-based solutions. Over the next few articles, I’ll be discussing some of the different cost-saving options that are available, but first, we need to go over how standard Azure pricing works.
By default, Azure uses a consumption-based, pay-as-you-go (PAYG) pricing model. Under this model, you’re only charged for what you use. Azure uses meters, which I often describe as kind of like how the electric, gas and water meters work in your home. The meters measure usage and at the end of each month, they are read and you’re invoiced the appropriate amounts for what you’ve consumed.
Azure resources tend to fall into one of a few meter types. Some resources only cause the meter to tick up for each second, minute or hour that the resource is “running”, such as Virtual Machines (VMs). When VMs are stopped, the meters for the compute component and any licensing are also stopped.
Other resources cause the meter to tick up as soon as they are deployed, such as Managed Disks which are used by VMs for the operating system disk and data disks. You can’t turn stored data on and off, so these resources keep on incurring a cost for as long as they exist with consumption only stopping if the resource is deleted. The third type of meter measures more traditional consumption such as each gigabyte of data being sent out to the internet – if no data is sent, there is no cost incurred.
Almost all Azure resources are made available in different sizes with related metered unit prices. For example, a VM with 4 vCPU cores costs half as much as a VM with 8 vCPU cores within the same VM family. Many resources are also offered in different performance or capability tiers, such as Standard tier or Premium tier. This provides a lot of choice, allowing resources to be deployed that meet different budgets or requirements.
Some Azure resources also support bursting, which I’ve written about previously. My closing paragraph from that article summarises bursting as “bursting lets you deploy smaller VMs and disks that are aligned your average requirements, rather than your maximum requirements, while still being able to handle short-term demand for increased performance”.
With on-premises IT solutions, the hardware resources were fairly fixed and had to be sized to accommodate peak demand and with consideration for future growth. This often meant purchasing vastly more powerful hardware than was actually required most of the time. You might be tempted to replace on-premises systems like for like with Azure-based ones, but oftentimes this results in resources being under-used. With Azure, you can save money by choosing the most appropriate size and tier of resource for your current needs.
The tier, size and quantity of Azure resources can often be changed very easily and is what is meant when cloud computing is described as being “elastic”. This elasticity when combined with consumption-based pricing offers the flexibility to deploy more accurately sized resources and then adapt them to variations in demand over time. If you need to make a resource bigger, you can. Yes, you will get charged more for it, but make it smaller again later and the price goes back down. Remember, some resources can also be turned off when not needed and stop being charged for altogether. This resizing or powering off and on can even be automated using tools within Azure or from third parties and is another way you can save money in Azure.
In summary, save money by choosing the right size and tier of resource for your needs here and now and then resize them as demands change. However, some services need to be running permanently and have fairly static requirements. For these resources, you may be able to reduce the price in other ways, which I will cover in the future.