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 in…
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-aMachine 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 workloadsSSH & 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