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.00001
Cost of write operations (641,000 * operation price) $3.5255 $6.4100 $11.5380 $3.5255
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.0004
Total cost (write + properties) $3.53 $6.41 $11.54 $3.53

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 is not 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.00000715 $0.000013 $0.0000234 $0.0000143
Cost of write operations (1,281,000 * operation price) $9.1592 $16.6530 $29.9754 $18.3183
Price of a single other operation (price / 10,000) $0.00000044 $0.00000044 $0.00000052 $0.00000044
Cost to get blob properties (1000 * operation price) $0.0004 $0.0004 $0.0005 $0.0004
Total cost (write + properties) $9.16 $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.0000055 $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.0000055 $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.00000057 $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 $3.5309 $0.0064 $0.0110
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) $3.53134 $0.0574 $0.171

Cost of copying blobs to an account located in another region

This scenario is identical to the previous one except you are billed for network egress charges.

Price factor Hot Cool Cold
Total cost from previous section $3.53134 $0.0574 $0.171
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) $3.5513 $0.0774 $0.191

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 are 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 are 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 are 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.16 $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 $3.5309 $0.0064 $0.0110 N/A
Copy blobs to another account $3.53134 $0.0574 $0.171 N/A
Copy blobs to an account in another region $3.5513 $0.0774 $0.191 N/A

Sample prices

The following table includes sample (fictitious) prices for each request to the Blob Service endpoint (blob.core.windows.net). For official prices, see Azure Blob Storage pricing.

Price factor Hot Cool Cold Archive
Price of write transactions (per 10,000) $0.055 $0.10 $0.18 $0.10
Price of read transactions (per 10,000) $0.0044 $0.01 $0.10 $5.00
Price of data retrieval (per GiB) Free $0.01 $0.03 $0.02
List and container operations (per 10,000) $0.055 $0.055 $0.065 $0.055
All other operations (per 10,000) $0.0044 $0.0044 $0.0052 $0.0044

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 transactions (every 4MiB, per 10,000) $0.0715 $0.13 $0.234 $0.143
Price of read transactions (every 4MiB, per 10,000) $0.0057 $0.013 $0.13 $7.15
Price of data retrieval (per GiB) Free $0.01 $0.03 $0.022
Iterative Read operations (per 10,000) $0.0715 $0.0715 $0.0845 $0.0715

Operations used by AzCopy commands

The following table shows the operations that are used by each AzCopy command. To map each operation to a price, see Map each REST operation to a price.

Commands that target the Blob Service Endpoint

Command Scenario Operations
azcopy bench Upload Put Block and Put Block List. Possibly Put Blob based on object size.
azcopy bench Download List Blobs, Get Blob Properties, and Get Blob
azcopy copy Upload Put Block, Put Block List, and Get Blob Properties. Possibly Put Blob based on object size.
azcopy copy Download List Blobs, Get Blob Properties, and Get Blob
azcopy copy Perform a dry run List Blobs
azcopy copy Copy from Amazon S3 Put Blob from URL. Based on object size, could also be Put Block From URL and Put Block List.
azcopy copy Copy from Google Cloud Storage Put Blob from URL. Based on object size, could also be Put Block From URL and Put Block List.
azcopy copy Copy to another container List Blobs, Get Blob Properties, and Put Blob From URL. Based on object size, could also be Put Block From URL and Put Block List.
azcopy sync Update local with changes to container List Blobs, Get Blob Properties, and Get Blob
azcopy sync Update container with changes to local file system List Blobs, Get Blob Properties, Put Block, and Put Block List. Possibly Put Blob based on object size.
azcopy sync Synchronize containers List Blobs, Get Blob Properties, and Put Blob From URL. Based on object size, could also be Put Block From URL and Put Block List.
azcopy set-properties Set blob tier Set Blob Tier and List Blobs (if targeting a virtual directory)
azcopy set-properties Set metadata Set Blob Metadata and List Blobs (if targeting a virtual directory)
azcopy set-properties Set blob tags Set Blob Tags and List Blobs (if targeting a virtual directory)
azcopy list List blobs in a container List Blobs
azcopy make Create a container Create Container
azcopy remove Delete a container Delete Container
azcopy remove Delete a blob Get Blob Properties. List Blobs (if targeting a virtual directory), and Delete Blob

Commands that target the Data Lake Storage endpoint

Command Scenario Operations
azcopy bench Upload Path - Update (Append), and Path - Update (Flush)
azcopy bench Download List Blobs, Get Blob Properties, and Path - Read
azcopy copy Upload Path - Update, and Get Blob Properties
azcopy copy Download List Blobs, Get Blob Properties, and Path - Read
azcopy copy Perform a dry run List Blobs
azcopy copy Copy from Amazon S3 Not supported
azcopy copy Copy from Google Cloud Storage Not supported
azcopy copy Copy to another container List Blobs, and Copy Blob. if --preserve-permissions-true, then Path - Get Properties (Get Access Control List) and Path - Update (Set access control) otherwise, Get Blob Properties.
azcopy sync Update local with changes to container List Blobs, Get Blob Properties, and Get Blob
azcopy sync Update container with changes to local file system List Blobs, Get Blob Properties, Path - Update (Append), and Path - Update (Flush)
azcopy sync Synchronize containers List Blobs, Get Blob Properties, and Copy Blob
azcopy set-properties Set blob tier Not supported
azcopy set-properties Set metadata Not supported
azcopy set-properties Set blob tags Not supported
azcopy list List blobs in a container List Blobs
azcopy make Create a container Filesystem - Create
azcopy remove Delete a container Filesystem - Delete
azcopy remove Delete a blob Filesystem - Delete

See also