Azure data transfer charging - azure-blob-storage

I have blob storage and app service in our Azure account.
I was uploaded by app service 200GB from my local PC to blob storage.
Data has been charged (14 EUR) as DATA TRANSFER OUT - Zone 1. I don't understand why it happened.
I previously thought that this type of data transfer is IN TO Zone 1 and is free (no charged).
I thought that all uploads to storage is free and all downloads from storage are charged.
Is it correct pricing ?

In case you use some kind of replicated storage as described here the outgoing replication traffic which flows across regions will be charged to you (described here at the bottom).
What is Geo-Replication Data Transfer Charge? When you write data into
GRS accounts, that data will be replicated to another Azure region.
The Geo-Replication Data Transfer charge is the bandwidth cost of
replicating that data to another Azure region.

Related

Free images hosting with CDN

I am looking for free solution to image hosting with CDN. I got website on small paid hosting and there will be lot of image galleries which I would like to upload to some cloud like Google Drive and use cloud's CDN to link images on my web. Any recommendations for free solution ?
CDN and cloud storage like Google Drive are two different things.
A CDN can be defined as:
A content delivery network or content distribution network is a
geographically distributed network of proxy servers and their data
centers. The goal is to provide high availability and high performance
by distributing the service spatially relative to end-users.
Where as cloud storage services provides highly available and secure storage space over the cloud. Here is a link which explains the difference of these two in terms of AWS(CloudFront vs S3).
If your website traffic is moderate and you want to use free CDN, then you may signup for AWS free tier. The free tier gives you 50 GB Data Transfer Out and 2,000,000 HTTP and HTTPS Requests for Amazon CloudFront(AWS CDN) each month for one year. Here's a tutorial for getting started with AWS CloudFront
If you intended to use cloud storage services then also the free AWS tier provides you with 5 GB of space in AWS S3 for 1 year.
Apart from AWS free tier you may also like to checkout free Microsoft Azure or Google Cloud Platform. Levering these free tier resources it's even possible to host your current website on these platforms almost for free given the usage is within free tier limits.

Azure Blob Storage - High Server Latency (3sec where SLA says ms)

I'm trying the performance of a mobile app storing images in Azure Blob Storage.
When profiling my app I noticed a storage query with a near 3s Time to First Byte. I downloaded the related Azure Storage log file and noticed that both the End to End latency as well as the Server Latency where near 3s. The SLA says latency should be in range of ms.
Note that I am the only user of my app as I'm stil developing it.
Some infos:
this is a general purpose storage account located in West Europe, North Europe
I'm based in France
I use MS Storage SDK to query the storage account
It uses Shared Access Signature (SAS)
An example of query: https://{myaccoount}.blob.core.windows.net/{Container}/{filename.jpg}?sv=2015-04-05&sr=c&sig=wEtcqKsJRl5ouxUceTTXgzVLk7bDoMvLJITlPTLEFRo%3D&se=2016-09-17T16%3A15%3A16Z&sp=r&api-version=2015-07-08&randomguid=3dde0ba3a14047eaba0d186902fee650
Metrics are automatically written in Tables and logs in Blobs.
It's not a network issue as ServerLatency is high (see doc)
Any suggestions on how to improve latency and why it's not in ms?

Azure cache configs - multiple on one storage account?

while developing Azure application I got famous error "Cache referred to does not exist", and after a while I found this solution: datacacheexception Cache referred to does not exist (for short: dont point multiple cache clusters to one storage account by ConfigStoreConnectionString)
Well, I have 3 roles using co-located cache, and testing+production environment. So I would have to create 6 "dummy" storage accounts just for cache configuration. This doesnt seems very nice to me.
So the question is - is there any way to point multiple cache clusters to one storage account? for example, specify different containers for them (they create one named "cacheclusterconfigs" by default) or so?
Thanks!
Given your setup, i would point each cloud service at its own storage account. So this gives two per environment (one for each cloud service). Now there are other alternatives, you could set up Server AppFabric cache in an IaaS VM and expose that to both of your cloud services by placing them all within a single Azure Virtual Network. However, this will introduce latency to the connections as well as increase costs (from running the virtual network).
You can also put the storage account for cache as the same one used by diagnostics or the data storage for your cloud services, just be aware of any scalability limits as the cache will generate some traffic (mainly from the addition of new items to the cache).
But unfortunately, to my knowledge there's no option currently to allow for two caches to share the same storage account.

How to create a Windows Azure application hosted in different datacenters

I'm trying to figure out how to scale a Windows Azure app, where there are some web roles and some worker roles.
The objective is to have some instances in a US datacenter and some others in an Europe datacenter, for different users in America an Europe to have the better response time. My problem is to replicate all my storages (for users in Europe who travel to America and viceversa) and even for troubles in one datacenter.
Until now, I understand that it's possible using Traffic Manager to let Azure know which datacenter is closer to the user.
I know I can replicate data between databases with SQL Data Sync.
The blob storages can also be replicated using Copy Blob API .
I understand the queues cannot be automatically replicated but I don't have much problem with that.
My problem is I cannot find a way to replicate table storages.
As a matter of fact I really don't know if this is the best strategy for my problem...
Thank you.
DX - you are right on with Traffic Manager and Data Sync. Those are the best options for roles & SQL. However, BLOBs are much easier - enable CDN and your BLOBs are replicated across 24 data centers automatically. Read Using CDN for Windows Azure for how to setup the CDN from your primary Storage account.
For table storage, I would handle this programatically, keep a list of the Table connections and then use a parallel foreach to insert into the different data centers.
We maintain a different Service Configuration file for each Data Center to simplify deployment.

How fast are Azure Storage changes propagated to instances?

Suppose I have several role instances and one instance writes to Azure Storage (blob, tables or queue - whatever). How fast will other instances be able to see and read those changes?
There is no propagation of data from Azure Storage to Role Instances. When you request or persist data from storage you're making an OData request over the network in the background to the Azure Storage services.
Because the data is stored in a central location there is only one authority for the information. The instant that authority is updated, clients will immediately receive the updated data when it is requested.

Resources