Question

we are considering using Azure blob storage as storage for our backups. But we are not sure of what the transaction price would mean for us in reality. (they charge cost per storage volume and cost per transactions)

For example if I transfer one 16 GB file to the storage every day (and deleting so I in the end always keep 10 versions). Does that only mean 1 transaction per day (+ maybe a few for listing and such) or is a transaction like per packet of some size so that it will cost me loads each day. or what does the transaction mean?

Was it helpful?

Solution

Be careful, it may not be as simple as you think. Firstly, it depends on if you are using page or block blobs. It also depends on what library you are using to upload the blob. For block blobs, the storage client has a default value of the maximum size of the block being uploaded (32MB) and will split the file into n blocks - each block will be a transaction (see Understanding Block Blobs and Page Blobs. You will also need to consider retries, and as you point out, listing, deleting etc.

I suggest you look closely at how you are backing up and find the size of the blocks - then do the calculations. Then do some controlled trails in an isolated account and see if you can reconcile the billing transactions against your estimate.

OTHER TIPS

Do take a look at this blog post from Storage team about billing: http://blogs.msdn.com/b/windowsazurestorage/archive/2010/07/09/understanding-windows-azure-storage-billing-bandwidth-transactions-and-capacity.aspx

To summarize, you're charged for 3 things in Windows Azure Storage:

  1. Storage Charges: Amount of data you store
  2. Bandwidth Charges: Bandwidth consumed for data egress for the data going out of a data center. data ingress is free.
  3. Transaction Charges: You essentially interact with Windows Azure Storage using REST API. A transaction is defined as a single API call. For example, if you upload a file and the file is uploaded in single shot (i.e. without breaking it into chunks or blocks), that's one transaction. If you upload a file and do a chunked upload (say 100 chunks), that would be 100 transactions (well, technically it would be 101 transactions :)). Similarly, if you delete a blob that's one transaction as well.

I also built a simple calculator which would give you a rough idea about your Windows Azure Blob Storage bill. You can use this calculator here: http://gauravmantri.com/2012/09/03/simple-calculator-for-comparing-windows-azure-blob-storage-and-amazon-s3-pricing/. It was basically built to compare Amazon S3 costs and Windows Azure Blob Storage costs but can be used for just Windows Azure Blob Storage as well.

I'd say your first guess : 1 transaction per day, based on their explanation :

Transactions – Each individual Blob, Table and Queue REST request to the storage service is considered as a potential transaction for billing. Applications can then control their transaction costs by controlling how often and how many requests they send to the storage service. We analyze each request received and then classify it as billable or not billable based upon our ability to process the request and the request’s outcome.

Quoted from here.

But the best thing to do would be to go for the trial. I think Azure is free for a certain time, that would allow you to see how many requests are really going.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top