1
votes

We have stored 200.000+ images in a classic azure blob account with standard performance. We include the blob URLs in the HTML of our application so the browser downloads the images directly from the blob storage. However, this is really slow. A simple 2kb image can take up to 200ms to download. Download speeds are irregular.

I made a new storage account, now V2 with premium performance. However, now I can't make any public containers anymore. The portal returns the error: 'This is a premium 'StorageV2 (general purpose v2)' account. Containers within this storage account must be set to 'private' access level.'

How can I host images in an Azure environment with good performance without having to deploy them on my web role?

2

2 Answers

2
votes

Azure storage V2 with premium only supports private access level. You should consider using BlockBlobStorage accounts with premium in your case, which supports the public access.

And here is the benefit of BlockBlobStorage accounts:

Compared with general-purpose v2 and BlobStorage accounts, BlockBlobStorage accounts provide low and consistent latency, and higher transaction rates.

Here is the screenshot of create a BlockBlobStorage accounts with premium:

enter image description here

0
votes

Azure storage account have certain limits (like, 20000 IOPS limit per account) which might interfere with performance at the scale you are talking about. Steps you can take to check if this is the root case - split your images into several storage accounts and see if that fixes performance.

Alternatively (and probably better) you should use Azure CDN attached to the storage account to fix this performance issue (and even make it faster).

https://docs.microsoft.com/en-us/azure/cdn/cdn-create-a-storage-account-with-cdn