This chapter covers sole-tenant nodes, a Google Compute Engine feature that provides physical server isolation for your virtual machines. Understanding sole-tenant nodes is critical for the ACE exam because they appear in questions about compliance, licensing, and workload isolation. Approximately 5-7% of exam questions touch on sole-tenant nodes or related isolation concepts, often in the context of HIPAA, PCI DSS, or bring-your-own-license (BYOL) scenarios. Mastery of this topic will help you answer scenario-based questions about when to choose sole-tenant nodes over regular multi-tenant VMs or other isolation options like Shielded VMs or Confidential VMs.
Jump to a section
Imagine a large public hospital with hundreds of patient rooms. Most rooms are shared, and any doctor or nurse can access them. However, a special wing exists for VIP patients who require absolute privacy and isolation due to legal or regulatory reasons. This wing has its own entrance, its own dedicated nursing staff, and its own medical equipment that is never shared with other patients. The hospital guarantees that no other patient will ever be placed in this wing, and no unauthorized personnel can enter. The wing is physically separated from the rest of the hospital by locked doors and access control systems. In this analogy, the hospital is a Google Cloud region, the shared rooms are regular Compute Engine instances running on multi-tenant hosts, and the private wing is a sole-tenant node. The dedicated staff and equipment represent the exclusive use of the physical server's resources (CPU, memory, local SSDs) by your VMs only. The locked doors and access control are the organizational policies and IAM permissions that ensure only your project's VMs can be scheduled on that node. Just as the hospital cannot repurpose the wing for other patients without your consent, Google Cloud cannot run any other customer's VMs on your sole-tenant nodes. This isolation is crucial for meeting compliance requirements like HIPAA, PCI DSS, or internal security policies that mandate physical separation of workloads.
What Are Sole-Tenant Nodes?
Sole-tenant nodes are physical Compute Engine servers that are dedicated to hosting only your project's VM instances. Unlike regular multi-tenant environments where VMs from different customers may share the same physical server, a sole-tenant node ensures that no other customer's VMs run on that hardware. This provides a hard physical isolation boundary, which is often required for compliance with regulations such as HIPAA (Health Insurance Portability and Accountability Act), PCI DSS (Payment Card Industry Data Security Standard), or internal corporate policies that mandate dedicated hardware.
Why Do Sole-Tenant Nodes Exist?
Google Cloud's default architecture uses multi-tenancy for efficiency. A single physical server can host dozens of VMs from multiple customers, with hypervisor-enforced isolation. However, some customers have regulatory or contractual requirements that demand strict physical separation. For example, a healthcare company processing protected health information (PHI) may need to demonstrate that PHI never resides on a server shared with other organizations. Similarly, companies with per-core licensing agreements (e.g., Microsoft SQL Server or Windows Server) may benefit from dedicating physical cores to their own workloads to avoid licensing complications. Sole-tenant nodes address these needs while still leveraging Google's infrastructure.
How Sole-Tenant Nodes Work Internally
A sole-tenant node is a physical server in a Google Cloud data center. When you create a sole-tenant node, you specify the node type, which determines the hardware configuration (e.g., number of vCPUs, amount of memory, local SSD capacity). The node is then provisioned and dedicated to your project. You can then create VM instances on that node, just as you would on a regular host, but with the guarantee that no other project's VMs will be placed on that physical server.
Key internal mechanisms:
- Node Affinity: VM instances are bound to a specific sole-tenant node using node affinity labels. You define a node group (a collection of identical sole-tenant nodes) and set affinity rules on your VMs to be scheduled only on nodes in that group.
- Resource Allocation: When you create a VM on a sole-tenant node, the node's available vCPUs and memory are consumed. You cannot overcommit resources; the sum of all VM vCPU and memory requests must fit within the node's capacity.
- Maintenance Events: Google Cloud may perform maintenance on sole-tenant nodes, such as kernel updates or hardware repairs. You can control how these events affect your VMs using maintenance policies (e.g., live migration or terminate). However, for sole-tenant nodes, live migration may not always be available during certain types of maintenance; you should plan for node-level events.
- Node Types and Pricing: Each node type has a specific number of vCPUs and amount of memory. For example, n1-node-96-624 provides 96 vCPUs and 624 GB of memory. Pricing is per node per hour, regardless of how many VMs you run on it (as long as they fit). This can be cost-effective for high-density workloads.
Key Components, Values, and Defaults
- Node Types: Google Cloud offers several node families, including n1, n2, n2d, and c2 (compute-optimized). Each family has predefined node types with specific vCPU and memory ratios. For example:
- n1-node-96-624: 96 vCPUs, 624 GB memory
- n2-node-80-640: 80 vCPUs, 640 GB memory
- c2-node-60-240: 60 vCPUs, 240 GB memory (compute-optimized)
- Node Groups: A node group is a collection of sole-tenant nodes of the same type. You create a node group and then add nodes to it. Node groups can span zones within a region but not across regions.
- Node Affinity Labels: You create a node affinity label on a node group (e.g., sole-tenant-node-group=my-group). Then, when creating VMs, you specify a node affinity rule that requires the VM to be scheduled on a node with that label. The rule can be REQUIRE (must be on that node group) or PREFER (prefer that node group but allow others). For sole-tenant isolation, you use REQUIRE.
- Quotas: Sole-tenant nodes consume a separate quota, SOLE_TENANT_NODES_PER_ZONE, which defaults to 0. You must request an increase via the Google Cloud Console.
- Maintenance Policy: You can set ON_HOST_MAINTENANCE to MIGRATE (default) or TERMINATE. For sole-tenant nodes, MIGRATE may not be available during certain host maintenance events; you should test your workloads with TERMINATE to ensure uptime requirements are met.
Configuration and Verification Commands
To create a sole-tenant node group and node, you can use the gcloud command-line tool:
# Create a node group in us-central1-a
gcloud compute sole-tenant node-groups create my-node-group \
--node-template my-node-template \
--zone us-central1-a \
--target-size 1
# Create a node template
gcloud compute sole-tenant node-templates create my-node-template \
--node-type n1-node-96-624 \
--region us-central1
# Create a VM that uses the node group
gcloud compute instances create my-vm \
--zone us-central1-a \
--node-group my-node-groupTo verify that a VM is running on a sole-tenant node:
gcloud compute instances describe my-vm --zone us-central1-aLook for the soleTenantNode field in the output. It will show the node name and node group.
Interaction with Related Technologies
Shielded VMs: Sole-tenant nodes support Shielded VMs, which provide verifiable integrity of the VM instance. This combination is often used for compliance.
Confidential VMs: Confidential VMs use AMD SEV to encrypt memory in use. They can run on sole-tenant nodes, providing both physical isolation and memory encryption.
Live Migration: By default, VMs on sole-tenant nodes can be live migrated during host maintenance, but not all maintenance events support migration. For critical workloads, consider using TERMINATE and automating restart.
Sole-Tenant Node vs. Regular Instance Group: Regular managed instance groups use multi-tenant hosts. Sole-tenant node groups are used when you need dedicated hardware. You cannot mix the two in the same group.
Google Cloud VMware Engine: For VMware workloads, Google Cloud offers dedicated hosts via VMware Engine, which is a different product from sole-tenant nodes.
Common Pitfalls
Quota Limits: Default quota for sole-tenant nodes is 0. You must request quota before creating nodes.
Node Capacity Planning: You must ensure that the total vCPU and memory of all VMs fit within the node's capacity. Overcommitting is not allowed. If you need more resources, add another node to the node group.
Node Affinity Label Mismatch: If you create a VM with a node affinity label that doesn't match any node group, the VM creation fails. Double-check label names.
Regional vs. Zonal: Node templates are regional; node groups are zonal. A node group can only contain nodes in one zone. For high availability, create node groups in multiple zones and use regional managed instance groups with node affinity rules.
Create a Node Template
First, define the hardware specification for your sole-tenant node by creating a node template. The template specifies the node type (e.g., n1-node-96-624) and the region (e.g., us-central1). This template is a regional resource, meaning it can be used to create node groups in any zone within that region. Use the `gcloud compute sole-tenant node-templates create` command. The node type determines the number of vCPUs and memory available. For example, n1-node-96-624 has 96 vCPUs and 624 GB of memory. You must also specify the region; the template cannot be used across regions.
Create a Node Group
Next, create a node group in a specific zone. A node group is a collection of identical sole-tenant nodes of the same type. Use the `gcloud compute sole-tenant node-groups create` command, referencing the node template and specifying the zone and target size (number of nodes). For example, `--target-size 1` creates one node. The node group is zonal; for redundancy, create node groups in multiple zones. You can also add nodes later using `gcloud compute sole-tenant node-groups add-nodes`. The node group will have a default node affinity label that you can customize.
Add Node Affinity Label to Node Group
Node affinity labels are key-value pairs that identify the node group. By default, the label is `compute.googleapis.com/node-group-name: <node-group-name>`. You can also add custom labels. These labels are used by VMs to express scheduling constraints. For sole-tenant isolation, you will use a `REQUIRE` affinity rule. To add a custom label, use the `gcloud compute sole-tenant node-groups update` command with the `--add-nodes` or `--update-labels` flags. The label must be unique within the project.
Create VM with Node Affinity Rule
When creating a VM that must run on the sole-tenant node, specify a node affinity rule. This is done using the `--node-group` flag in `gcloud compute instances create`, which automatically sets a `REQUIRE` affinity to the named node group. Alternatively, you can use `--node-affinity-file` for more complex rules. The VM will be scheduled only on nodes in that group. If no node has sufficient capacity (e.g., all vCPUs are used), the VM creation fails. You can also set `--maintenance-policy TERMINATE` to ensure the VM stops during host maintenance instead of migrating.
Verify VM Placement
After the VM is created, verify that it is indeed running on a sole-tenant node. Use `gcloud compute instances describe VM_NAME --zone ZONE` and look for the `soleTenantNode` field in the output. It will show the node name and node group. You can also use `gcloud compute sole-tenant node-groups list` to see the nodes and their utilization. For example, the output will show `usedCpus` and `usedMemory` per node. This step is crucial for compliance audits to demonstrate physical isolation.
Enterprise Scenario 1: Healthcare HIPAA Compliance
A large hospital chain runs its electronic health record (EHR) system on Google Cloud. The system processes protected health information (PHI) and must comply with HIPAA. The hospital's compliance officer requires that PHI never resides on a physical server shared with other customers. The solution is to deploy the EHR VMs on sole-tenant nodes. The architecture includes a node group of n1-node-96-624 nodes in us-central1-a and us-central1-b for high availability. Each node hosts multiple VMs (e.g., web servers, database servers) that all belong to the hospital's project. The node affinity labels ensure that no VM from any other project can be scheduled on these nodes. During a compliance audit, the hospital can provide Google Cloud documentation and gcloud output showing that the VMs are on dedicated nodes. A common misconfiguration is forgetting to set the node affinity rule to REQUIRE — if PREFER is used, the VM could be scheduled on a multi-tenant host during maintenance events, violating compliance. The hospital also uses Shielded VMs and encryption at rest to meet additional HIPAA requirements.
Enterprise Scenario 2: Bring-Your-Own-License (BYOL) for SQL Server
A financial services company uses Microsoft SQL Server with per-core licensing. To avoid paying for cores on a shared host that may run other workloads, they want to ensure that the SQL Server VMs run on dedicated physical cores. They deploy sole-tenant nodes of type n2-node-80-640 and create VMs for SQL Server. The company can then count only the cores on the sole-tenant node for licensing purposes, as no other customer uses those cores. A common pitfall is over-provisioning: if the node has 80 vCPUs but only 40 are used by SQL Server, the company may still need to license all 80 cores depending on the license agreement. They should carefully plan VM density. They also set maintenance policy to TERMINATE to avoid live migration issues, as SQL Server may not support migration seamlessly. They use a regional managed instance group with node affinity to automatically restart VMs on another node in the group if one fails.
Scenario 3: Sensitive Data Processing
A government contractor processes classified data that requires physical isolation. They use sole-tenant nodes with Confidential VMs (AMD SEV) to encrypt memory in use. The node group is created in a specific zone with limited access via VPC Service Controls. The contractor uses gcloud scripts to automate node creation and VM deployment. A common issue is quota: the default sole-tenant node quota is 0, so they must request an increase via the console before deployment. They also set up monitoring to track node utilization and alert if any VM is not on a sole-tenant node (e.g., due to misconfigured affinity).
What the ACE Exam Tests
The ACE exam (objective 1.2: 'Configuring compute resources') tests your ability to choose the right compute option for a given scenario. For sole-tenant nodes, exam questions typically present a compliance or licensing requirement and ask which service to use. Key objective codes: 1.2 (Compute Engine), specifically sole-tenant nodes. The exam also tests your understanding of node affinity, node groups, and the difference between sole-tenant and multi-tenant.
Common Wrong Answers and Why Candidates Choose Them
Shielded VMs — Candidates see 'compliance' and think of Shielded VMs. Shielded VMs provide integrity verification, not physical isolation. The exam will have a distractor that says 'Use Shielded VMs' when the real need is dedicated hardware. Shielded VMs can run on multi-tenant hosts; they don't guarantee isolation.
Confidential VMs — Similar to Shielded VMs, Confidential VMs encrypt memory but still run on shared hardware. The exam may ask about 'data in use' encryption vs. physical isolation. Confidential VMs are for memory encryption, not dedicated hosts.
VPC Service Controls — These provide network-level isolation, not physical server isolation. Candidates confuse perimeter security with host isolation.
Regular instance groups with live migration — Some think that live migration ensures isolation because VMs move between hosts. But live migration doesn't guarantee that the source or destination host is dedicated to your project.
Specific Numbers and Terms That Appear on the Exam
Node types: n1-node-96-624 is a common example.
Node group: must be in a single zone.
Node affinity: REQUIRE vs PREFER.
Quota: SOLE_TENANT_NODES_PER_ZONE defaults to 0.
Maintenance: MIGRATE or TERMINATE.
Pricing: per node per hour, regardless of number of VMs.
Edge Cases and Exceptions
Live migration not always available: For sole-tenant nodes, some maintenance events (e.g., hardware repair) may require VM termination. The exam may test that MIGRATE is not guaranteed.
Node capacity: You cannot overcommit. Exam questions may ask what happens if you try to create a VM that exceeds node capacity — it fails.
Regional vs. zonal: Node templates are regional but node groups are zonal. A common trick question: 'Can a node group span multiple regions?' Answer: No.
Cost optimization: The exam may ask when sole-tenant nodes are more cost-effective than regular VMs. Answer: When you can fully utilize the node's capacity (e.g., run many VMs on one node). Otherwise, regular VMs are cheaper.
How to Eliminate Wrong Answers
If the scenario mentions 'dedicated hardware,' 'physical isolation,' 'compliance requiring no co-tenancy,' or 'BYOL with per-core licensing,' the answer is sole-tenant nodes.
If the scenario mentions 'encryption in use' or 'memory encryption,' think Confidential VMs.
If the scenario mentions 'boot integrity' or 'verified boot,' think Shielded VMs.
If the scenario mentions 'network isolation' or 'data exfiltration prevention,' think VPC Service Controls.
Sole-tenant nodes provide physical isolation by dedicating a physical server to your project's VMs only.
Node groups are zonal and contain identical sole-tenant nodes; node templates are regional.
Use node affinity labels with REQUIRED rule to ensure VMs are scheduled on sole-tenant nodes.
Default quota for sole-tenant nodes is 0; you must request an increase before creating nodes.
Preemptible VMs are not supported on sole-tenant nodes.
Live migration is not guaranteed during all maintenance events; set maintenance policy to TERMINATE for critical workloads.
Sole-tenant nodes are billed per node per hour, regardless of the number of VMs running on them.
Common exam distractor: Shielded VMs and Confidential VMs do not provide physical isolation.
Node capacity cannot be overcommitted; sum of VM vCPUs and memory must fit within the node's capacity.
For high availability, create node groups in multiple zones and use regional managed instance groups with node affinity.
These come up on the exam all the time. Here's how to tell them apart.
Sole-Tenant Nodes
Physical server dedicated to your project only
Higher cost per node (per-node pricing)
Required for compliance with physical isolation mandates (HIPAA, PCI DSS)
Supports BYOL scenarios with per-core licensing
Node groups are zonal; high availability requires multiple groups
Regular Multi-Tenant VMs
Physical server shared with other customers (hypervisor isolation)
Lower cost per VM (pay per VM instance)
Not suitable for compliance requiring dedicated hardware
May complicate BYOL due to shared cores
VMs can be distributed across zones in a regional managed instance group
Mistake
Sole-tenant nodes provide the same isolation as VPC Service Controls.
Correct
Sole-tenant nodes provide physical server isolation, ensuring no other customer's VMs run on the same hardware. VPC Service Controls provide network-level perimeter security, preventing data exfiltration but not affecting host sharing.
Mistake
You can use sole-tenant nodes with any VM type, including preemptible VMs.
Correct
Preemptible VMs are not supported on sole-tenant nodes. Only regular VMs can be created on sole-tenant nodes. Preemptible VMs are designed for fault-tolerant workloads and are terminated within 24 hours, which conflicts with the dedicated nature of sole-tenant nodes.
Mistake
Sole-tenant nodes guarantee live migration during all host maintenance events.
Correct
Live migration is not guaranteed for all maintenance events on sole-tenant nodes. Some events, such as hardware repairs, may require VM termination. You should set the maintenance policy to TERMINATE and design your application to handle restarts.
Mistake
A sole-tenant node group can span multiple regions.
Correct
Node groups are zonal resources. They can only contain nodes in a single zone. To achieve high availability across regions, you must create separate node groups in each region and use regional managed instance groups with appropriate affinity rules.
Mistake
You can mix sole-tenant nodes and regular VMs in the same managed instance group.
Correct
A managed instance group can only use either sole-tenant nodes or regular hosts, not both. If you need a mix, you must create separate instance groups. The instance group's template determines the node affinity.
Reveal each answer, then mark whether you got it right. Score 60%+ to unlock the next chapter.
A sole-tenant node is a physical server dedicated to your project, while a regular instance is a virtual machine that runs on a shared physical host with other customers' VMs. Sole-tenant nodes provide physical isolation for compliance and licensing requirements. Regular VMs are more cost-effective but do not guarantee dedicated hardware.
No, preemptible VMs are not supported on sole-tenant nodes. Preemptible VMs are designed for fault-tolerant workloads and can be terminated at any time, which conflicts with the dedicated and predictable nature of sole-tenant nodes.
Use node affinity labels with a REQUIRED rule. When creating a VM, specify the node group name via the `--node-group` flag, which automatically sets a REQUIRED affinity. This ensures the VM is scheduled only on nodes in that group.
The VM creation will fail. Sole-tenant nodes have fixed vCPU and memory capacity, and you cannot overcommit. You must either reduce the VM's resource requirements or add another node to the node group.
Sole-tenant nodes are billed per node per hour, which can be more expensive than regular VMs if you don't fully utilize the node's capacity. However, if you run many VMs on a single node, the per-VM cost can be lower. For compliance or licensing needs, the premium may be justified.
Live migration is supported for some maintenance events, but not all. For critical workloads, set the maintenance policy to TERMINATE and design your application to handle restarts. During certain hardware repairs, VMs may need to be terminated.
Use the `gcloud compute instances describe VM_NAME --zone ZONE` command and look for the `soleTenantNode` field in the output. It will show the node name and node group.
You've just covered Sole-Tenant Nodes for Compliance — now see how well it sticks with free ACE practice questions. Full explanations included, no account needed.
Done with this chapter?