GCP PlayCloud Labs
-
GCP PlayCloud Labs
-
Guided Lab: How to Launch a GCP Compute Engine Linux Instance
-
Guided Lab: Creating a VM Using Instance Templates
-
Guided Lab: Creating and Managing Instance Groups in Compute Engine
-
Guided Lab: Creating a Spot VM Instance
-
Guided Lab: Configuring Shielded VM Options
-
Guided Lab: Exploring Instance Metadata in Google Cloud
-
Guided Lab: Vertically Scaling a VM Instance
-
Guided Lab: Setting up a Web Server on a VM Instance
-
Guided Lab: Using Startup Scripts in GCP VM Instances
-
Guided Lab: Creating a Custom Image from a VM Instance with Web Server in Google Cloud
-
Guided Lab: Creating VM Snapshots and Restoring a VM from a Snapshot
-
Guided Lab: Setting Up and Managing a Database on a VM Instance
-
Guided Lab: Installing WordPress on an Ubuntu VM Instance with LEMP Stack
-
Guided Lab: Deploying a LAMP Stack on a Compute Engine VM
-
Guided Lab: Reserving or Promoting a Static IP Address for a VM Instance
-
Guided Lab: SSH Access to GCP VM Instance from Local Machine using SSH Key Pair
-
Guided Lab: Guarding Your VM with Deletion Protection
-
Guided Lab: Setting Up a Linux Bastion Host on GCP
-
Guided Lab: Creating a Cloud Storage Bucket
-
Guided Lab: Uploading, Organizing, and Managing Objects in Cloud Storage
-
Guided Lab: Exploring Google Cloud Storage Classes
-
Guided Lab: Hosting a Static Website in Google Cloud Storage Bucket
-
Guided Lab: Protecting Data on Cloud Storage Bucket Against Accidental Delete and Overwrite Using Object Versioning
-
Guided Lab: Using Cloud Storage Lifecycle Rules to Automate Object Management
-
Guided Lab: Managing Cloud Storage Buckets via SSH Commands
-
Guided Lab: Creating a Cloud SQL Instance
-
Guided Lab: Running SQL Commands in Cloud SQL Studio
-
Guided Lab: Creating and Restoring Cloud SQL Backups
-
Guided Lab: Integrating Cloud SQL Database instance with a VM instance
-
Guided Lab: Connecting Cloud SQL Database with MySQL Workbench (Local)
-
Guided Lab: Guarding Your Cloud SQL Instances with Deletion Protection
-
Guided Lab: Creating a Cloud NAT Gateway
-
Guided Lab: Creating a Google Kubernetes Engine (GKE) Cluster
-
Guided Lab: Connecting to a Kubernetes Engine Cluster
-
Guided Lab: Deploying a Simple Web Application on GKE
-
Guided Lab: Creating a Custom Virtual Private Cloud (VPC)
-
Guided Lab: Establishing VPC Peering for Secure Cross‑Network Communication
-
Guided Lab: Configuring Firewall Rules to Secure and Access a VM
-
Guided Lab: Creating an Application Load Balancer
-
Guided Lab: Creating a Network Load Balancer
Guided Lab: Reserving or Promoting a Static IP Address for a VM Instance
Description
By default, Google Cloud VM instances are assigned ephemeral external IP addresses, which can change whenever the VM is stopped and restarted. This behavior can disrupt services that rely on a consistent endpoint, such as websites or DNS mappings. To prevent this, you can promote an existing ephemeral IP to a static external IP address.
This lab will guide you through promoting an ephemeral IP to static and verifying its persistence by hosting a simple Nginx web server.
Prerequisites
To ensure the successful completion of this lab, we highly recommend taking these guided labs to gain the necessary understanding:
- Guided Lab: How to Launch a GCP Compute Engine Linux Instance
- Guided Lab: Setting up a Web Server on a VM Instance
Objectives
In this lab, you will:
- Create a VM instance.
- Configure a simple Nginx web server for verification.
- Locate the VM’s ephemeral external IP.
- Reserve or promote the ephemeral IP to a static IP.
- Confirm that the web page remains accessible after restarting the VM, proving the IP address is persistent.
Lab Steps
Create a Compute Engine VM Instance
1. Create a VM instance using the following machine configurations:
- Name: Enter your desired instance name.
- Machine type: Choose e2-micro (Preset)

2. Under Network → Firewall, check:
- Allow HTTP traffic

3. Leave other configurations at their default values.
4. Once done, click the Create button.
Set Up a Web Server
1. SSH into the VM from the console.
2. Run the following commands:
# Update system
sudo apt update -y
# Install Nginx
sudo apt install nginx -y
# Start Nginx
sudo systemctl start nginx
# Create a custom HTML page in the HTML directory
echo '<h1>Welcome to my web page!</h1>' | sudo tee /usr/share/nginx/html/mypage.html > /dev/null
# Add the configuration directly
echo 'server {
listen 80 default_server;
server_name _;
root /usr/share/nginx/html;
location / {
index mypage.html;
}
}' | sudo tee /etc/nginx/conf.d/server.conf > /dev/null
# Remove the default site to avoid duplicate default_server errors:
sudo unlink /etc/nginx/sites-enabled/default
# Test and Reload Nginx for the changes to take effect
sudo nginx -t && sudo service nginx reload
# Enable Nginx at boot
sudo systemctl enable nginx

Verify Web Server
1. From your local browser, visit:
http://<VM_EXTERNAL_IP>
2. You should see your custom HTML page.

Locate the VM’s External IP
1. In the Google Cloud Console, go to Compute Engine → VM instances.
2. Identify the VM you want to configure.
3. Note the External IP currently assigned to the VM. This is ephemeral by default.

Promote the Ephemeral IP to Static
1. In the Google Cloud Console, navigate to VPC Network → IP addresses.

2. Find the external IP assigned to your VM in the list.

3. In the Actions column for that IP, click Promote to static IP address.
4. Enter a name (e.g., static-ip-demo).

5. Click Reserve.
The IP is now static and will remain assigned to your VM.
Verify the Static IP
1. Go back to your VM instance from the Compute Engine → VM instances page
2. Select the Instance, then go to the Network interfaces.
It should remain the same, confirming that the IP is static.

2. Stop and start the VM to test persistence.


3. Once restarted, test by visiting:
http://<STATIC_IP>
3. You should still see your custom HTML page. This confirms that the web server remains accessible and the IP address is now persistent after being changed from ephemeral to static.
Congratulations! You have successfully promoted an ephemeral external IP to a static IP address for your VM instance in Google Cloud. This ensures that your VM retains the same public IP address even after restarts, making it reliable for hosting websites, connecting DNS records, or running applications that require consistent external access.