We get a lot of questions about how to accurately estimate Azure workloads (Virtual Machines, Storage, Networking, etc.) and a constant sticking point are the Storage Transactions aka Data Access Fees for Virtual Machines in Azure.
Today, I'm going to run through some numbers relating to just the Storage Transactions related to Azure Virtual Machines (Page Blob and Disk) to help you get a better understanding of how to estimate this.
What are storage transactions?
Every single block access to Azure Storage incurs a transaction towards your billing. The default block size is 4 Megabytes, meaning uploading a 32Mb file will incur 8 Storage Transactions. Deleting the file will also incur 8 transactions, so will updating it, and any other time the file is touched. The transactions are charged at a cost of around $0.00046 AUD per 10,000 transactions. Our 32Mb file will cost us $0.000000368 AUD.
Now we have a rough idea of what a Transaction is, and how much it costs. Great. So how do we estimate this? How do we measure transactions on-premise? All really frequent and really good questions. But before we get too deep down the rabbit hole, lets look at the numbers.
Here are the numbers
I recently took the top 100 customers (by Storage Transaction cost) using Azure in the Cloud Solution Provider program with rhipe, across a number of rhipe partners for a single months worth of billing.
Here is what we have:
147 Virtual Machines
217 Tbytes of consumed storage
3,164,520,000 Storage Transactions
$218 AUD Total billed per month
There we have it, an average of $1.48 AUD per Virtual Machine. The highest per Virtual Machine clocked in at $2.53 AUD and the lowest was just a few cents.
No Transaction Costs for SSD Storage
The only exception to Storage Transactions is when Premium Storage (persistent SSD storage) is used. That is, when you provision a P10, P20 or a P30 disk for your Virtual Machine those disks are exempt from Storage Transactions.
Storage Transactions are probably the hardest thing to estimate. Mainly because it is difficult to measure what we are currently consuming, let alone predict the usage patterns of our users. It is just something we've never had to consider. However, these costs are fairly negligible in the greater scheme of things.
Our resources can be better allocated to ensuring that we use Azure in a cost effective manner, monitor performance efficiently, and looks for ways to reduce our management overheads and risks.
A really detailed blog post from Microsoft can be found here.
By Andrey Korenkov, Partner Enablement Specialist, rhipe
About the author
Andrey Korenkov is a Strategy and Enablement Specialist at rhipe delivering partner transformation through the strategic implementation of Microsoft cloud technologies. Andrey has seven years of experience in Microsoft cloud technologies working with Microsoft enterprise licensing, service providers and channel partners. He is driven to help rhipe partners adopt and deliver new cloud technologies while ensuring they are minimising risk and reducing their administrative headaches.