Check Azure storage pricing over the period you're going to store the data for
I know this one probably seems obvious, but it didn't really occur to me just how much the "headline" pricing hides the difference in cost between different Azure storage options and models. If you take the following three types of storage (all of which fall into the "store files")bucket, using GRS:
- File storage
- Hot Blob storage
- Cool Blob storage
GRS (or Geo-redundant storage) gives you a reasonable level of data security, with your data stored in more than one physical location, with distance between them and automatic failover:
Geo-redundant storage (GRS) maintains the three local copies of your data in a primary region plus another set of three copies of your data in a secondary region hundreds of miles away from the primary region. In the event of a failure at the primary region, Azure Storage will fail over to the secondary region.
The headline price, per GB is £0.065, £0.0287 and £0.0157 respectively. From looking at this you'd think that the costs would very immediately come out with cool Blob storage as the most competitive. As it turns out, for a single month, hot blob storage is actually the cheapest which can be a little misleading if you're storing your files in Azure for longer than a month. for c. 400,000 files for a total of 505GB, the calculations for the first month work out at:
|Hot Blob Storage||19.01|
|Cool Blob Storage||25.27|
From that table (which also costs in read operations, and egress bandwidth / write operations for c.2% of the files being retrieved from storage during the month), the clear winner is hot Blob storage. What the raw numbers don't show is that the cost for cool blob storage is very heavily loaded up with write costs in the first month, with nearly 33% of the cost (£8.51) being the cost of bandwidth for GRS writes across regions, as you pay for this as a separate line item with cool Blob storage. The table begins to look a little different when you show what the cost is for subsequent months:
|Storage Type||Cost: First Month||Cost: Subsequent Months|
|Hot Blob Storage||19.01||14.89|
|Cool Blob Storage||25.27||8.15|
Well, that's quite a difference! Cool blob storage now works out to be cheaper than the next option by nearly 50%. So if you're storing data in Azure for, say 12 months, the costs come in at (for a months data):
|Storage Type||Cost: First Month||Cost: Subsequent Months||Cost: 12 Months|
|Hot Blob Storage||19.01||14.89||182.80|
|Cool Blob Storage||25.27||8.15||114.92|
Now the figures start to stack up and show why cool Blob storage is a cost effective option as Hot costs just under 60% more, over the storage term. File Storage, of course, costs considerably more at nearly 5 times the price of Blob storage. Of course, if your requirements mean that you need File Storage, then the price will be something that has less impact/meaning.
I guess the take-out from this is that it's important to not just look at the "raw" pricing for Azure storage, but also what your usage patterns are going to look like, along with how long you'll need to store the data in Azure. With this pattern (storage for 12 months, a small amount of access in the first month and then no access afterwards), cool Blob storage is the clear winner on a cost basis by quite a margin. If a simple "month one" calculation had been performed and then extrapolated out, or treated as "that's the cost, full stop", you'd be paying 50% more than you had to over 12 months.