In CosmosDB SDK v2 it is possible to setup preferred locations during client creation (via ConnectionPolicy.PreferredLocations setting). However, I don't see similar setting in Cosmos DB SDK v3. As per my understanding, the closest setting in v3 is CosmosClientOptions.ApplicationRegion, but it allows to provide single region only.
Is there a way to to setup list of preferred locations in SDK v3?
V3 SDK takes a different approach. By specifying the ApplicationRegion (the region where your app is actually running), it will automatically populate the priority of regions based on proximity and account availability (the regions your account is provisioned to) to optimize latency.
If your app runs in West US and your Cosmos DB account is in East US, Europe, and West US, when you set the ApplicationRegion to West US, it will automatically create the preferred list as West US, East US, and Europe (order of distance).
You just need to focus on defining which region your application runs.
Related
I want to create an Azure function app in West Germany region, however that fails with:
This region has quota of 0 instances for your subscription. Try
selecting different region or SKU. (Code:
SubscriptionIsOverQuotaForSku)
I could create the Azure Function App in another region, but I want to understand why I am unable to create an Azure Function App in the West Germany region.
I already checked the quotas of my subscription, but there I can't find anything about Azure Functions:
I also checked Products available by region which confirms that Azure Functions are available in the West Germany region:
So, why can't I create an Azure Function App in the West Germany region?
One of the reasons and resolutions could be followed as #skin suggested:
It may be that all resources allocated to AF’s in that region are exhausted. Try again tomorrow.
Even the Microsoft documentation shows quota available for the products by region, they have certain limits for the Subscription level in terms of Azure Compute Units allocation because the Hardware Configuration of the Function App is not specified.
You can visit this MS Doc1 & Doc2 for the ACUs Quota allocation per instance and Hosting Plan based.
And also, Same issue registered in Microsoft Q&A Forum #878011 where #MayankBargali-MSFT explained the cause of the error you mentioned regarding why quota is limited on the location and subscription level.
Also, you can mail to AzCommunity#microsoft.com by stating your business justification and details for quota increase request along with the Azure Subscription Id, Azure Resource Name and the Issue Time of occurrence in UTC.
We have a database located in North Europe region with 2 nodes of AppServices on Azure (West Europe & North Europe). We use traffic manager to route traffic.
Our SQL database and storage are located in Northern Europe.
When we started the website, European locations were the closest to our customers.
However, we saw a shift and most of our customers now are from USA.
We have high CPU utilization on our processors although we have a lot of instances on each.
The question is:
Since most of our customers are from USA and it's hard to relocate the database, is it better to keep the app structure as it is (N. Europe & W. Europe) or create a new node in USA but this node will still need to communicate with the database in North Europe?
Thank you
Having you app in US region and Database in Europe is not recommended.
These are a few of the things you will run into:
1) High latency since the queries for data will have to round-trip to Europe to get this.
2) Higher resource utilization since in general each request that access the DB will take longer, this will increase memory usage while requests are waiting on data it will also make the impact of load a lot more severe on the app.
3) cross region data egress, you will need to pay for all the data moving from Europe to us every-time there is a query.
A better solution would be to do the following:
1) Setup a new DB in us region and hook up active geo-replication
At this point you will have a hot/cold configuration where any instance can be used to read data form the DB but only the primary instance can be used for write operations.
2) Create a new version of the App/App Service plan in US region
3) Adapt your code to understand your geo distributed topology.
You App should be able to send all reads to the "closest" region and all writes to the primary database.
4) Deploy the code to all regions
5) add the new region to TM profile
While this is not ideal since write operation might still have to jump the pond, most apps have a read write patter than is heavily askewed towards read operations (roughly 85% reads / 15% writes ) so this solution works out with the added benefit of giving you HA in case one of the regions goes down.
You might want to look at this talk where I go over how to setup a geo distributed app using App Service, SQL Azure and the technique outlined above.
Have you considered sharding your data based on the location of your users? In terms of performance it will be better, You can provide maintenance on off-peak hours of each region. Allow me to recommend you this article.
Really puzzled why I am not seeing all locations - only 4 - US West, US East, Japan West and Japan East in my trial subscription. Is there any filtering I inadvertently setup?
Any pointers would be really helpful
Shas
I am giving many workshops for Azure and I see this behavior a lot for Azure Passes (also kind of trial accounts) but have not seen this for Azure Trials.
I noticed that I have more location options in the new Azure portal (https://portal.azure.com) and less in the old management portal (https://manage.windowsazure.com).
Also to consider, not all services are available at all locations. But the standard services like VMs or storage should be available everywhere. You can check via the service overview whether your desired service is available.
I'm trying to start a virtual machine in West Europe region, but for some reason that regions isn't available in the drop down.
I have created Azure Web apps in West Europe, but I can't create a VM there. The only available regions are Central US, South Central US, East Asia, SouthEasts Asia and West Japan.
My subscription is Pay-as-you-Go (if that makes any difference).
Any ideas ?
Thanks
I opened a ticket earlier today and seems they are having a capacity or other sort of issue. New subscriptions have West Europe disabled. With a ticket you can ask Microsoft to enable it for you. They will ask you how many VMs (and which types) you expect to provision. They expect processing the form can take up to two days. So far the unlimited cloud capacity on demand
You have to open a billing support ticket to have them enable the region(s) for you.
I'm creating Azure web site. My country landed between Europe and Asia. Azure region option include 5 region (East Asia, West Europe, North europe, West US, East US).
How to choose which is quick from my country?
It all depends on the routing to the Windows Azure datacenters. Have you tried testing the download speed, pings, ... to the Europe and Asia datacenters?
Try a tool like wget or even Visual Studio. With Visual Studio (I think you'll need the Ultimate) you can create load tests which can perform different actions on your Web Site (like downloading files, loading pages, ...). Run this test on Web Sites deployed in different datacenters to get a better view about performance from your country (and you can use this information to choose where you want to deploy your Web Site).
Note that performance can still vary ISPs. If performance is key for your application consider using Cloud Services together with the Windows Azure Traffic Manager (configured with performance load balancing). The Traffic Manager can redirect your user to the closest datacenter in terms of performance.