Compute Engine
01 / 02

VM Management & Configuration

Compute Engine: VM Management & Configuration

Google Cloud Compute Engine provides scalable virtual machines running in Google's data centers. VMs are called instances. You pick the machine type (CPU + RAM), boot disk OS, region, and zone.

Creating Instances

# Create a basic instance
gcloud compute instances create my-vm   --zone=us-central1-a   --machine-type=e2-medium   --image-family=debian-12   --image-project=debian-cloud   --boot-disk-size=20GB

# With startup script
gcloud compute instances create my-vm   --zone=us-central1-a   --machine-type=e2-medium   --image-family=ubuntu-2204-lts   --image-project=ubuntu-os-cloud   --metadata-from-file startup-script=startup.sh

# From a custom image
gcloud compute instances create my-vm   --image=my-custom-image   --image-project=my-project

# List instances
gcloud compute instances list
gcloud compute instances list --filter="zone:us-central1-a"

# Describe instance
gcloud compute instances describe my-vm --zone=us-central1-a

Machine Types

General-purpose (cost-effective):
  e2-micro       — 0.25 vCPU, 1 GB RAM (free tier eligible)
  e2-small       — 0.5 vCPU, 2 GB RAM
  e2-medium      — 1 vCPU, 4 GB RAM
  e2-standard-2  — 2 vCPU, 8 GB RAM
  e2-standard-4  — 4 vCPU, 16 GB RAM
  e2-standard-8  — 8 vCPU, 32 GB RAM

Compute-optimized:
  c2-standard-4  — 4 vCPU, 16 GB RAM (high freq, good for compute)
  c2-standard-8  — 8 vCPU, 32 GB RAM

Memory-optimized:
  m1-megamem-96  — 96 vCPU, 1.4 TB RAM

Custom machine types:
  e2-custom-4-8192   — 4 vCPU, 8 GB RAM (specify exactly what you need)

Spot VMs:
  --provisioning-model=SPOT    — up to 91% cheaper, can be preempted
  --instance-termination-action=STOP  (or DELETE)
  Good for: batch jobs, fault-tolerant workloads

SSH & Instance Management

# SSH into instance
gcloud compute ssh my-vm --zone=us-central1-a
gcloud compute ssh my-vm --zone=us-central1-a -- -L 8080:localhost:8080  # with port forward

# Copy files
gcloud compute scp local-file.txt my-vm:/home/user/ --zone=us-central1-a
gcloud compute scp my-vm:/remote/file.txt ./local/ --zone=us-central1-a

# Start/stop/reset
gcloud compute instances start my-vm --zone=us-central1-a
gcloud compute instances stop my-vm --zone=us-central1-a
gcloud compute instances reset my-vm --zone=us-central1-a   # hard reset

# Delete instance
gcloud compute instances delete my-vm --zone=us-central1-a

# Update machine type (must stop first)
gcloud compute instances stop my-vm --zone=us-central1-a
gcloud compute instances set-machine-type my-vm   --machine-type=e2-standard-4 --zone=us-central1-a
gcloud compute instances start my-vm --zone=us-central1-a

# Run command on instance
gcloud compute ssh my-vm --zone=us-central1-a --command="sudo apt-get update"

Instance Groups & Autoscaling

# Create instance template
gcloud compute instance-templates create web-template   --machine-type=e2-medium   --image-family=debian-12   --image-project=debian-cloud   --metadata-from-file startup-script=startup.sh   --tags=http-server

# Create managed instance group
gcloud compute instance-groups managed create web-group   --base-instance-name=web   --template=web-template   --size=2   --zone=us-central1-a

# Set autoscaling
gcloud compute instance-groups managed set-autoscaling web-group   --zone=us-central1-a   --min-num-replicas=2   --max-num-replicas=10   --target-cpu-utilization=0.6   --cool-down-period=90

Keep your own version of these notes — editable, searchable, and organised by your stack.

Start free