Azure Storage Accounts pricing tips

[This is a work-in-progress page. It will be updated when I discover something useful to be shared.]

Summary: on Storage Account you pay for everything you do or store. Almost nothing is free. And, if something costs less than other, then there are limitations or drawbacks.


Warning: This page shows prices at the time it was written. There could be also typos and calculation errors. For updated and official prices, refer to https://azure.microsoft.com/en-us/pricing/

Dealing with Azure Storage Accounts growing features and nuances, has become more and more complex in the last years. The service is one of the foundation building blocks of Azure at the beginning. Today is still a one of the most used and fundamental block in many solutions. Passing the years, Microsoft added many new features combined with different performance levels. All these possibilities reflect on pricing model, that became more and more complex. The following, is not a full coverage but just an overview and a bunch of tips helping you to move around and identifying key elements to consider when evaluating costs of different options on Storage Accounts.

There are 3 main kind of Storage Account:

  • V1
  • V2
  • Premium

V2 is the default option when you create a Storage Account. The V1 is still supported, there a no plan to remove it, but you cannot create it from Portal anymore: you have to use AZ at the command line. V1 is still the default storage account used when you create an App Function.

As stated at the beginning, near everything on Storage Account has a cost. But, on the other hand, there are no fixed costs, apart the cases when you decide to pre-allocate a fixed storage space to have a discount. Apart come corner cases, every operation and every usage has a cost. Even simply listing the stored files.

The general pricing pattern is: more performance, more costs. But could appears not always true. Consider Read and Write operation for Premium Blob. It is cheaper than Standard V2 Hot Blob. But this is because the storage cost of Premium is really higher compared to Standard V2 Hot. So, you pay more for storage but operations are cheaper. In general, you have to carefully consider if you need such performance or if your access/usage pattern fit with a premium level.

(The below price tables reference West Europe, currency €, @2024-01-28)

Blob

  V1 LRS V2 hot LRS (F) V2 hot LRS (H) Premium (F) Premium (H)
Storage (1 GB/month) 0.02000 0.02000 0.02000 0.18000 0.18000
Read operation 0.00032 0.00400 0.00500 0.00200 0.00200
List operation 0.00032 0.04900 0.00500 0.05900 0.07600
Write operation 0.00032 0.04900 0.06300 0.02100 0.02700

(F): Flat namespace
(H): Hierarchical namespace (DataLake)

Queue

  V1 LRS V2 LRS
Storage 1 GB/month 0.04060 0.04060
Operations (10000) 0.00004 0.00370

Table

  LRS
Storage 1 GB / month 0.040600
Operations (10000) 0.000325

V1 vs V2

Carefully consider the different prices of storage account V1 and V2. If you don’t really need performances or features of V2, consider using V1. In particular when you have many transactions.

Example below: same application, same number of transactions per day, storage changed from V2 to V1. V1 is really cheaper.

Archive Tier

The archive tier requires some particular considerations. The storage cost is very low: 0.00167 €/GB compared to €0.0185 €/GB of the hot tier. 10 times less. But the write operations and, even more, the read operations are very expensive.

When a file is placed in Archive tier, it is no longer immediately available. This means you have to “rehydrate it” before accessing it (Link to docs). Essentially you have two option to rehydrate a file: copy the archived file to a new file with online tier OR change the archived tier to an online tier. However, in both cases, rehydrating could take several hours to complete. If are in a hurry, you can ask a high priority rehydration that “may complete in less than one hour”. So, it is crystal clear that archive tier must be used only for very infrequent access.

Rehydration is also a very expensive operation, composed by a read operation and a data retrieval operation.

  Read (per file) Read (per GB)
Normal € 0.00072 € 0.0222
High priority € 0.00780 € 0.1201

Example: rehydrating a 50 GB file in normal priority costs 0.00072 + 50 x 0.0222 = € 1.11 In high priority, 0.00780 + 50 x 0.1201 = € 6.01