Bird
Raised Fist0
GCPcloud~10 mins

Preemptible and Spot VMs in GCP - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to specify a preemptible VM instance in the configuration.

GCP
resource "google_compute_instance" "vm_instance" {
  name         = "preemptible-vm"
  machine_type = "e2-medium"
  zone         = "us-central1-a"

  scheduling {
    preemptible = [1]
  }

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-11"
    }
  }

  network_interface {
    network = "default"
  }
}
Drag options to blanks, or click blank then click option'
A1
Bfalse
C"yes"
Dtrue
Attempts:
3 left
💡 Hint
Common Mistakes
Using string values like "yes" instead of boolean true.
Setting preemptible to false which disables preemptible behavior.
2fill in blank
medium

Complete the code to specify a Spot VM instance using the instance_termination_action property.

GCP
resource "google_compute_instance" "spot_vm" {
  name         = "spot-vm"
  machine_type = "e2-medium"
  zone         = "us-central1-a"

  scheduling {
    provisioning_model = "SPOT"
    [1] = "TERMINATE"
  }

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-11"
    }
  }

  network_interface {
    network = "default"
  }
}
Drag options to blanks, or click blank then click option'
Apreemptible
Binstance_termination_action
Cspot
Dtermination_action
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'preemptible' property which is for preemptible VMs, not Spot VMs.
Using incorrect property names like 'spot' or 'termination_action'.
3fill in blank
hard

Fix the error in the scheduling block to correctly configure a Spot VM with automatic restart disabled.

GCP
scheduling {
  provisioning_model = "SPOT"
  [1] = false
}
Drag options to blanks, or click blank then click option'
Aauto_restart
Brestart_auto
Cautomatic_restart
Drestart_automatically
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'auto_restart' which is not recognized.
Using 'restart_automatically' which is invalid.
4fill in blank
hard

Fill both blanks to configure a Spot VM with termination action set to terminate and no automatic restart.

GCP
scheduling {
  provisioning_model = "SPOT"
  [1] = "TERMINATE"
  [2] = false
}
Drag options to blanks, or click blank then click option'
Ainstance_termination_action
Bpreemptible
Cautomatic_restart
Drestart_policy
Attempts:
3 left
💡 Hint
Common Mistakes
Confusing 'preemptible' with Spot VM properties.
Using 'restart_policy' which is not valid here.
5fill in blank
hard

Fill all three blanks to create a preemptible VM with automatic restart disabled and a custom machine type.

GCP
resource "google_compute_instance" "custom_vm" {
  name         = "custom-preemptible-vm"
  machine_type = [1]
  zone         = "us-central1-a"

  scheduling {
    preemptible       = [2]
    automatic_restart = [3]
  }

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-11"
    }
  }

  network_interface {
    network = "default"
  }
}
Drag options to blanks, or click blank then click option'
A"custom-4-8192"
Btrue
Cfalse
D"e2-medium"
Attempts:
3 left
💡 Hint
Common Mistakes
Using default machine types instead of custom strings.
Setting preemptible to false which disables preemptible behavior.
Setting automatic_restart to true which enables restart.

Practice

(1/5)
1. What is the main advantage of using Preemptible or Spot VMs in Google Cloud?
easy
A. They offer unlimited storage capacity
B. They provide guaranteed uptime for critical applications
C. They cost less but can be stopped at any time
D. They automatically scale without user input

Solution

  1. Step 1: Understand the cost and availability trade-off

    Preemptible and Spot VMs are cheaper because Google can stop them anytime to reclaim resources.
  2. Step 2: Identify the main benefit

    The main benefit is cost savings with the risk of interruption, not guaranteed uptime or unlimited storage.
  3. Final Answer:

    They cost less but can be stopped at any time -> Option C
  4. Quick Check:

    Cost savings with interruptions = D [OK]
Hint: Cheaper VMs can be stopped anytime, so cost saving is main benefit [OK]
Common Mistakes:
  • Thinking they guarantee uptime
  • Assuming they scale automatically
  • Confusing with storage features
2. Which of the following is the correct way to specify a Spot VM in a Google Cloud VM creation command?
easy
A. gcloud compute instances create my-vm --spot
B. gcloud compute instances create my-vm --interruptible
C. gcloud compute instances create my-vm --preemptible
D. gcloud compute instances create my-vm --ephemeral

Solution

  1. Step 1: Recall the flag for Spot VMs

    Spot VMs use the flag --spot in the gcloud command.
  2. Step 2: Differentiate from Preemptible flag

    --preemptible is for older Preemptible VMs, --spot is the newer recommended option.
  3. Final Answer:

    gcloud compute instances create my-vm --spot -> Option A
  4. Quick Check:

    Spot VM flag = --spot [OK]
Hint: Spot VMs use --spot flag, not --preemptible [OK]
Common Mistakes:
  • Using --preemptible for Spot VMs
  • Confusing --interruptible as a flag
  • Using unrelated flags like --ephemeral
3. Consider this snippet of a VM creation command:
gcloud compute instances create test-vm --zone=us-central1-a --spot --machine-type=e2-medium
What will happen if Google Cloud needs the resources back?
medium
A. The VM will automatically migrate to another zone
B. The VM will continue running without interruption
C. The VM will be stopped immediately without warning
D. The VM will receive a 30-second warning before stopping

Solution

  1. Step 1: Understand Spot VM behavior on resource reclamation

    Spot VMs are interruptible but Google Cloud sends a 30-second warning before stopping them.
  2. Step 2: Eliminate other options

    Immediate stop without warning is incorrect; automatic migration does not happen for Spot VMs; uninterrupted running contradicts the interruptible nature.
  3. Final Answer:

    The VM will receive a 30-second warning before stopping -> Option D
  4. Quick Check:

    Spot VMs get 30-second warning before stop = A [OK]
Hint: Spot VMs get 30-second warning before stopping [OK]
Common Mistakes:
  • Assuming immediate stop without warning
  • Thinking Spot VMs migrate automatically
  • Believing Spot VMs never stop
4. You created a VM with the command:
gcloud compute instances create my-vm --preemptible --zone=us-east1-b
But you want to switch to Spot VM instead. What is the correct fix?
medium
A. Add --spot flag without removing --preemptible
B. Replace --preemptible with --spot in the command
C. Change the zone to a Spot-only zone
D. Use --interruptible flag instead of --preemptible

Solution

  1. Step 1: Identify the correct flag for Spot VMs

    Spot VMs require the --spot flag, not --preemptible.
  2. Step 2: Correct the command by replacing flags

    Remove --preemptible and add --spot to switch VM type.
  3. Final Answer:

    Replace --preemptible with --spot in the command -> Option B
  4. Quick Check:

    Switching VM type requires flag replacement = B [OK]
Hint: Remove --preemptible, add --spot to switch VM type [OK]
Common Mistakes:
  • Adding --spot without removing --preemptible
  • Changing zone expecting Spot-only zones
  • Using non-existent --interruptible flag
5. You want to run a batch job that can tolerate interruptions and save costs. Which approach best uses Spot VMs to handle sudden stops and restarts?
hard
A. Design the job to save progress frequently and restart automatically on VM preemption
B. Use Spot VMs without any checkpointing or restart logic
C. Run the job on standard VMs to avoid interruptions
D. Use Spot VMs but disable automatic restarts

Solution

  1. Step 1: Understand Spot VM interruption nature

    Spot VMs can stop anytime, so jobs must handle interruptions gracefully.
  2. Step 2: Choose a strategy to handle interruptions

    Saving progress frequently and restarting automatically ensures job completion despite stops.
  3. Step 3: Eliminate unsafe options

    Running without checkpointing risks data loss; standard VMs cost more; disabling restarts loses fault tolerance.
  4. Final Answer:

    Design the job to save progress frequently and restart automatically on VM preemption -> Option A
  5. Quick Check:

    Checkpointing + auto-restart = reliable Spot VM use [OK]
Hint: Checkpoint progress and auto-restart for Spot VM jobs [OK]
Common Mistakes:
  • Ignoring checkpointing and restart logic
  • Choosing standard VMs for cost savings
  • Disabling automatic restarts on Spot VMs