Instance Management
Basic Instance Operations
# Create instance with detailed specifications
gcloud compute instances create INSTANCE_NAME \
--machine-type=n2-standard-2 \
--zone=us-central1-a \
--image-family=debian-11 \
--image-project=debian-cloud \
--boot-disk-size=50GB \
--boot-disk-type=pd-ssd \
--network=default \
--subnet=default \
--network-tier=PREMIUM \
--maintenance-policy=MIGRATE \
--service-account=SA_EMAIL \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--tags=http-server,https-server \
--metadata=startup-script='#!/bin/bash
apt-get update
apt-get install -y nginx'
# Create instance from template with overrides
gcloud compute instances create-with-container INSTANCE_NAME \
--container-image=gcr.io/PROJECT_ID/IMAGE \
--machine-type=n2-standard-2 \
--boot-disk-size=50GB \
--container-env=KEY1=VALUE1,KEY2=VALUE2 \
--container-mount-host-path=mount-path=/data,host-path=/mnt/data \
--container-restart-policy=always
Advanced Instance Configuration
# Create instance with multiple disks
gcloud compute instances create INSTANCE_NAME \
--machine-type=n2-standard-2 \
--boot-disk-size=50GB \
--boot-disk-type=pd-ssd \
--create-disk=name=data-disk-1,size=200GB,type=pd-ssd,auto-delete=no \
--create-disk=name=data-disk-2,size=500GB,type=pd-standard \
--metadata=serial-port-enable=true
# Create instance with GPU
gcloud compute instances create INSTANCE_NAME \
--machine-type=n1-standard-4 \
--accelerator=type=nvidia-tesla-t4,count=1 \
--maintenance-policy=TERMINATE \
--metadata=install-nvidia-driver=True
# Create preemptible instance
gcloud compute instances create INSTANCE_NAME \
--machine-type=n2-standard-2 \
--preemptible \
--maintenance-policy=TERMINATE
Networking Configuration
# Create instance with multiple network interfaces
gcloud compute instances create INSTANCE_NAME \
--machine-type=n2-standard-2 \
--network-interface=network=default,subnet=default \
--network-interface=network=vpc-2,subnet=subnet-2,no-address \
--private-network-ip=10.0.0.2
# Configure instance with static IP
gcloud compute addresses create STATIC_IP_NAME \
--region=us-central1
gcloud compute instances create INSTANCE_NAME \
--machine-type=n2-standard-2 \
--address=STATIC_IP_NAME
# Configure instance with alias IP ranges
gcloud compute instances create INSTANCE_NAME \
--machine-type=n2-standard-2 \
--network-interface=network=default,subnet=default,aliases=/24
Instance Groups and Templates
# Create instance template
gcloud compute instance-templates create TEMPLATE_NAME \
--machine-type=n2-standard-2 \
--image-family=debian-11 \
--image-project=debian-cloud \
--boot-disk-size=50GB \
--metadata=startup-script='#!/bin/bash
apt-get update
apt-get install -y nginx' \
--tags=http-server,https-server
# Create managed instance group
gcloud compute instance-groups managed create GROUP_NAME \
--template=TEMPLATE_NAME \
--size=3 \
--zone=us-central1-a \
--health-check=HC_NAME \
--initial-delay=300
# Configure autoscaling
gcloud compute instance-groups managed set-autoscaling GROUP_NAME \
--zone=us-central1-a \
--max-num-replicas=10 \
--min-num-replicas=2 \
--target-cpu-utilization=0.7 \
--cool-down-period=300
# Update instance group
gcloud compute instance-groups managed rolling-action start-update GROUP_NAME \
--version=template=NEW_TEMPLATE \
--max-surge=3 \
--max-unavailable=0
Maintenance and Operations
# Create snapshot schedule
gcloud compute resource-policies create snapshot-schedule SCHEDULE_NAME \
--region=us-central1 \
--max-retention-days=14 \
--on-source-disk-delete=keep-auto-snapshots \
--daily-schedule \
--start-time=04:00
# Attach snapshot schedule to disk
gcloud compute disks add-resource-policies DISK_NAME \
--resource-policies=SCHEDULE_NAME \
--zone=us-central1-a
# Configure maintenance window
gcloud compute instances update-container INSTANCE_NAME \
--container-image=gcr.io/PROJECT_ID/NEW_IMAGE \
--container-restart-policy=always
# Configure live migration
gcloud compute instances set-scheduling INSTANCE_NAME \
--maintenance-policy=MIGRATE \
--max-run-duration=24h
Monitoring and Logging
# Create custom metric
gcloud monitoring metrics create custom.googleapis.com/METRIC_NAME \
--metric-kind=gauge \
--value-type=double \
--description="Description"
# Create alert policy
gcloud monitoring policies create \
--condition-filter='metric.type="compute.googleapis.com/instance/cpu/utilization"
resource.type="gce_instance"
metric.label.instance_name="INSTANCE_NAME"' \
--condition-threshold-value=0.8 \
--condition-threshold-duration=300s \
--notification-channels=CHANNEL_ID \
--display-name="High CPU Usage Alert"
# Configure logging
gcloud logging sinks create SINK_NAME \
storage.googleapis.com/BUCKET_NAME \
--log-filter='resource.type="gce_instance"
resource.labels.instance_id="INSTANCE_ID"'
[Continue with BigQuery Deep Dive…]
Would you like me to continue with the comprehensive BigQuery deep dive next?