Most infrastructure architects can clearly detail their on-premises capability or requirements, often accompanied by a Visio diagram. Defining a Cloud version of that same capability can be a little trickier. With services in the Cloud charging on a "Pay as you go" model, there's a nervousness to calculate Cloud spend accurately, keeping in mind your organization's operational expenditure budgets. This may not be a one-off cost you're funding as a project – it may be a long term commitment to a monthly spend.
The good news is that your Cloud spend isn't locked in - it's flexible and will be adjusted as you adjust your workloads. There are a few tools to help you manage your costs once you are up and running, but the first experience that most people have with Microsoft Azure costs involves the Azure Pricing Calculator.
This article won't walk you through the point and click details of the calculator, but it will give you an understanding of the different components. So let’s start with a typical scenario - you have an ageing server which is experiencing performance issues due to an increase in the number of users and replacement parts are getting harder to source. You're looking at what the ongoing cost would be to deliver this workload from Azure, instead of buying new hardware.
Pricing a Windows Virtual Machine
Adding a Virtual Machine to the pricing calculator will present you with a few decisions to make, some of which will influence the estimated cost. Picking a Region (geographical location of the Azure data center), an operating system and a type (if you want to add BizTalk or SQL) is fairly self-explanatory. Just note the virtual machine pricing includes the operating system license.
The next decision is which Tier - Basic, Low Priority or Standard?
Standard is the default tier, while Basic and Low Priority are cheaper options. This cost reduction comes with some functionality trade-offs. Basic VMs do not include the ability to do load balancing at the network port level, use automatic scaling or use Azure Disk Encryption. The machine sizes that support Basic tier also have a lower maximum spec than Standard tier sizes, and lower max disk IOPS.
Low-priority VMs can be used in a set with other machines, but these take advantage of unused capacity in Azure and can be stopped & deallocated at any time. This can be ok for a test/sandbox server or something that processes data with no time constraints.
Choose your Instance
Now you need to break away from the traditional "pick and mix" of server hardware configuration, as you're not going to individually select the CPU Cores, RAM and temporary storage. Common combinations of these are packaged together as an instance, and instances are grouped into a Series. So, a D series machine configuration known as D2 v3 will have 2 vCPUs, 8GB of RAM and 50GB of temporary storage, at a cost of USD$0.209 per hour.
To understand the list of instances that you're presented with, the series range from A Series (Entry-level, economical VMs for development and testing), right up to N Series (GPU enabled virtual machines for simulations, deep learning, graphics rendering and video editing).
Unless you have an Enterprise Agreement or buy from a Cloud Solutions Provider, your default billing option will be Pay as you Go. Here, your actual monthly spend is taken out of your credit card. For EA and CSP options, scroll down to Licensing Program under Programs and Offers.
Reserved instances are a way to commit to 1 year or 3 years of services, for a discount. And with Azure Hybrid Benefit, you can apply a Windows Server License you already own, to this VM, to further reduce the running cost, as long as that license currently has Software Assurance.
The VM price will automatically calculate at 730 hours, to give you a monthly cost. If you plan to only use this sporadically or to shut it down every day after business hours, you can tweak that hour figure.
Managed OS Disks
You'll want to add 1 managed operating system disk and choose if a standard disk is sufficient, or if you want the extra performance of a Solid State Drive (SSD). Your storage transactions are estimated but will be charged as actuals. A transaction is generated when data is uploaded, accessed or deleted, which can be hard to estimate, but at a cost of USD$0.0004 per 10,000 transactions this isn't likely to contribute to a major cost blow out.
Microsoft offers a few pricing arrangements for people looking to develop or test a concept in Azure. Turn that toggle on to adjust the pricing based on one of the current offers, which you can find listed here: https://azure.microsoft.com/en-au/pricing/dev-test/
So, what's missing?
You might have noticed that we have one disk for the operating system and some temporary storage. That may be fine for testing but what if we want a dedicated disk for application data? Then we need to scroll up to the top of the calculator and add some Storage. That's a whole other topic to get into, explaining the various storage options we can select, estimate and vary. For now, you can check out an overview at https://azure.microsoft.com/en-us/pricing/details/storage/
Public IP address
By default, our VM pricing will include a dynamic IP address that can be used within the Azure network and can communicate outbound to, but not inbound with, the Internet. If you want to add a public IP address, scroll up to the Networking section of the calculator and select IP Addresses. For IP address pricing explanations, see https://azure.microsoft.com/en-au/pricing/details/ip-addresses/
The first 5GB of data transfers is free within each Zone (a collection of your closest regions). Above that, you'll be charged for the network traffic you incur. To add a larger network traffic requirement, scroll to the top of the calculator and select Networking, then Bandwidth. For guidance on bandwidth pricing, visit https://azure.microsoft.com/en-us/pricing/details/bandwidth/
A complete solution
We’ve focussed on just a virtual machine here, but the calculator lets you add other Azure resources to build out a complete solution. Perhaps the case you are architecting for requires several VMs, an Azure SQL instance and a storage blob, or even some Azure Functions or non-Windows VMs. Keep adding into the calculator to see the full pricing picture.
Finally, you can export or share these estimates, or save them to tweak or finish later.
Accurate estimating of your Cloud spend is a great skill to develop, whether you're standing up a short-term testing workload or you're looking to move production capabilities longer-term. Explore the various options in the pricing calculator and see how affordable Cloud computing can be.