🚨 Azure Disk Billing per IO
Azure disks have an interesting billing model:
- Standard HDDs have a cost per IO operation ($0.0005 per 10k).
- The most you can spend on this is around 50% of their disk cost, assuming you utilize 100% of the IOPS at all times.
- Standard SSDs have a similar extra cost, but that one has a spending cap
- The spending cap is again around 50% of cost but it takes much less utilization to reach it (10-30% of max IOPS).
- Premium SSDs have no usage cost
We currently assume the worst case and bill as if the maximum amount of the extra IO spend is used. This was simplest to implement and we wanted to ship something (let's go champ)
When does this matter?
In non-tiered storage deployments.
This currently penalizes deployments costs a bit by increasing disk costs and can be a tad inaccurate. But because it's capped at 50% of disk cost, and you're likely always going to use a fair amount of IOPS - it's erring on the accurate side.
Perhaps the most penalized deployments are very large Azure deployments that don't use tiered storage and have a high retention time.
It's at that point where disk costs will dominate, very large disks will be deployed due to the need to store - but the IOPS utilization will be low.
Running the numbers, I see that the difference can be staggering - around 25% of cost!
AKalculator deploys 92 nodes with s70 disks.
AKalculator gives you a disk cost of $69,413.50
per month.
The calculator assumes a per-broker IOPS usage of ~33. An s70 can support 2000 IOPS and AKalculator assumes all of them are being used pricing-wise. So it's in this case that the tx cost can be assumed to be zero.
An s70 has a base cost of $491.52
per month. It would therefore be $45,219.8
per month.
This is the most inaccurate bug in AKalculator as of writing, and has the highest priority to get fixed.