This document describes global, regional, and zonal Compute Engine resources.
Google Cloud resources are hosted in multiple locations worldwide. These locations are composed of regions with 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. You can design robust systems by spreading resources 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 virtual machine (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. For a VM instance to use a specific static external IP, the instance must be 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 don't 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 are used for global load balancers.
- Images are 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. An instance template is a global resource. However, you can specify some zonal resources in an instance template, which restricts the use of that template to the location of the specified zonal resource.
- Cloud Interconnects
- A Cloud Interconnect is a highly available connection from your on-premises network to Google's network. This connection is a global resource. However, interconnect attachments, which run inside of this connection, are regional resources.
- Cloud Interconnect locations
- A Cloud Interconnect location is a physical connection point for Cloud Interconnect near your network. There is one Cloud Interconnect location for every available colocation facility and edge availability domain. Cloud Interconnect locations are read-only, global resources.
- VPC network
- A VPC network is a global resource, but individual subnets are regional resources.
- Firewalls apply to a single VPC network and are considered a global resource because packets can reach them from other networks.
- Routes let you create complex networking scenarios. You can manage how traffic is routed for a specific IP range. Routes are similar to how a router directs traffic within a local area network. Routes apply to VPC networks within a Google Cloud 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 is 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. For a list of available regions and zones, see Regions and zones.
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 that are used by instances that are in the same region as the address, by regional forwarding rules for regional load balancers, and for protocol forwarding.
- Cloud Interconnect attachments
- An interconnect attachment allocates a VLAN on your Cloud Interconnect and connects that VLAN to a VPC network. An attachment is a regional resource, but a Cloud Interconnect connection is a global resource.
- 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 identical instances that span multiple zones. Regional managed instance groups let you spread app load across multiple zones, rather than confining your app 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. You cannot force attach a zonal persistent disk to an instance. Optionally, you can share disk resources across projects, which lets other projects make images and snapshots from these disks but doesn't let instances in other projects 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 regional resource, the operation is considered a per-region operation. For example, reserving an address is considered regional operation because addresses are a region-specific resource.
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 is located. The instance can access other resources within the same zone, and can access global resources, but it can't access other per-zone resources in a different zone, such as a disk resource.
For a list of available zones, see Regions and zones.
Per-zone resources include:
- A virtual machine (VM) instance is located 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 can't attach a disk to an instance in another zone. Optionally, you can share disk resources across projects, which lets other projects make images and snapshots from these disks but doesn't let instances in other projects 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 VM instances in a managed instance group as a single entity, rather than managing individual instances.
- Cloud TPUs
- TPUs are zonal resources. For information about the zones in which TPUs are available, see Availability.
- 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 zone-specific resource, 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, a request to return a list of resources is scoped to 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, see the
method for that resource.