Azure Resource Manager (ARM) imposes limits and quotas on how many resources of each type you can provision per Azure Subscription, and even per Azure Region. Some limits are a hard maximum, while others are a soft limit that can be increases upon request. When working with Virtual Machines (VMs), Storage Accounts, Databases, and other resources in the Microsoft Azure cloud you can easily hit up against these limits, so it’s important to know they exist and how to work around them. This article will explain the details around the Limits and Quotas on resources within Microsoft Azure; including tips on how to work around these limits to scale as high as your organization needs.
Azure Subscription Limits and Quotas
Microsoft Azure is generally thought of as being a limitless and infinitely scalable cloud. Of course we do know that the “Cloud” is really made up of servers, racks, network switches, power supplies, and other computing hardware that makes up any data center. However, the infinitely scalable idea still persists. After all, it really does seem to be limitless when you can spin up a new VM, Storage Account, or other resource in the Microsoft Azure cloud in a few seconds or minutes and get computing.
The hard truth about the cloud is that being made up of real hardware there are in fact limits to it’s scalability. As a result, Microsoft does impose a few limitations to on a “Per Azure Subscription” basis via Subscription Limits and Quotas. Sure you can use multiple subscriptions to essentially get around the limits, but it’s important to first know what they are so you can plan your infrastructure accordingly.
Microsoft does impose a few limitations to on a “Per Azure Subscription” basis via Subscription Limits and Quotas.
Here’s the list of Default Limits (aka Soft Limits that can be increased) and Hard Limits (aka Maximum Limits) that can not be increased beyond:
Azure Resource | Soft / Default Limit | Hard / Max Limit |
---|---|---|
CPU Cores per Subscription | 20 | Contact support |
Co-Administrators per Subscription | Unlimited | Unlimited |
Resource Groups per Subscription | 800 | 800 |
Storage Accounts per Subscription | 200 | 250 |
Cloud Services per Subscription | 20 | 200 |
Local Networks per Subscription | 10 | 500 |
SQL Database Servers per Subscription | 6 | 150 |
DNS Servers per Subscription | 9 | 100 |
Reserved IPs per Subscription | 20 | 100 |
Hosted service certificates per Subscription | 400 | 400 |
Affinity Groups per Subscription | 256 | 256 |
Alert Rules per Subscription | 250 | 250 |
Resource Manager API Reads | 15,000 per hour | 15,000 per hour |
Resource Manager API Writes | 1,200 per hour | 1,200 per hour |
Resource Manager API request size | 4,194,304 bytes | 4,194,304 bytes |
Tags per Subscription | 10,000 | 10,000 |
You can view the official list of default and maximum limits for Azure Subscriptions within the official Azure documentation.
As you can see from the above table, many of the Subscription Limits are set by Default to the Maximum Limit. However, there are a few that are set lower than the Maximum Limit, and you can request to increase these limits if you need to go beyond them. One limit that’s easy to reach and require you to request an increase is the limit of 20 CPU Cores per Azure Subscription. It only takes a few VMs, especially with 2, 4, or more CPU Cores each to need an increase of this limit.
Some of the Maximum Limits aren’t as easy to get around; such as the Maximum Limit of 200 Storage Accounts per Azure Subscription. Due to this limit, you certainly can NOT provision a new Storage Account for every Virtual Machine (VM) that you host in Azure. You’ll need to plan out your Storage strategy appropriately when deciding on how many VMs will be sharing the same Storage Account for their Operating System .vhd’s and other Data Disks. Be sure to remember the IOPS scalability limits on Azure Storage Accounts when planning your VM Storage strategy too. If you need to run lots of VMs it is possible you will be required to utilize multiple Azure Subscriptions to meet your needs.
If you ever find the Hard Limits (or Maximum Limits) per Azure Subscription to be too limiting, you can always create multiple Azure Subscriptions for your organization.
Remember, if you ever find the Hard Limits (or Maximum Limits) per Azure Subscription to be too limiting, you can always create multiple Azure Subscriptions for your organization. This is actually an extremely common practice, not just for working with limits and quotas, but also for managing billing and reporting on cloud usage within Microsoft Azure across departments, business locations, divisions, cost centers, etc. In fact, it is an extremely common practice in Microsoft Azure for organizations to maintain multiple Azure Subscriptions as part of their cloud computing strategy.
Azure Region Limits and Quotas
In addition to the “Per Azure Subscription” limits and quotas, Azure Resource Management (ARM) enables the ability to set and maintain Limits and Quotas for an Azure Subscription on a “Per Azure Region” basis as well. These limits are set to a Default Limit (aka Soft Limit) that can be increased upon request, and a Maximum Limit (aka Hard Limit) per Azure Region per Azure Subscription.
Azure Resource | Soft / Default Limit | Hard / Max Limit |
---|---|---|
Virtual Machines (VMs) | 20 per region | 10,000 |
VM Total CPU Cores | 20 per region | Contact support |
VM CPU Cores per Series (Dv2, F, etc.) | 20 per region | Contact support |
Availability Sets | 2,000 per region | 2,000 per region |
ExpressRoute Circuits per Subscription | – | 10 per region |
Virtual Networks | 50 per region | 500 per region |
Azure Resource Group Limits
One of the little known facts regarding Limits and Quotas in Microsoft Azure is that even Resource Groups have limits on the number of resources and other things on an individual Resource Group. While these limits are rarely hit, it’s still good to know they exist.
Azure Resource | Soft / Default Limit | Hard / Max Limit |
---|---|---|
Resources per Resource Group (per resource type) | 800 | varies per resource type |
Deployments per Resource Group | 800 | 800 |
Resources per deployment | 800 | 800 |
Management Locks (per unique scope) | 20 | 20 |
Number of Tags (per resource or resource group) | 15 | 15 |
Tag key length | 512 | 512 |
Tag value length | 256 | 256 |
Resources in Exported Template | 200 | 200 |
Why are there Resource Limits and Quotas?
These limits and quotas are NOT some arbitrary limits that Microsoft imposes to keep you from fully utilizing the cloud. Microsoft Azure Limits and Quotas protect Microsoft and YOU (the customer) from gross overspending in the cloud by accident. In fact, the “Per Azure Subscription” and “Per Azure Region” limits and quotas are helpful for a couple different reasons.
- Quotas help limit the ability of your Administrators, Developers and other employees from spending far more in the cloud than you’ve budgeted without taking away their flexibility and agility to do their jobs.
- Limits help keep you cloud spending predictable by not allowing you to spin up the resources that could generate a huge monthly bill without you doing it on purpose. This save you and Microsoft money since they’d likely need to refund lots of cloud spending if all customers were allowed to go unchecked.
- Limits help Microsoft throttle the growth of cloud usage; both within individual Azure Regions, as well as Globally across all their datacenter and regions. This allows Microsoft to ensure that individual customers aren’t able to overload any particular Azure Region or data center unexpectedly.
Resource Limits protect YOU from accidentally going bankrupt by generating huge monthly spend before realizing the full cost of your Azure Resources.
Resource Limits aren’t just for benefiting Microsoft. There are some side effects of Azure Resource Limits that help customers of Microsoft Azure better architect their applications and workloads for the cloud; specifically when it comes to “Per Azure Region” maximum limits. These maximum limits can cause you to utilize multiple Azure Regions in certain cases when provisioning resources within a single Azure Subscription. This can have the affect of causing you to spread your workloads across multiple data centers causing you to have a more resilient cloud footprint by not relying on a single data center or Azure Region for all your workloads.
Hi,
This article is very helpful. I have question about this:
Azure Resource Soft / Default Limit Hard / Max Limit
Resources per Resource Group (per resource type) 800 varies per resource type
Can you tell me for Virtual machines, what the Hard/Max Limit?
Thanks,
Long
Is there any way to decrease these limits? We do not want our partner working on our subscription to build too much VMs or use too many resources.
You can submit a support ticket to either increase or decrease certain limits.
Do you know if we can control VM CPU limits, specifically something like Virtual Machine limit option in Hyper-V. Ex. https://social.technet.microsoft.com/Forums/getfile/299713
There are some performance bugs that we miss due to our test boxes being too fast, so we deliberately throttle down the CPU of the VMs. We would like to scale, and this is essential.
The equivalent of limiting the CPU of the VM in Azure IaaS would be choosing a different pricing tier / VM instance size for the VM. The instance size determines what CPU, Memory, Storage resources are supported for the Virtual Machine (VM).
Does the free account with $200 provided by Azure has limitations on VMs sizes. I am trying to use it to create the AKS cluster using rancher AKS service but no success. Is it due to free account?
Yes the Free Trial has limitations. If you convert to Pay as you go then the limitation will be lifted, but you’ll have to pay for your full usage then.
Is there any costing while increasing the vcpus quota limits for paid subscription
Azure is billed on what you use. The Quotas do note have a cost associated with them.