Limits and Quotas of Azure Resources and Services
If you are new in the cloud computing or you have heard a few basic information about it, you would think you can create a really big applications with as many resources as you want. But is it true? Is it possible to create millions of virtual machine and split the huge parallel task between them? Is it possible to order a huge amount of storage and persist any information there? Or is there any limit on resources and services? There are limits you would consider when designing an application architecture on Azure. Many of them are obvious and understandable, but some of them are more link to application operation. There is page on Azure documentation Azure Subscription and Service Limits, Quotas, and Constraints which summarizes the most important information and links to details.
I found this documentation very interesting and based on it I asked myself several funny questions about serious numbers. There is no racket science written, however it could awaken interest and thinking about limits each solution has even on cloud. This article is written based on current limits as of January 2016.
Note: the article is not considering the price. Many of describing combination of resources and services are on max limits and thus they could be very very expensive.
There is possible to create resources and services by Service Management or by Resource Manager. There are a small differences in terms of some limits, so this article uses higher limits.
How many web applications I can run concurrently?
Hosting web application on Azure can be done in several ways. You can run application on virtual machine, as web role on Cloud services or newly as Web App. Let’s take a look.
a) hosting web applications on virtual machines
One subscription has maximum limit 10k smallest VMs per region. Currently Azure has 22 regions. So we can create total 220.000 VMs. But answering the question is a little tricky. We can host web application on different platform using different technology and framework and even on one small VM we can run several web applications.
b) web roles in Cloud services
Cloud services are deprecated so just to have list completed. One subscription has maximum 200 Cloud services, one Cloud service can host 25 unique web roles means 25 web application. There is limit 5.000 web application per subscription using Cloud services.
c) Web apps
One subscription can have 800 Resource Groups maximum. We can create 10 App Service Plans per Resource Group. And there is unlimited number of Web apps per on App Service Plan, what is a little tricky because underline note says “The actual number of apps that you can host on these machines depends on the activity of the apps, the size of the machine instances, and the corresponding resource utilization.”.
I always thought and think about flexible complex middle ware layer connecting all enterprise systems based on messaging system using service bus.
How many topics / queues I can have?
We can create 100 service bus namespaces per subscription and each namespace can have 10.000 topics or queues together. It means we can create total 1 million topics or queues.
How many messages I can have stored?
There is not exact limit for a number of messages. There is a storage limit maximum 5GB per topic / queue. The maximum size of message is 64kB, so you can store approximately 80.000 large messages per topic/queue.
Is there any limit for filters?
Yes, there is a limit 2.000 SQL filters per topic and each of size 1kB and maximum 32 expressions per rule. There is a limit 100.000 correlation filters per topic as well.
How large storage I can get?
There is a limit 100 Storage Accounts per subscription and each Storage Account has 500TB space. Together it is impressive 50.000 TB per subscription.
How many databases I can have?
One subscription can have 150 database servers which each supports up to 150 databases including master database. In total you can have 22.500 databases per subscription.
I have written only a few limits for most common resources and services. There are plenty of limits across the Azure, but you will barely reach any of them. And if you will, you can still create another subscription and split your application portfolio between them.
Apart of described limits focused on total numbers, there are also limits on resource and service performance. Those limits could become an issue if your application cannot scale well.