A resource group is a container that holds all the cloud services you create in Microsoft Azure
Think of a resource group as a folder on your computer, except instead of holding files, it holds cloud resources — virtual machines, databases, storage accounts, networks, and anything else you build in Azure. Every single thing you create in Azure must belong to a resource group. You cannot create a virtual machine or a database without first putting it in a resource group, either by creating a new one or choosing an existing one.
The main reason resource groups exist is to make your cloud infrastructure easier to manage. Instead of hunting through hundreds of individual resources scattered across Azure, you can see everything related to one project, one client, or one process in one place. You can also delete an entire resource group at once, which deletes everything inside it — useful when you want to shut down a project and stop paying for its resources.
Resource groups also control who can do what. You can give a person or team permission to manage all resources in one resource group without giving them access to anything else in your Azure account. This is how organizations keep developers from accidentally changing production databases or how they let contractors work on one project without seeing another.
Key Takeaways
- Every Azure resource must live inside a resource group; you choose which one when you create the resource.
- Deleting a resource group deletes everything in it at once, so use resource groups to organize by project or environment to avoid accidental deletion.
- You can give people permission to manage one resource group without giving them access to others, which is how teams control who touches what.
- Resource groups must exist in a specific Azure region, though the resources inside them can be in different regions.
- Billing and cost tracking work at the resource group level, so organizing by project or client makes it straightforward to see what each one costs.
How resource groups organize your Azure account
When you first log into Azure, you see a blank account with no resource groups. You create your first resource group by giving it a name and choosing which Azure region it belongs to. The region you choose is where Azure stores the metadata about that resource group — the information about what resources are in it and who can access them.
After you create a resource group, you start adding resources to it. You might create a virtual machine, add a database, set up storage, and attach a network — all inside the same resource group. As you add more resources, they all show up together in the Azure portal, the web interface where you manage everything.
Most organizations create multiple resource groups to keep things organized. A common pattern is one resource group per project: you might have a resource group called "marketing-website" that holds the web server, database, and storage for your marketing site, and another called "internal-tools" that holds everything for an internal process. Some teams organize by environment instead: "production", "staging", and "development" resource groups, each holding the same type of process at different stages.
Permissions and access control through resource groups
Azure's permission system works through resource groups. When you give someone access to a resource group, they can see and manage everything in it. When you remove them from a resource group, they lose access to all the resources inside it at once.
This is how teams prevent mistakes. A junior developer might have permission to manage the "development" resource group but not the "production" one. A contractor working on one client's project might have access to that client's resource group but not to any others. If someone leaves the team, you remove them from the resource groups they worked on, and they when ready lose access to everything.
You can also set permissions at a more detailed level — giving someone the ability to read a resource group but not change anything, or letting them create new resources but not delete existing ones. But the resource group is the starting point for all of this.
Billing and cost tracking by resource group
Azure charges you for every resource you use — every hour a virtual machine runs, every gigabyte of storage you use, every database query you make. These charges add up quickly, and it is straightforward to lose track of what is costing what.
Resource groups make cost tracking simpler. Azure can show you the total cost of all resources in a resource group, so you can see at a glance how much one project is costing you. If you organize resource groups by client, you can bill each client for their own resource group's costs. If you organize by environment, you can see how much your production setup costs compared to your development setup.
This is also why it matters how you organize resource groups. If you throw everything into one giant resource group, you cannot easily see which project or client is costing the most. If you create too many small resource groups, tracking becomes tedious. Most teams find a middle ground: one resource group per project or per client, with everything related to that project or client inside it.
The relationship between resource groups and Azure regions
When you create a resource group, you must choose an Azure region — a physical location where Azure has data centers. You might choose "East US", "West Europe", or "Southeast Asia". This region is where Azure stores the metadata about your resource group.
However, the resources inside a resource group do not have to be in the same region as the resource group itself. You could create a resource group in the "East US" region and then put a virtual machine in "West Europe" and a database in "Southeast Asia" inside it. This is useful when you need resources spread across the world for performance or compliance reasons.
The region you choose for the resource group does not affect performance or cost — it is purely about where the administrative information is stored. Most people choose a region close to where they are or where their main users are, but it is not a critical decision.
Common mistakes when using resource groups
The most common mistake is creating too many resource groups. Some people create a new resource group for every single resource, which defeats the purpose of having groups at all. You end up with hundreds of resource groups and no way to see what belongs together.
The second common mistake is not thinking about deletion. If you delete a resource group by accident, everything in it disappears. Azure does not have a trash bin or an undo button for resource groups. Some teams protect important resource groups by restricting who can delete them, or they use naming conventions that make it obvious which resource groups are production and which are safe to experiment with.
A third mistake is mixing unrelated resources in one resource group. If you put your marketing website, your internal tools, and your data analytics platform all in one resource group, you cannot easily see the cost of each project, and you cannot give different teams access to different projects without giving them access to all three.
How resource groups fit into larger Azure organization
Resource groups are just one layer of how Azure organizes things. Above resource groups is the concept of subscriptions. A subscription is an Azure account with its own billing and its own set of resource groups. A large organization might have multiple subscriptions — one for each department or one for each environment (production, staging, development).
Below resource groups are the individual resources themselves — virtual machines, databases, storage accounts, and everything else. A resource belongs to exactly one resource group, and a resource group belongs to exactly one subscription.
Understanding this hierarchy helps you organize your Azure account in a way that makes sense for your team. You might create one subscription for production and another for development, then inside each subscription create resource groups for each project. This way, billing is separate, permissions are clear, and it is hard to accidentally delete production resources.
Frequently Asked Questions
Can I move a resource from one resource group to another?
Yes. Azure lets you move most resources between resource groups, though some resources have restrictions. You would do this if you reorganize your projects or realize a resource belongs in a different group. The move itself does not cause downtime or data loss for most resource types.
What happens if I delete a resource group?
Everything in it is deleted — all the virtual machines, databases, storage, networks, and anything else. Azure does not recover deleted resource groups. This is why many teams restrict who can delete resource groups and why naming conventions matter.
Do I have to put resources in a resource group?
Yes. Every resource in Azure must belong to a resource group. You cannot create a resource without choosing a resource group for it. If you do not choose one, Azure creates a default resource group for you.
Can a resource group span multiple Azure regions?
The resource group itself has one region, but the resources inside it can be in different regions. You might have a resource group in "East US" with a virtual machine in "West Europe" and a database in "Southeast Asia" inside it.
How many resource groups should I create?
There is no fixed number. Most teams create one resource group per project, per client, or per environment. The goal is to group things that belong together so you can manage, track costs, and control access as a unit without creating so many groups that organization becomes difficult.