Estimate the cost of using AzCopy to transfer blobs
This article helps you estimate the cost to transfer blobs by using AzCopy.
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 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 upload
When you run the azcopy copy command, you'll specify a destination endpoint. That endpoint can be either a Blob Service endpoint (blob.core.windows.net
) or a Data Lake Storage endpoint (dfs.core.windows.net
) endpoint. This section calculates the cost of using each endpoint to upload 1,000 blobs that are 5 GiB each in size.
Cost of uploading to the Blob Service endpoint
If you upload data to the Blob Service endpoint, then by default, AzCopy uploads each blob in 8-MiB blocks. This size is configurable.
AzCopy uses the Put Block operation to upload each block. After the final block is uploaded, AzCopy commits those blocks by using the Put Block List operation. Both operations are billed as write operations.
The following table calculates the number of write operations required to upload these blobs.
Calculation | Value |
---|---|
Number of MiB in 5 GiB | 5,120 |
PutBlock operations per blob (5,120 MiB / 8-MiB block) | 640 |
PutBlockList operations per blob | 1 |
Total write operations (1,000 * 641) | 641,000 |
Tip
You can reduce the number of operations by configuring AzCopy to use a larger block size.
After each blob is uploaded, AzCopy uses the Get Blob Properties operation as part of validating the upload. The Get Blob Properties operation is billed as an All other operations operation.
Using the Sample prices that appear in this article, the following table calculates the cost to upload these blobs.
Price factor | Hot | Cool | Cold | Archive |
---|---|---|---|---|
Price of a single write operation (price / 10,000) | $0.0000055 | $0.00001 | $0.000018 | $0.000011 |
Cost of write operations (641,000 * operation price) | $3.5255 | $6.4100 | $11.5380 | $7.0510 |
Price of a single other operation (price / 10,000) | $0.00000044 | $0.00000044 | $0.00000052 | $0.00000044 |
Cost to get blob properties (1000 * other operation price) | $0.0004 | $0.0004 | $0.0005 | $0.00044 |
Total cost (write + properties) | $3.53 | $6.41 | $11.54 | $7.05 |
Note
If you upload to the archive tier, each Put Block operation is charged at the price of a hot write operation. Each Put Block List operation is charged the price of an archive write operation.
Cost of uploading to the Data Lake Storage endpoint
If you upload data to the Data Lake Storage endpoint, then AzCopy uploads each blob in 4-MiB blocks. This value isn't configurable.
AzCopy uploads each block by using the Path - Update operation with the action parameter set to append
. After the final block is uploaded, AzCopy commits those blocks by using the Path - Update operation with the action parameter set to flush
. Both operations are billed as write operations.
The following table calculates the number of write operations required to upload these blobs.
Calculation | Value |
---|---|
Number of MiB in 5 GiB | 5,120 |
Path - Update (append) operations per blob (5,120 MiB / 4-MiB block) | 1,280 |
Path - Update (flush) operations per blob | 1 |
Total write operations (1,000 * 1,281) | 1,281,00 |
After each blob is uploaded, AzCopy uses the Get Blob Properties operation as part of validating the upload. The Get Blob Properties operation is billed as an All other operations operation.
Using the Sample prices that appear in this article, the following table calculates the cost to upload these blobs
Price factor | Hot | Cool | Cold | Archive |
---|---|---|---|---|
Price of a single write operation (price / 10,000) | $0.00000720 | $0.000013 | $0.0000234 | $0.0000143 |
Cost of write operations (1,281,000 * operation price) | $9.2332 | $16.6530 | $29.9754 | $18.3183 |
Price of a single other operation (price / 10,000) | $0.00000044 | $0.00000044 | $0.00000068 | $0.00000044 |
Cost to get blob properties (1000 * operation price) | $0.0004 | $0.0004 | $0.0007 | $0.0004 |
Total cost (write + properties) | $9.22 | $16.65 | $29.98 | $18.32 |
The cost to download
When you run the azcopy copy command, you'll specify a source endpoint. That endpoint can be either a Blob Service endpoint (blob.core.windows.net
) or a Data Lake Storage endpoint (dfs.core.windows.net
) endpoint. This section calculates the cost of using each endpoint to download 1,000 blobs that are 5 GiB each in size.
Cost of downloading from the Blob Service endpoint
If you download blobs from the Blob Service endpoint, AzCopy uses the List Blobs to enumerate blobs. A List Blobs is billed as a List and create container operation. One List Blobs operation returns up to 5,000 blobs. Therefore, in this example, only one List Blobs operation is required.
For each blob, AzCopy uses the Get Blob Properties operation, and the Get Blob operation. The Get Blob Properties operation is billed as an All other operations operation and the Get Blob operation is billed as a read operation.
If you download blobs from the cool or cold tier, you're also charged a data retrieval per GiB downloaded.
Using the Sample prices that appear in this article, the following table calculates the cost to download these blobs.
Note
This table excludes the archive tier because you can't download directly from that tier. See Blob rehydration from the archive tier.
Price factor | Hot | Cool | Cold |
---|---|---|---|
Price of a single list operation (price/ 10,000) | $0.0000055 | $0.0000055 | $0.0000065 |
Cost of listing operations (1 * operation price) | $0.0000055 | $0.0000050 | $0.0000065 |
Price of a single other operation (price / 10,000) | $0.00000044 | $0.00000044 | $0.00000052 |
Cost to get blob properties (1000 * operation price) | $0.00044 | $0.00044 | $0.00052 |
Price of a single read operation (price / 10,000) | $0.00000044 | $0.000001 | $0.00001 |
Cost of read operations (1000 * operation price) | $0.00044 | $0.001 | $0.01 |
Price of data retrieval (per GiB) | $0.00 | $0.01 | $0.03 |
Cost of data retrieval (5 * operation price) | $0.00 | $0.05 | $0.15 |
Total cost (list + properties + read + retrieval) | $0.001 | $0.051 | $0.161 |
Cost of downloading from the Data Lake Storage endpoint
If you download blobs from the Data Lake Storage endpoint, AzCopy uses the List Blobs to enumerate blobs. A List Blobs is billed as a List and create container operation. One List Blobs operation returns up to 5,000 blobs. Therefore, in this example, only one List Blobs operation is required.
For each blob, AzCopy uses the Get Blob Properties operation which is billed as an All other operations operation. AzCopy downloads each block (4 MiB in size) by using the Path - Read operation. Each Path - Read call is billed as a read operation.
If you download blobs from the cool or cold tier, you're also charged a data retrieval per GiB downloaded.
The following table calculates the number of write operations required to upload the blobs.
Calculation | Value |
---|---|
Number of MiB in 5 GiB | 5,120 |
Path - Update operations per blob (5,120 MiB / 4-MiB block) | 1,280 |
Total read operations (1000 * 1,280) | 1,280,000 |
Using the Sample prices that appear in this article, the following table calculates the cost to download these blobs.
Note
This table excludes the archive tier because you can't download directly from that tier. See Blob rehydration from the archive tier.
Price factor | Hot | Cool | Cold |
---|---|---|---|
Price of a single list operation (price/ 10,000) | $0.0000055 | $0.0000055 | $0.0000065 |
Cost of listing operations (1 * operation price) | $0.0000055 | $0.0000050 | $0.0000065 |
Price of a single other operation (price / 10,000) | $0.00000044 | $0.00000044 | $0.00000052 |
Cost to get blob properties (1000 * operation price) | $0.00044 | $0.00044 | $0.00052 |
Price of a single read operation (price / 10,000) | $0.00000060 | $0.00000130 | $0.00001300 |
Cost of read operations (1,281,000 * operation price) | $0.73017 | $1.6653 | $16.653 |
Price of data retrieval (per GiB) | $0.00000000 | $0.01000000 | $0.03000000 |
Cost of data retrieval (5 * operation price) | $0.00 | $0.05 | $0.15 |
Total cost (list + properties + read + retrieval) | $0.731 | $1.716 | $16.804 |
The cost to copy between containers
When you run the azcopy copy command, you'll specify a source and destination endpoint. These endpoints can be either a Blob Service endpoint (blob.core.windows.net
) or a Data Lake Storage endpoint (dfs.core.windows.net
) endpoint. This section calculates the cost to copy 1,000 blobs that are 5 GiB each in size.
Note
Blobs in the archive tier can be copied only to an online tier. Because all of these examples assume the same tier for source and destination, the archive tier is excluded from these tables.
Cost of copying blobs within the same account
Regardless of which endpoint you specify (Blob Service or Data Lake Storage), AzCopy uses the List Blobs to enumerate blobs at the source location. A List Blobs is billed as a List and create container operation. One List Blobs operation returns up to 5,000 blobs. Therefore, in this example, only one List Blobs operation is required.
For each blob, AzCopy uses the Get Blob Properties operation for both the source blob and the blob that is copied to the destination. The Get Blob Properties operation is billed as an All other operations operation. AzCopy uses the Copy Blob operation to copy blobs to another container which is billed as a write operation that is based on the destination tier.
Price factor | Hot | Cool | Cold |
---|---|---|---|
Price of a single list operation (price/ 10,000) | $0.0000055 | $0.0000055 | $0.0000065 |
Cost of listing operations (1 * operation price) | $0.0000055 | $0.0000055 | $0.0000065 |
Price of a single other operations (price / 10,000) | $0.00000044 | $0.00000044 | $0.00000052 |
Cost to get blob properties (2000 * operation price) | $0.00088 | $0.00088 | $0.00104 |
Price of a single write operation (price / 10,000) | $0.0000055 | $0.00001 | $0.000018 |
Cost to write (1000 * operation price) | $0.0055 | $0.01 | $0.018 |
Total cost (listing + properties + write) | $0.0064 | $0.0109 | $0.0190 |
Cost of copying blobs to another account in the same region
This scenario is identical to the previous one except that you're also billed for data retrieval and for read operation that is based on the source tier.
Price factor | Hot | Cool | Cold |
---|---|---|---|
Total from previous section | $0.0064 | $0.0109 | $0.0190 |
Price of a single read operation (price / 10,000) | $0.00000044 | $0.000001 | $0.00001 |
Cost of read operations (1,000 * operation price) | $0.00044 | $0.001 | $0.01 |
Price of data retrieval (per GiB) | Free | $0.01 | $0.03 |
Cost of data retrieval (5 * operation price) | $0.00 | $.05 | $.15 |
Total cost (previous section + retrieval + read) | $0.0068 | $0.0619 | $0.1719 |
Cost of copying blobs to an account located in another region
This scenario is identical to the previous one except you're billed for network egress charges.
Price factor | Hot | Cool | Cold |
---|---|---|---|
Total cost from previous section | $0.0068 | $0.0619 | $0.1719 |
Price of network egress (per GiB) | $0.02 | $0.02 | $0.02 |
Total cost of network egress (5 * price of egress) | $.10 | $.10 | $.10 |
Total cost (previous section + egress) | $0.1068 | $0.1619 | $0.2790 |
The cost to synchronize changes
When you run the azcopy sync command, you'll specify a source and destination endpoint. These endpoints can be either a Blob Service endpoint (blob.core.windows.net
) or a Data Lake Storage endpoint (dfs.core.windows.net
) endpoint.
Note
Blobs in the archive tier can be copied only to an online tier. Because all of these examples assume the same tier for source and destination, the archive tier is excluded from these tables.
Cost to synchronize a container with a local file system
If you want to keep a container updated with changes to a local file system, then AzCopy performs the exact same tasks as described in the Cost of uploading to the Blob Service endpoint section in this article. Blobs are uploaded only if the last modified time of a local file is different than the last modified time of the blob in the container. Therefore, you're billed write transactions only for blobs that are uploaded.
If you want to keep a local file system updated with changes to a container, then AzCopy performs the exact same tasks as described in the Cost of downloading from the Blob Service endpoint section of this article. Blobs are downloaded only If the last modified time of a local blob is different than the last modified time of the blob in the container. Therefore, you're billed read transactions only for blobs that are downloaded.
Cost to synchronize containers
If you want to keep two containers synchronized, then AzCopy performs the exact same tasks as described in the The cost to copy between containers section in this article. A blob is copied only if the last modified time of a blob in the source container is different than the last modified time of a blob in the destination container. Therefore, you're billed write and read transactions only for blobs that are copied.
The azcopy sync command uses the List Blobs operation on both source and destination accounts when synchronizing containers that exist in separate accounts.
Summary of calculations
The following table contains all of the estimates presented in this article. All estimates are based on transferring 1000 blobs that are each 5 GiB in size and use the sample prices listed in the next section.
Scenario | Hot | Cool | Cold | Archive |
---|---|---|---|---|
Upload blobs (Blob Service endpoint) | $3.53 | $6.41 | $11.54 | $3.53 |
Upload blobs (Data Lake Storage endpoint) | $9.22 | $16.65 | $29.98 | $18.32 |
Download blobs (Blob Service endpoint) | $0.001 | $0.051 | $0.161 | N/A |
Download blobs (Data Lake Storage endpoint) | $0.731 | $1.716 | $16.804 | N/A |
Copy blobs | $0.064 | $0.0109 | $0.0190 | N/A |
Copy blobs to another account | $0.0068 | $0.0619 | $0.1719 | N/A |
Copy blobs to an account in another region | $0.1068 | $0.1619 | $0.2790 | N/A |
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 |