Estimate the cost of using Azure Blob Storage
This article helps you estimate the cost to store, upload, download, and work with data in Azure Blob Storage.
All calculations are based on a fictitious price. You can find each price in the sample prices section at the end of this article.
Important
These prices are meant only as examples, and shouldn't be used to calculate your costs. For official prices, see the Azure Blob Storage pricing or Azure Data Lake Storage pricing pages. For more information about how to choose the correct pricing page, see Understand the full billing model for Azure Blob Storage.
The cost to store data
You can calculate your storage costs by multiplying the size of your data in GB by the storage price of the chosen access tier. For example (assuming sample pricing), if you plan to store 10 TB of blobs in the cool access tier, the capacity cost is $0.0115 * 10 * 1024 = $117.78 per month.
Depending on how much storage space you require, it might make sense to reserve capacity at a discount. You can reserve capacity in increments of 100 TB and 1 PB for a 1-year or 3-year commitment duration. Reserved capacity is available only for data stored in the hot, cool, and archive access tiers.
Using the Sample prices that appear in this article, the following table compares the pay-as-you-go and reserved capacity cost of storing 100 TB (102,400 GB) of data.
Calculation | Hot | Cool | Archive |
---|---|---|---|
Monthly price for 100 TB of storage | $2,130 | $963 | $205 |
Monthly price for 100 TB of storage (one-year reserved) | $1,747 | $966 | $183 |
Monthly price for 100 TB of storage (three-year reserved) | $1,406 | $872 | $168 |
To calculate the point at which reserved capacity begins to make sense, divide the cost of reserved capacity by the pay-as-you-go rate. For example, if the cost of 1-year reserved capacity for cool tier storage is $966 and the pay-as-you-go rate is $0.0115, then the calculation is $966 / $0.0115 = 84,000 GB (roughly 82 TB). If you plan to store at least 82 TB of data in the cool tier for the entirety of the reservation period, then reserved capacity begins to make sense. The following table calculates break even point in TB for each access tier.
Calculation | Hot | Cool | Archive |
---|---|---|---|
Monthly price per GB of Data storage (pay-as-you-go) | $0.0208 | $0.0115 | $0.002 |
Price for 100 TB of reserved storage | $1,747 | $966 | $183 |
Break even for 1-year reserved capacity | 82 TB1 | 82 TB | 89 TB |
Break even for 3-year reserved capacity | 66 TB1 | 74 TB | 82 TB |
1The hot tier has multiple pay-as-you-go rates. The price of the first 50 TB and the price of the second 50 TB are factored into this calculation.
To learn more about reserved capacity, see Optimize costs for Blob Storage with reserved capacity.
For general information about storage costs, see Data storage and index meters.
The cost to transfer data
When you transfer data, you're billed for write and read operations. Some client applications use additional operations to transfer data such as operations to list blobs or get properties. The AzCopy utility is optimized to data transfer efficiently and can serve as a canonical example on which to base your cost estimates.
See Estimate the cost of using AzCopy to transfer blobs.
The cost to upload
When you upload data, your client divides that data into blocks and uploads each block individually. Each block that is upload is billed as a write operation. A final write operation is needed to assemble blocks into a blob that is stored in the account. The number of write operations required to upload a blob depends on the size of each block. 8 MiB is the default block size for uploads to the Blob Service endpoint (blob.core.windows.net
) and that size is configurable. 4 MiB is the block size for uploads to the Data Lake Storage endpoint (dfs.core.windows.net
) and that size isn't configurable. A smaller block size performs better because blocks can upload in parallel. However, the cost is higher because more write operations are required to upload a blob.
Using the Sample prices that appear in this article, and assuming an 8-MiB block size, the following table estimates the cost to upload 1000 blobs that are each 5 GiB in size to the hot tier.
Price factor | Value |
---|---|
Number of MiB in 5 GiB | 5,120 |
Write operations per blob (5,120 MiB / 8-MiB block) | 640 |
Write operation to commit the blocks | 1 |
Total write operations (1,000 * 641) | 641,000 |
Price of a single write operation (price / 10,000) | $0.0000055 |
Cost of write operations (641,000 * price of a single operation) | $3.5255 |
Total cost (write + properties) | $3.5250055 |
For more detailed examples, see Estimate the cost to upload.
The cost to download
The number of operations required to download a blob depends on which endpoint you use. If you download a blob from the Blob Service endpoint, you're billed the cost of a single read operation. If you download a blob from the Data Lake Storage endpoint, you're billed for cost of multiple read operations because blobs must be downloaded in 4-MiB blocks. If you download blobs from the cool or cold tier, you're also charged a data retrieval per GiB downloaded from the cool, cold, or archive tier.
Using the Sample prices that appear in this article, the following table estimates the cost to download 1,000 blobs that are 5 GiB each in size from the cool tier by using the Blob Storage endpoint.
Price factor | Value |
---|---|
Price of a single read operation (price / 10,000) | $0.000001 |
Cost of read operations (1000 * operation price) | $0.001 |
Price of data retrieval (per GiB) | $0.01 |
Cost of data retrieval (5 * price of data retrieval) | $0.05 |
Total cost (read + retrieval) | $0.051 |
Utilities such as AzCopy also use list operations and operations to obtain blob properties. As a proportion of the overall bill, these charges are relatively small. For examples, see Estimate the cost to download.
The cost to copy between containers
If you copy a blob to another container in the same account, then you're billed the cost of a single write operation that is based on the destination tier. If the destination container is in another account, then you're also billed the cost of data retrieval and the cost of a read operation that is based on the source tier. If the destination account is in another region, then the cost of network egress is added to your bill.
Using the Sample prices that appear in this article, the following table estimates the cost to copy 1,000 blobs that are 5 GiB each in size between two containers in the hot tier.
Price factor | Value |
---|---|
Price of a single write operation (price / 10,000) | $0.0000055 |
Cost to write (1000 * price of a single operation) | $0.0055 |
Price of a single read operation (price / 10,000) | $0.00000044 |
Cost of read operations (1,000 * price of a single operation) | $0.00044 |
Total cost (previous section + retrieval + read) | $0.0068 |
For a complete example, see Estimate the cost to copy between containers.
The cost to rename a blob
The cost to rename blobs depends on the file structure of your account and the number of blobs that you're renaming.
If the account has a flat namespace, there's no dedicated operation to rename a blob. Instead, your client tool copies the blob to a new blob, and then delete the source blob. Delete operations are free. Therefore, when you rename a blob, you're billed for the cost of single write operation. If the account has a hierarchical namespace, then there's a dedicated operation to rename a blob and it's billed as an iterative write operation.
The cost of a write operation against the Blob Service endpoint is lower than the cost of an iterative write operation against the Data Lake Storage endpoint. Therefore, the cost to rename blobs one-by-one, it costs less in accounts that have a flat namespace.
Using the Sample prices that appear in this article, the following table calculates the cost to rename 1,000 blobs.
Price factor | Hot | Cool | Cold |
---|---|---|---|
Price of a single write operation to the Blob Service endpoint (price / 10,000) | $0.0000055 | $0.00001 | $0.000018 |
Cost to rename blob virtual directories (1000 * price of a single operation) | $0.0055 | $0.01 | $.018 |
Price of a single iterative write operation to the Data Lake Storage endpoint (price / 100) | $0.000715 | $0.000715 | $0.000715 |
Cost to rename Data Lake Storage directories (1000 * price of a single operation) | $0.715 | $0.715 | $0.715 |
Based on these calculations, the cost to rename 1,000 blobs in the hot tier differs by 70 cents.
The cost to rename a directory
If the account has a flat namespace, then blobs are organized into virtual directories that mimic a folder structure. A virtual directory forms part of the name of the blob and is indicated by the delimiter character. Because a virtual directory is a part of the blob name, it doesn't actually exist as an independent object. There's no way to rename a virtual directory without renaming all of the blobs that contain that virtual directory in the name. To effectively rename each blob, client applications have to copy a blob, and then delete the source blob.
If the account has a hierarchical namespace, directories aren't virtual. They're concrete, independent objects that you can operate on directly. Therefore, renaming a blob is far more efficient because client applications can rename a blob in a single operation.
Using the Sample prices that appear in this article, the following table calculates the cost to rename 1,000 directories that each contain 1,000 blobs.
Price factor | Hot | Cool | Cold |
---|---|---|---|
Price of a single write operation to the Blob Service endpoint (price / 10,000) | $0.0000055 | $0.00001 | $0.000018 |
Cost to rename blob virtual directories (1000 * (1000 * price of a single operation) | $5.50 | $10.00 | $18.00 |
Price of a single iterative write operation to the Data Lake Storage endpoint (price / 100) | $0.000715 | $0.000715 | $0.000715 |
Cost to rename Data Lake Storage directories (1000 * price of a single operation) | $0.715 | $0.715 | 0.715 |
Based on these calculations, the cost to rename 1,000 directories in the hot tier that each contain 1,000 blobs differs by almost $5.00. For directories in the cold tier, the difference is over $17.
Example: Upload, download, and change access tiers
This example shows four months of spending based uploads, downloads, and the impact of moving objects between tiers.
Parameters
At the beginning of each month, 1,000 files are uploaded to the hot access tier. Each file is 5 GB in size. During the month, half of these files read by client workloads. After 30 days, a lifecycle management policy moves the other half to the cool access tier to save on storage costs.
In March, client applications read 10% of the data that is stored in the cool access tier. A lifecycle management policy is configured to move those blobs back to the hot tier after they're read.
Twenty days into April, clients once again read 10% of the data that is stored in the cool access tier. However, those blobs were stored in the cool tier for less than 30 days. Because the lifecycle management policy moves those blobs back to the hot tier before the minimum 30 days elapses, an early penalty is assessed. The early deletion penalty is the cost of cool storage for 10 days.
Calculations
Using the Sample prices that appear in this article, the following table demonstrates four months of spending.
Note
These calculations provide an approximate estimate given sample pricing. If blobs were uploaded in batches, then some portion of the storage costs would be prorated as they would not incur storage costs for the entire month. See Data storage and index meters.
Cost factor | January | February | March | April |
---|---|---|---|---|
Cost to write 1000 blobs to the hot tier1 | $3.53 | $3.53 | $3.53 | $3.53 |
Number of blobs in the hot tier after monthly ingest | 1000 | 2000 | 2100 | 2155 |
Number of blobs to move to the cool tier | 0 | 1000 | 1050 | 1078 |
Cost to set blobs to the cool tier (billed as a write operation) | $0.00 | $0.01 | $0.0105 | $0.010775 |
Number of blobs in the cool tier | 0 | 1000 | 1050 | 1078 |
Total size of blobs in the cool tier (GB) | 0 | 5000 | 5250 | 5388 |
Number of blobs read from the cool tier then moved back to the hot tier | 0 | 100 | 105 | 108 |
Cost to read blobs from the cool tier | $0.00 | $0.0001 | $0.000105 | $0.00010775 |
Cost to move blobs back to the hot tier | $0.00 | $0.0001 | $0.000105 | $0.00010775 |
Number of blobs that remain in the cool tier | 0 | 900 | 945 | 970 |
Total size of blobs that remain in the cool tier (GB) | 0 | 4500 | 4725 | 4849 |
Cost to store blobs in the cool tier | $0.00 | $51.75 | $54.34 | $55.76 |
Early deletion penalty | $0.00 | $0.00 | $0.00 | $0.41 |
Number of blobs that remain in the hot tier | 1000 | 1100 | 1155 | 1185 |
Total size of blobs that remain in the hot tier (GB) | 5000 | 5500 | 5775 | 5926 |
Cost to store blobs in hot tier | $104.00 | $114.40 | $120.12 | $123.27 |
Number of blobs read from the hot tier | 500 | 550 | 578 | 593 |
Cost to read blobs from the hot tier | $0.00022 | $0.000242 | $0.0002541 | $0.00026076 |
Monthly total | $107.53 | $169.69 | $178.00 | $182.98 |
1The number of operations required to complete each monthly upload is 641,000. The formula to calculate that number is 1000 blobs * 5 GB / 8-MiB block + the write operation that is required to assemble all of the blocks into a blob.
Sample prices
The following table includes sample (fictitious) prices for each request to the Blob Service endpoint (blob.core.windows.net
).
Important
These prices are meant only as examples, and shouldn't be used to calculate your costs. For official prices, see the Azure Blob Storage pricing or Azure Data Lake Storage pricing pages. For more information about how to choose the correct pricing page, see Understand the full billing model for Azure Blob Storage.
Price factor | Hot | Cool | Cold | Archive |
---|---|---|---|---|
Price of write operations (per 10,000) | $0.055 | $0.10 | $0.18 | $0.11 |
Price of read operations (per 10,000) | $0.0044 | $0.01 | $0.10 | $5.50 |
List and container operations (per 10,000) | $0.055 | $0.055 | $0.065 | $.055 |
All other operations (per 10,000) | $0.0044 | $0.0044 | $0.0052 | $.0044 |
Price of data retrieval (per GB) | Free | $0.01 | $0.03 | $.022 |
Price of Data storage first 50 TB (pay-as-you-go) | $0.0208 | $0.0115 | $0.0045 | $0.002 |
Price of Data storage next 450 TB (pay-as-you-go) | $0.020 | $0.0115 | $0.0045 | $0.002 |
Price of 100 TB (One-year reserved capacity) | $1,747 | $966 | Not available | $183 |
Price of 100 TB (Three-year reserved capacity) | $1,406 | $872 | Not available | $168 |
Network bandwidth between regions within North America (per GB) | $0.02 | $0.02 | $0.02 | $0.02 |
Price of high priority read operations (per 10,000) | Not applicable | Not applicable | Not applicable | $65.00 |
Price of high priority data retrieval (per GB) | Not applicable | Not applicable | Not applicable | $0.13 |
The following table includes sample prices (fictitious) prices for each request to the Data Lake Storage endpoint (dfs.core.windows.net
). For official prices, see Azure Data Lake Storage pricing.
Price factor | Hot | Cool | Cold | Archive |
---|---|---|---|---|
Price of write operations (every 4 MiB, per 10,000) | $0.07120 | $0.13 | $0.234 | $0.143 |
Price of read operations (every 4 MiB, per 10,000) | $0.0057 | $0.013 | $0.13 | $7.15 |
Iterative write operations (per 100) | $0.0715 | $0.0715 | $0.0715 | $0.0715 |
Iterative read operations (per 10,000) | $0.0715 | $0.0715 | $0.0845 | $0.0715 |
Price of data retrieval (per GB) | Free | $0.01 | $0.03 | $0.022 |
Network bandwidth between regions within North America (per GB) | $0.02 | $0.02 | $0.02 | $0.02 |
Data storage prices first 50 TB (pay-as-you-go) | $0.021 | $0.012 | $0.0045 | $0.002 |
Data storage prices next 450 TB (pay-as-you-go) | $0.020 | $0.012 | $0.0045 | $0.002 |
Price of 100 TB (One-year reserved capacity) | $1,747 | $966 | Not available | $183 |
Price of 100 TB (Three-year reserved capacity) | $1,406 | $872 | Not available | $168 |
Price of high priority read operations (per 10,000) | Not applicable | Not applicable | Not applicable | $84.50 |
Price of high priority data retrieval (per GB) | Not applicable | Not applicable | Not applicable | $0.13 |
Index (GB / month) | $0.0297 | Not applicable | Not applicable | Not applicable |