This page describes global, regional, and zonal Compute Engine resources.
Google Cloud Platform (GCP) resources are hosted in multiple locations worldwide. These locations are composed of regions and zones within those regions. Putting resources in different zones in a region provides isolation from many types of infrastructure, hardware, and software failures. Putting resources in different regions provides an even higher degree of failure independence. This allows you to design robust systems with resources spread across different failure domains.
All Compute Engine resources are either global, regional, or zonal. For example, images are a global resource, but persistent disks are either regional or zonal resources. The scope of the resource determines how accessible the resource is to other resources. For example, global resources are accessible by resources in any region or zone, so VM instances from different zones can use the same global image. Regional resources are accessible only to resources within the same region. For example, a regional static external IP address is accessible only by resources within the same region. A VM instance that wants to use a specific static external IP must reside in a zone that is in the same region as the address.
The scope of the resources indicate how accessible they are for other resources.
However, all resources, whether global, zonal, or regional, must be unique
within the project. That means every resource in Compute Engine must
be uniquely named across the project. For example, you cannot name a VM
example-instance in the us-central1-a and then give another VM in the
same project the same name.
Global resources are accessible by any resource in any zone within the same project. When you create a global resource, you do not need to provide a scope specification. Global resources include:
- The Addresses collection contains any global static external IP addresses that you have reserved for your project. Global static external IP addresses are a global resource and can be used for global load balancers: HTTP(S), SSL proxy, and TCP proxy.
- Images can be used by any instance or disk resource in the same project as the image. Google provides preconfigured images that you can use to boot your instance. You can customize one of these images, or you can build your own image. Optionally, you can share images across projects.
- Persistent disk snapshots are available to all disks within the same project as the snapshot. Optionally, you can share snapshots across projects.
- Instance templates
- An instance template can be used to create VM instances and managed instance groups. It is a global resource. However, you can specify some zonal resources in an instance template, which restricts the use of that template to the zone where the zonal resource resides.
- VPC network
- A VPC network is a global resource, but individual subnets are regional resources.
- Firewalls apply to a single VPC network, but are considered a global resource because packets can reach them from other networks.
- Routes allow you to create complex networking scenarios by letting you manage how traffic destined for a certain IP range should be routed, similar to how a router directs traffic within a local area network. Routes apply to VPC networks within a GCP project and are considered global resources.
- Global operations
Operations are a per-zone resource, a per-region resource, and a global resource. If you are performing an operation on a global resource, the operation is considered a global operation. For example, inserting an image would be considered a global operation, because images are a global resource.
Regional resources are accessible by any resources within the same region. For example, if you reserve a static external IP address in a specific region, that static external IP address can only be assigned to instances within that region. Each region also has one or more zones. You can see a list of available regions and zones on the Regions and Zones page.
Regional resources include:
- The Addresses collection contains any regional static external IP addresses that you have reserved for your project. Static external IP addresses are a regional resource and can only be used by instances that are in the same region as the address, by regional forwarding rules for network load balancers, and for protocol forwarding.
- Subnets regionally segment the network IP space into prefixes (subnets) and control which prefix an instance's internal IP address is allocated from.
- Regional managed instance groups
- Regional managed instance groups are collections of homogeneous instances that span multiple zones. They allow you to spread application load across multiple zones, rather than confining your application to a single zone or having to manage multiple instance groups across different zones.
- Regional persistent disks
- Regional persistent disks provide durable storage and replication of data between two zones within the same region. In a failover situation, you can force-attach a regional persistent disk to another instance within the same region. Optionally, you can share disk resources across projects so that other projects can make images and snapshots from these disks. This does not allow instances in other projects to attach the disks.
- Regional operations
Operations are a per-zone resource, a per-region resource, and a global resource. If you are performing an operation on a resource that lives within a region, the operation is considered a per-region operation. For example, reserving an address is considered regional operation, because the operation is being performed on a region-specific resource, an address.
Resources that are hosted in a zone are called per-zone resources. Zone-specific resources, or per-zone resources, are unique to that zone and are only usable by other resources in the same zone. For example, an instance is a per-zone resource. When you create an instance, you must provide the zone where the instance should live. The instance can access other resources within the same zone, and can access global resources, but it cannot access other per-zone resources in a different zone, such as a Disk resource.
You can see a list of available zones on the Regions and Zones page.
Per-zone resources include:
- A virtual machine instance must reside within a zone and can access global resources or resources within the same zone.
- Persistent disks
- Persistent disks are accessed by other instances within the same zone. You can attach a disk only to instances in the same zone as the disk. You cannot attach a disk to an instance in another zone. Optionally, you can share disk resources across projects so that other projects can make images and snapshots from these disks. This does not allow instances in other projects to attach the disks.
- Machine types
- Machine types are per-zone resources. Instances and disks can only use machine types that are in the same zone.
- Zonal managed instance groups
- A zonal managed instance group uses an instance template to create a group of identical instances within a single zone. You manage VMs that are part of a managed instance group as a single entity, rather than managing individual instances.
- Per-zone operations
Operations are a per-zone resource, a per-region resource, and a global resource. If you are performing an operation on a resource that lives within a zone, the operation is considered a per-zone operation. For example, inserting an instance is considered a per-zone operation, because the operation is being performed on a zone-specific resource, an instance.
By default, list requests to resource collections return a list of resources in a particular control plane. For example, when you query the API for a list of instances, you must provide the zone for which you want to list instances. To list resources across all zones or regions, you can perform an aggregate list query. Each per-region and per-zone resource has an aggregate list URI that can be queried to list all resources of that type. For example, to list all instances across all zones, you can make a request to the following URI:
Similarly, to list all addresses across all regions, make a request to the following URI:
For more information, review the
method for that resource.