始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Create the network and backends/test subnets
/ 20
Create firewall rules
/ 20
Create backend managed instance groups (MIGs)
/ 20
Configure the load balancer
/ 20
Test the load balancer
/ 20
Create the network and backends/test subnets
/ 20
Create firewall rules
/ 20
Create backend managed instance groups (MIGs)
/ 20
Configure the load balancer
/ 20
Test the load balancer
/ 20
A regional internal proxy Network Load Balancer is used when you need to load balance internal traffic (from within your VPC or connected networks) and your application requires Layer 4 proxy-based control, like TLS/SSL termination (unavailable in the Passthrough model).
This load balancer is the optimal solution for managing robust, scalable internal services.
Internal Access Only: The key constraint is that the service is exposed via an internal IP address only accessible to clients inside your private network or private connections (VPN, Interconnect).
Proxy-Based Stability: This is a full proxy. The load balancer terminates the client connection and establishes a new one to the backend. This allows for superior session management, health monitoring, and connection draining.
Layer 4 TLS Termination: The proxy function allows you to implement TLS/SSL termination at the load balancer level for internal traffic, securing service-to-service communication without placing the decryption burden on the backends.
Global Access (Optional): While regional by default, this NLB supports global access, allowing clients in other regions of your VPC to reach the internal IP, which is a significant feature for distributed applications (out of scope for this lab).
In this lab you will configure a custom VPC network and a proxy-only subnet, set ingress firewall rules, and deploy a Regional Internal Proxy Network Load Balancer with specific port mapping to ensure backend health and validate internal traffic distribution using a client VM.
There is an optional task at the end of the lab to practice the skills you've learned.
proxy-only subnet and establish a proxy security policy with VPC ingress firewall rules.Read these instructions. Labs are timed and you cannot pause them. The timer, which starts when you click Start Lab, shows how long Google Cloud resources are made available to you.
This hands-on lab lets you do the lab activities in a real cloud environment, not in a simulation or demo environment. It does so by giving you new, temporary credentials you use to sign in and access Google Cloud for the duration of the lab.
To complete this lab, you need:
Click the Start Lab button. If you need to pay for the lab, a dialog opens for you to select your payment method. On the right is the Lab setup and access panel with the following:
Note that the lab timer is located near the top of the page, showing the remaining time.
Click Open Google Cloud console (or right-click and select Open Link in Incognito Window if you are running the Chrome browser).
The lab spins up resources, and then opens another tab that shows the Sign in page.
Tip: Arrange the tabs in separate windows, side-by-side.
If necessary, copy the Username below and paste it into the Sign in dialog.
You can also find the Username in the Lab setup and access panel.
Click Next.
Copy the Password below and paste it into the Welcome dialog.
You can also find the Password in the Lab setup and access panel.
Click Next.
Click through the subsequent pages:
After a few moments, the Google Cloud console opens in this tab.
In this task you are building the foundation. The internal proxy NLB model introduces a critical networking requirement: the proxy-only subnet. This reserved, dedicated subnet range is where Google Cloud provisions the Envoy proxies that run the load balancing service.
You must first create a custom VPC network with 2 required subnets: one for your backends (backend-subnet) and the essential one for the proxy control plane (proxy-only-subnet).
Network: lb-network (Custom Mode)
Backend Subnet
Proxy-Only Subnet
In the Google Cloud console, navigate to the VPC network page. You can use the search bar at the top of the page, or the menu button in the top left corner.
Click Create VPC network.
For Name, enter lb-network.
Set the Subnet creation mode to Custom.
Under New subnet, specify the following properties to create the subnets.
Create the Backend Subnet:
| Property | Value |
|---|---|
| Name | backend-subnet |
| Region | |
| IPv4 range | 10.1.2.0/24 |
Click Done.
This subnet is exclusively for Google-managed Envoy proxies. You cannot assign backends or forwarding rule IPs from this range.
In the console, go to the VPC networks page and click the lb-network name.
Click on the Subnets tab along the top. Click Add subnet.
| Property | Value |
|---|---|
| Name | proxy-only-subnet |
| Region | |
| Purpose | Regional Managed Proxy |
| IPv4 range | 10.129.0.0/23 |
Click Add.
Click Check my progress to verify the objective.
In this task you're defining the security matrix. Since the load balancer is a proxy, traffic to the backends comes from two specific sources: Google's Health Check IP ranges (for probes) and the IP range of the Proxy-Only Subnet (for forwarded client traffic). You must explicitly create three ingress rules to allow this traffic, otherwise the default firewall rule will block your service.
In the console, navigate to Navigation menu > VPC network > Firewall.
Click Create Firewall Rule.
Set the following values, leave all other values at their defaults:
| Property | Value (type value or select option as specified) |
|---|---|
| Name | fw-allow-ssh |
| Target tags | allow-ssh |
| Source filter | IPv4 Ranges |
| Source IP ranges | 0.0.0.0/0 |
| Protocols and ports | Specified protocols and ports, and then check tcp, type: 22 |
Click Create.
Create another firewall rule named fw-allow-health-check
Set the following values, leave all other values at their defaults:
| Property | Value (type value or select option as specified) |
|---|---|
| Name | fw-allow-health-check |
| Target tags | allow-health-check |
| Source filter | IPv4 Ranges |
| Source IP ranges | 130.211.0.0/22, 35.191.0.0/16 |
| Protocols and ports | Specified protocols and ports, and then check tcp, type: 80 |
Click Create.
Create another firewall rule named fw-allow-proxy-only-subnet and set the following values:
| Property | Value (type value or select option as specified) |
|---|---|
| Name | fw-allow-proxy-only-subnet |
| Target tags | allow-proxy-only-subnet |
| Source filter | IPv4 Ranges |
| Source IP ranges | 10.129.0.0/23 |
| Protocols and ports | Specified protocols and ports, and then check tcp, type: 80 |
Click Create.
Click Check my progress to verify the objective.
Your backends are hosted on two Managed Instance Groups (MIGs) across two different zones in
int-tcp-proxy-backend-template.allow-ssh, allow-health-check, and allow-proxy-only-subnet.lb-network and Subnet: backend-subnet and click Done.Navigate to the Instance groups page.
Click Create instance group > New managed instance group (stateless).
| Property | Value |
|---|---|
| Name | mig-a |
| Instance template | int-tcp-proxy-backend-template |
| Region | |
| Zone | |
| Autoscaling mode | Off: do not autoscale (Max instances: 2) |
| Port mapping | Add port name tcp80 mapped to port number 80
|
Click Create.
Repeat the process to create mig-c in a different zone from the instance group above.
Keep all other settings the same.
Click Check my progress to verify the objective.
Wait 3-5 minutes for the MIG instances to finish starting and the startup script to complete.
0.0.0.0:80 or :::80. If it shows 127.0.0.1:80, the startup script failed to bind to all interfaces, and the lab will fail later.Now you will define the health check, the backend service (which consumes the MIGs), and the frontend (which exposes the internal IP on the service port 110). The port mapping (tcp80 to 80) ensures the NLB uses the correct port to connect to the backends, while the frontend port (110) is what clients use to connect to the proxy.
gcloud commands to reserve a static internal IPv4 address in backend-subnet.The output of this command is your LB_IP_Address. Make a note of it, you will need it later in this lab.
In the console, type Load Balancing in the search bar at the top. Under Products & Pages, click on Load balancing
on the Network Services > Load balancing page, click + Create load balancer.
Select Network Load Balancer (TCP/UDP/SSL) and Next.
Select Proxy load balancer and Next
Select Internal and Next
Select Best for regional workloads and Next.
Select Configure.
Name the load balancer as my-int-tcp-lb, region as lb-network
Choose Backend Configuration:
| Property | Value |
|---|---|
| Protocol | Select TCP
|
| Named Port | Enter tcp80
|
Under Health check, click Create a health check
| Property | Value |
|---|---|
| Name | tcp-health-check |
| Protocol | Select TCP
|
| Port | Enter 80
|
Click Create.
Set the following values for the backend:
mig-a.80
Click Done.
Click Add a backend.
Repeat the same for mig-c with port number 80
Click on Frontend configuration and set the following values:
| Property | Value |
|---|---|
| Name | int-tcp-forwarding-rule |
| Subnetwork | From the dropdown, select the backend-subnet
|
| IP address | Select the reserved internal IP address for the load balancer |
| Port | 110 |
| Proxy Protocol | Off |
Click Review and finalize then Create and wait for the load balancer to be created.
Click Check my progress to verify the objective.
Since this is an internal load balancer, you cannot test it from the internet. You must first provision a client VM within the VPC network. You will then use curl to connect from this internal client to the load balancer's internal IP on the service port (110) to validate traffic distribution.
In the Console, go to Compute Engine > VM Instances. Click the Create Instance button.
Set the following values, leave all other values at their defaults:
| Property | Value |
|---|---|
| Name | client-vm |
| Zone | set same region as the backends |
| Network tags | allow-ssh |
| Network interface | Click Add a network interfaces and select Network as lb-network and Subnet as backend-subnet
|
Click Create.
Before proceeding with the curl test, wait 5-10 minutes for the MIGs to finish provisioning and for the health check probes to start and mark the backends as healthy. If the backends aren't ready, you may see an error like this: curl: (56) Recv failure: Connection reset by peer error which means that the backends are Unhealthy and the load balancer has nowhere to send the traffic.
To verify the health status, run the following in Cloud Shell:
You should see an output similar to the following, showing both Instance Groups (mig-a and mig-c) are in a HEALTHY state:
If the status is UNHEALTHY or UNKNOWN: do not proceed. Re-verify that the firewall rule fw-allow-health-check is correctly configured to allow traffic from 130.211.0.0/22, 35.191.0.0/16 to port 80 on instances with the tag allow-health-check. Wait a few more minutes and re-run the get-health command.
Once you've confirmed that the backends are healty, send some traffic to confirm it is getting distributed to both backends.
When prompted, enter Y to confirm creating a new directory.
When prompted for a passphrase, press Enter for no passphrase, and then again to confirm.
110):The connection should be established immediately (Connected to <LB_IP_ADDRESS>). If it hangs or shows a "Connection refused" or "Connection timed out" error, check the fw-allow-proxy-only-subnet firewall rule in Task 2 to ensure the client-vm (which is in backend-subnet: 10.1.2.0/24) is allowed to talk to the LB VIP.
curl command to send traffic to the load balancer's reserved internal IP. Replace <LB_IP_ADDRESS> with the IP address you noted earlier:You should see a response showing the hostname of one of your backend instances (mig-a-XXXX or mig-c-XXXX).
Run the command repeatedly. You should see the hostname alternate, confirming that the regional internal proxy Network Load Balancer is successfully distributing internal client traffic across your zonal backend MIGs.
Click Check my progress to verify the objective.
In this optional task, you refactor the VM deployment to use distinct instance templates. This enforces the principle of least privilege by ensuring the client VM does not have unnecessary backend-specific network tags.
curl test to ensure functionality is unchanged.You have learned how to deploy a regional internal proxy Network Load Balancer (NLB) on Google Cloud. This service is essential for managing internal TCP traffic (within your VPC or connected private networks) that requires proxy-based control and advanced features like TLS termination.
...helps you make the most of Google Cloud technologies. Our classes include technical skills and best practices to help you get up to speed quickly and continue your learning journey. We offer fundamental to advanced level training, with on-demand, live, and virtual options to suit your busy schedule. Certifications help you validate and prove your skill and expertise in Google Cloud technologies.
Manual Last Updated: November 19, 2025
Lab Last Tested: October 27, 2025
Copyright 2026 Google LLC. All rights reserved. Google and the Google logo are trademarks of Google LLC. All other company and product names may be trademarks of the respective companies with which they are associated.
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください
ラボを開始するには、この簡単な手順を完了してください。