Back to Course

GCP PlayCloud Labs

0% Complete
0/0 Steps
  1. GCP PlayCloud Labs
  2. Guided Lab: Creating a Cloud Storage Bucket
  3. Guided Lab: How to Launch a GCP Compute Engine Linux Instance
  4. Guided Lab: Creating a Cloud SQL Instance
  5. Guided Lab: Creating a Cloud NAT Gateway
  6. Guided Lab: Running SQL Commands in Cloud SQL Studio
  7. Guided Lab: Hosting a Static Website in Google Cloud Storage Bucket
  8. Guided Lab: Creating and Restoring Cloud SQL Backups
  9. Guided Lab: Vertically Scaling a VM Instance
  10. Guided Lab: Creating a Custom Image from a VM Instance with Web Server in Google Cloud
  11. Guided Lab: Setting up a Web Server on a VM Instance
  12. Guided Lab: Creating a Spot VM Instance
  13. Guided Lab: Exploring Instance Metadata in Google Cloud
  14. Guided Lab: Setting Up and Managing a Database on a VM Instance
  15. Guided Lab: Integrating Cloud SQL Database instance with a VM instance
  16. Guided Lab: Connecting Cloud SQL Database with MySQL Workbench (Local)
  17. Guided Lab: Creating a VM Using Instance Templates
  18. Guided Lab: Installing WordPress on an Ubuntu VM Instance with LEMP Stack
  19. Guided Lab: Reserving or Promoting a Static IP Address for a VM Instance
  20. Guided Lab: Creating a Google Kubernetes Engine (GKE) Cluster
  21. Guided Lab: Protecting Data on Cloud Storage Bucket Against Accidental Delete and Overwrite Using Object Versioning
  22. Guided Lab: Connecting to a Kubernetes Engine Cluster
  23. Guided Lab: Creating and Managing Instance Groups in Compute Engine
  24. Guided Lab: Configuring Shielded VM Options
  25. Guided Lab: SSH Access to GCP VM Instance from Local Machine using SSH Key Pair
  26. Guided Lab: Deploying a Simple Web Application on GKE
  27. Guided Lab: Configuring Firewall Rules to Secure and Access a VM
  28. Guided Lab: Establishing VPC Peering for Secure Cross‑Network Communication
  29. Guided Lab: Creating a Custom Virtual Private Cloud (VPC)
  30. Guided Lab: Using Startup Scripts in GCP VM Instances
  31. Guided Lab: Deploying a LAMP Stack on a Compute Engine VM
  32. Guided Lab: Managing Cloud Storage Buckets via SSH Commands
  33. Guided Lab: Guarding Your VM with Deletion Protection
  34. Guided Lab: Using Cloud Storage Lifecycle Rules to Automate Object Management
  35. Guided Lab: Guarding Your Cloud SQL Instances with Deletion Protection
  36. Guided Lab: Exploring Google Cloud Storage Classes
  37. Guided Lab: Setting Up a Linux Bastion Host on GCP
  38. Guided Lab: Uploading, Organizing, and Managing Objects in Cloud Storage
  39. Guided Lab: Creating an Application Load Balancer
  40. Guided Lab: Creating a Network Load Balancer
  41. Guided Lab: Creating VM Snapshots and Restoring a VM from a Snapshot
Lesson 10 of 41
In Progress

Guided Lab: Creating a Custom Image from a VM Instance with Web Server in Google Cloud

Description

In Compute Engine, a machine image is a resource that preserves all VM details—including configuration, metadata, permissions, and data across multiple disks. Machine images are commonly used for maintenance tasks, backup and recovery operations, and creating identical VM clones.

In this guided lab, you will learn how to create a custom image in Google Cloud Compute Engine from a VM instance that has been configured with a simple web server. This image acts as a reusable blueprint, allowing you to launch new VM instances with the same setup.

Prerequisites

To ensure the successful completion of this lab, you must have prior experience in creating VM instances and be familiar with their essential components. If you feel that your knowledge in this area is insufficient, we highly recommend taking this lab to gain the necessary understanding:

Objectives

In this lab, you will:

  • Create a VM instance in Google Cloud.
  • Configure a simple Nginx web server for verification.
  • Create a custom image from the configured VM.
  • Launch a new VM instance from the custom image.
  • Verify that the web server configuration is preserved.

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.

Create a Custom Image from the VM

1. In the VM instances page, click the three dots next to your VM.

2. Select Create new machine image.

3. Configure the image:

  • Name: Enter your desired name.
  • Location: choose Regional.
  • Leave other settings at defaults.

4. Click Create.

5. Wait until the image status changes to Ready.

Launch a New VM from the Custom Image

1. Navigate to Compute Engine → Machine images.

2. Select the image you created, click Actions Create instance.

2. Leave the configurations at their default values.

3. Click Create.

Verify the Web Server on the New VM

1. Once the new VM is running, click SSH to connect.

2. Confirm Nginx is running

systemctl status nginx

3. Visit the new VM’s external IP address in a browser. You should see the same custom HTML page (Welcome to my web page!).

Congratulations! You have successfully created a custom image in Google Cloud from a VM instance with a configured web server. You then launched a new VM from that image and verified that the web server setup was preserved. This workflow demonstrates how custom images allow you to quickly replicate environments, ensuring consistency and saving time when deploying multiple instances.

Skip to content