GCP Regions and Zones Explained: Scope, Availability, and Common Mistakes
Every resource you create in Google Cloud has a location. It lives in one zone, spans a region, or works globally across your project. That location scope determines which other resources can connect to it, what happens during a hardware failure, and how you design for reliability. Understanding this early prevents a whole category of confusing errors.
By the end of this page you will understand what regions and zones are, how location scope works in GCP, the difference between zonal, regional, and global resources, how to choose the right scope, and the common mistakes that trip up beginners.
What regions and zones mean in GCP
A region is an independent geographic location where Google operates data centres. Examples include us-central1 (Iowa), europe-west1 (Belgium), and asia-east1 (Taiwan). Each region is completely isolated from every other region. A failure in us-central1 has no effect on europe-west1.
A zone is a physically separate deployment area inside a region. Each zone has its own power supply, cooling, and networking hardware, independent from the other zones in the same region. Most regions contain three or more zones. Zones within a region are connected by a fast, low-latency internal network, but they are physically separate enough that a hardware failure in one zone is very unlikely to affect another.
Zone names follow the pattern REGION-LETTER. For example, us-central1-a, us-central1-b, and us-central1-c are three zones in the us-central1 region.
Why does this matter? Because every GCP resource has a location scope. Some resources live in a single zone. Some span a region. Some are global. Scope controls where a resource runs, which other resources can connect to it directly, and what happens when there is a failure. For a deeper look at the physical network behind these locations, see the GCP Global Infrastructure guide.
Simple explanation
Region = a city. Zone = a separate building in that city.
The city of Iowa is us-central1. Inside it are several buildings: us-central1-a, us-central1-b, us-central1-c. Close together and well-connected, but a power failure in one building does not affect the others.
If you store something in building A and try to use it from building B, you cannot. That is exactly why a zonal disk in zone A cannot attach to a VM in zone B. Keep resources in the same building when they need to work together. Spread them across buildings when you need resilience.
How location scope works in Google Cloud
Location scope is the mental model that underlies most GCP architecture decisions. Here is how it works:
Every resource has a scope. When you create a VM, a database, a network, or a storage bucket, GCP assigns it a location: zonal, regional, or global. This is determined by the resource type and cannot be changed after creation.
Zonal resources live in one zone. They can only be accessed by other resources in that same zone. If the zone goes down, the resource is unavailable until it recovers.
Regional resources span a whole region. They are not tied to a single zone. They tolerate zone failures automatically because they are distributed across multiple zones internally.
Global resources have no specific location. They exist across your entire GCP project and are available everywhere regardless of region or zone.
Scope affects how you create and connect resources. Zonal resources require both
—regionand—zoneflags in gcloud. Regional resources need only—region. Global resources need neither.Scope affects latency, availability, and cost. Resources in the same zone communicate with virtually no overhead. Resources in different zones within the same region incur a small egress fee. Resources in different regions incur higher costs and longer latency. See Network Egress Costs for the full breakdown.
Regions
A region is an independent geographic location. Regions are completely isolated from each other: a failure in one region does not affect others. When you create most resources, you choose a region and that resource runs in that region’s infrastructure.
As of early 2026, Google Cloud operates over 40 regions worldwide, spanning North America, South America, Europe, the Middle East, Africa, and Asia-Pacific. New regions are added regularly. The Global Infrastructure guide covers the physical network and region expansion in detail.
Choose a region based on four factors, in priority order:
Proximity to your users. Closer regions mean lower latency. If your users are in Western Europe,
europe-west1(Belgium) oreurope-west4(Netherlands) will significantly outperformus-central1for interactive workloads.Data residency requirements. Legal or compliance constraints may require data to stay within a specific country or jurisdiction. GDPR applies to EU personal data; other regulations apply in India, Australia, and elsewhere. Check your requirements before picking a region, and see Restricting Resource Locations for how to enforce this with Organisation Policies.
Service availability. Not every GCP service is available in every region. Newer services typically launch in a subset of regions first. Verify that every service your architecture needs is available in your chosen region before committing.
Cost. US regions are consistently the cheapest. European and Asia-Pacific regions carry a small premium. For purely internal or batch workloads with no user-facing latency requirement, cost can be a tiebreaker. See GCP Pricing Models for regional pricing differences.
For most teams without specific compliance or latency requirements, us-central1 is a safe default: broadest service availability, lowest prices, and strong latency for North American users. Pick a different region only when you have a concrete reason.
# List all available regions
gcloud compute regions list
# See details and quotas for a specific region
gcloud compute regions describe us-central1Zones
A zone is a deployment area within a region. Each zone has independent power, cooling, and networking hardware from the other zones in its region. Most regions have three or more zones. A zone failure does not affect other zones in the same region.
Zone names use the pattern REGION-LETTER, for example:
us-central1-aus-central1-bus-central1-cus-central1-f
The letters are not always sequential; zones are added at different times. Do not assume consecutive letters.
Zones in the same region are connected by fast, low-latency networking. Inter-zone latency within a region is typically under 5ms. This makes multi-zone architectures practical: you get fault isolation without the significant latency or cost penalty of cross-region communication.
# List all zones
gcloud compute zones list
# List zones in a specific region
gcloud compute zones list --filter="region:us-central1"For any workload that needs to survive a zone outage, spread VMs or replicas across at least two zones in the same region. You get fault isolation without the complexity or cost of a multi-region setup.
Region vs zone: the key difference
The distinction is simple once you have the mental model, but it has real design consequences. Choosing a region is a geographic decision. Choosing a zone is a fault-isolation decision.
| Region | Zone | |
|---|---|---|
| What it is | An independent geographic location | A deployment area inside a region |
| Example | us-central1 | us-central1-a |
| Contains | Multiple zones | One or more physical data centres |
| Isolated from | All other regions | Other zones in the same region |
| Connected by | Google’s global private backbone | Fast internal low-latency network |
| Failure scope | Affects only this region | Affects only this zone |
The most important thing to remember: a region contains zones. A zone cannot span more than one region. Confusing the two leads directly to deployment errors and availability gaps.
Zonal, regional, and global resources
Every GCP resource type has a scope. This determines where it lives, how to reference it in gcloud commands, and what happens when the zone or region it depends on has a problem.
Zonal resources
Zonal resources live in a single zone and can only be used within that zone. If the zone goes down, the resource is unavailable until the zone recovers.
- Compute Engine VM instances
- Persistent disks (standard, SSD, and balanced)
- GKE node pools (in Standard mode)
Zonal resources are the simplest to create but are a single point of failure. A single zone failure takes them offline.
A zonal disk can only attach to a VM in the same zone. Create a disk in us-central1-a and a VM in us-central1-b and GCP will refuse the attachment with a resource-not-found error. Both resources exist and neither is broken. The zone scopes simply do not match.
Regional resources
Regional resources span all zones in a region automatically. They provide redundancy without requiring you to configure multi-zone placement manually. A regional resource survives a zone failure because it is not tied to any single zone.
- Regional managed instance groups (VMs balanced automatically across zones)
- Cloud SQL with high availability (primary in one zone, hot standby in another)
- Regional persistent disks (replicated across two zones)
- Cloud Run services (regional by default; instances spread across zones automatically)
- Subnets (regional scope; each subnet lives in one region, not globally)
Global resources
Global resources are not tied to any region or zone. They work across your entire GCP project regardless of where individual resources are located.
- VPC networks and firewall rules
- Global load balancers
- Global static IP addresses
- IAM policies
- Cloud Storage buckets (data location is configurable as regional, dual-region, or multi-regional)
When a gcloud command requires —zone, the resource is zonal. When it requires only —region, it is regional. When it requires neither, it is global. This is always a reliable indicator of scope.
Scope comparison
| Scope | Example resources | Survives zone failure? | Survives region failure? | CLI flag needed |
|---|---|---|---|---|
| Zonal | VM instances, persistent disks, GKE nodes | No | No | —zone |
| Regional | Regional MIG, Cloud SQL HA, Cloud Run, subnets | Yes | No | —region |
| Global | VPC networks, IAM, global load balancers | Yes | Yes | (none) |
How to choose the right scope
The right scope follows directly from what you need the resource to survive:
Use zonal when failure tolerance is low or irrelevant. Learning environments, dev VMs, scratch disks, and one-off batch jobs are fine as zonal. If a zone failure takes them offline briefly, you restart. The cost and setup simplicity of zonal resources are real advantages here.
Use regional when you need availability inside one region. Production databases, application servers, and APIs serving real users should use regional resources. Regional managed instance groups and Cloud SQL HA give you zone-failure tolerance with minimal configuration.
Use global for shared infrastructure. VPC networks, firewall rules, and IAM policies are global by design. You do not choose to make them global; that is simply how they work.
Do not over-engineer early architectures. Start with multi-zone within one region. Multi-region adds substantial complexity. Get multi-zone right first, and expand to multi-region only when you have a clear requirement for it.
“Regional” does not mean cross-region. A regional Cloud SQL instance runs in one region, with a hot standby in a different zone of that same region. It does not replicate to another region. If the entire region goes offline, the instance is unavailable. Only a multi-region architecture protects against full regional failures.
When to use this in real life
Here are practical examples of how region and zone choices play out:
A learning VM
You are following a tutorial. Create a VM in us-central1-a. Zonal is fine. If the zone goes down, you restart and carry on. Cost and simplicity matter most here.
A production web application
Your app serves real users. Use a regional managed instance group in us-central1. GCP spreads your VMs across us-central1-a, us-central1-b, and us-central1-c automatically. If one zone fails, the other two keep serving traffic. Pair it with a global load balancer to distribute incoming requests.
A production database
Use Cloud SQL with high availability enabled. GCP places the primary in one zone and a hot standby in a different zone in the same region. Failover is automatic and typically completes within two minutes. See Backups and High Availability for the full configuration.
A UK or EU application with data residency needs
Choose europe-west2 (London) or europe-west1 (Belgium). Use an Organisation Policy to restrict resources to specific locations. This ensures data stays within the correct jurisdiction for GDPR compliance.
A VPC network used across a project
Your VPC network is global. You create subnets per region. A VM in us-central1 and a VM in europe-west1 can both be in the same VPC, each in its own regional subnet. The network spans everything; the subnets do not.
Designing for multi-zone availability
Spreading across multiple zones is the first and most important availability step. Zone failures are more common than full regional failures, and multi-zone protection is straightforward to set up.
A regional managed instance group handles multi-zone VM placement automatically:
# Create a regional MIG spanning all zones in us-central1
gcloud compute instance-groups managed create my-app-group \
--region=us-central1 \
--template=my-instance-template \
--size=3
# GCP spreads the 3 VMs across us-central1-a, b, and c.
# If one zone fails, the other two keep serving traffic.For databases, Cloud SQL with high availability places a primary instance in one zone and a standby replica in a different zone in the same region. Failover is automatic and typically completes within two minutes. Cloud SQL HA costs more than single-zone, but for any production database holding real data, it is worth it. See Backups and High Availability for configuration details.
For Cloud Run, services are regional by default. GCP distributes instances across zones in the region automatically. No additional configuration is needed for multi-zone availability on Cloud Run.
For most production workloads, multi-zone within a single region is the right starting architecture. It covers the vast majority of real outage scenarios without the complexity of multi-region deployment. See Designing Highly Available Systems for a full walkthrough.
Multi-zone vs multi-region
These two terms describe different levels of availability with very different trade-offs. Beginners often conflate them.
| Multi-zone | Multi-region | |
|---|---|---|
| Protects against | Zone failure | Zone failure and full regional failure |
| Complexity | Low (handled automatically by MIGs and Cloud SQL HA) | High (needs active-active or active-passive design) |
| Cost | Low (small inter-zone egress fee) | High (inter-region egress plus replication costs) |
| Latency between nodes | Under 5ms between zones | 50ms or more between regions |
| When to use | Default for production | Global applications, strict DR requirements, regulatory geographic distribution |
Multi-zone = backup generators. Multi-region = a second office in another city.
Backup generators keep you running if one floor loses power. Most businesses need them. A second office in another city keeps you running if the whole building burns down. Very few businesses need that. Start with the generators.
Multi-region is the right choice for some applications: a globally distributed API, a service requiring strict disaster recovery guarantees, or a workload serving users on multiple continents with low-latency requirements. But for most teams, multi-zone within one region is the appropriate first step.
If you are designing a multi-region system, see Multi-Region Architectures and Disaster Recovery Strategies.
For Cloud Storage specifically, you can choose regional, dual-region, or multi-regional buckets. See Regional vs Multi-Regional Storage for the trade-offs.
Setting default region and zone in gcloud
Without defaults, gcloud requires —region or —zone on every command that creates a zonal or regional resource. Set them once after installing gcloud and you will not need to repeat them on every command:
# Set default region and zone
gcloud config set compute/region us-central1
gcloud config set compute/zone us-central1-a
# Confirm your current settings
gcloud config listYou can always override the defaults for a specific command using the —region or —zone flag. The gcloud CLI guide covers configuration profiles if you work across multiple projects or regions regularly.
Regions and zones vs resource hierarchy
Beginners sometimes conflate two separate concepts: the GCP resource hierarchy and location scope. They are not the same thing.
The resource hierarchy (Organisation, Folders, Projects, and Resources) is an administrative structure. It controls ownership, billing, and access. A project is a billing and access container, not a location.
Regions and zones are location scopes. They describe where resources physically run.
These two systems are independent. A single project can contain resources in multiple regions and zones simultaneously. A VM in us-central1-a and a database in europe-west1-b can both belong to the same project. The project is the administrative boundary; the region and zone is the physical location.
Project = administrative boundary (who owns it, who pays for it, who can access it).
Region / Zone = physical location (where it actually runs).
Common mistakes with regions and zones
Attaching a disk to a VM in a different zone. A standard persistent disk is bound to its zone. You cannot attach a disk from
us-central1-ato a VM inus-central1-b. The error message is usually a resource-not-found error, which is confusing because both resources clearly exist. Use a regional persistent disk if you need cross-zone flexibility, or snapshot the disk and restore it in the target zone.Deploying everything to one zone by default. This is the most common availability mistake. One zone failure takes down your entire service. Regional managed instance groups handle multi-zone placement automatically. There is no good reason to use a zonal MIG for production workloads.
Assuming a service you need is available in your chosen region. Not every GCP service launches in every region. Check service availability in your region before committing your architecture to it. This is especially relevant for newer or less common services.
Thinking “regional” means “cross-region”. A regional resource spans zones within one region. It does not protect against a full regional failure. Regional Cloud SQL HA fails over between zones in the same region; it does not replicate to another region. For cross-region protection, you need a multi-region architecture.
Treating global resources as having no location implications. A VPC network is global, but its subnets are regional. A Cloud Storage bucket is global in administration, but you still choose where its data lives when you create it. Global resource type does not mean data has no geographic footprint.
Choosing a region without checking latency, pricing, or residency requirements. Picking whatever appears first in the console can mean high latency for your users, unexpected cost premiums, or compliance issues you discover too late. Use the four-factor framework: proximity first, then residency requirements, service availability, and cost.
Not setting a default region and zone in gcloud. Without a default, many gcloud commands fail silently or prompt you for a region on every invocation. Set it once right after installation using
gcloud config set compute/region.
Summary
- A region is an independent geographic location (e.g.,
us-central1); a zone is a physically isolated deployment area within a region (e.g.,us-central1-a) - Every GCP resource has a scope (zonal, regional, or global); the resource type determines it and it cannot be changed after creation
- Zonal resources are bound to one zone; a zone failure makes them unavailable until the zone recovers
- Regional resources span all zones in a region and survive zone failures automatically
- Global resources are project-wide and have no zone or region dependency
- Multi-zone within one region is the right default availability strategy for most production workloads
- Multi-region protects against full regional failures but is significantly more complex and expensive
- Project and resource hierarchy are administrative structures; regions and zones are location scopes; these are independent systems
- Set default region and zone in gcloud after installation to avoid specifying them in every command
Frequently asked questions
What is the difference between a region and a zone in GCP?
A region is an independent geographic location such as us-central1 (Iowa) or europe-west1 (Belgium). A zone is a physically separate deployment area within that region, such as us-central1-a or europe-west1-b. Zones share fast internal networking but have independent power, cooling, and hardware, so a failure in one zone does not affect others in the same region. Most regions contain three or more zones.
What is a zonal resource in Google Cloud?
A zonal resource is bound to a single zone. It can only be used by other resources in the same zone. Compute Engine VM instances and standard persistent disks are zonal. If the zone has an outage, zonal resources in that zone become unavailable until the zone recovers. This is why spreading critical workloads across multiple zones matters.
What is a regional resource in Google Cloud?
A regional resource spans all zones in a region automatically, providing built-in redundancy without manual configuration. Examples include Cloud Run services, regional managed instance groups, and Cloud SQL with high availability. A regional resource survives a single zone failure because it is not tied to any one zone.
Should I use one zone or multiple zones?
Use multiple zones for any workload you cannot afford to take offline. A single zone failure takes down all zonal resources in that zone. Regional managed instance groups and Cloud SQL HA handle multi-zone redundancy automatically. For a personal project or learning VM, one zone is fine. For anything production or user-facing, multi-zone is the right default.
What is the difference between multi-zone and multi-region in GCP?
Multi-zone spreads your workload across multiple zones within one region. It protects against zone failures and is the standard first step for high availability. Multi-region spreads across two or more separate geographic regions, protecting against a complete regional outage. Multi-region is significantly more complex and more expensive. Most applications should start with multi-zone, not multi-region.
Why can I not attach a persistent disk from one zone to a VM in another zone?
A standard persistent disk is a zonal resource, physically tied to the infrastructure of its zone. A VM in a different zone cannot access it directly. To move data across zones, use a regional persistent disk (which replicates across two zones), snapshot the zonal disk and restore it in the target zone, or use Cloud Storage as an intermediary.