Bird
Raised Fist0
GCPcloud~30 mins

Preemptible and Spot VMs in GCP - Mini Project: Build & Apply

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
Using Preemptible and Spot VMs on Google Cloud
📖 Scenario: You are managing a cloud project on Google Cloud Platform (GCP). You want to save costs by using special virtual machines called Preemptible and Spot VMs. These VMs are cheaper but can be stopped by Google at any time. You will create a simple configuration to launch a Spot VM instance.
🎯 Goal: Build a Google Cloud VM instance configuration that uses a Spot VM to reduce costs. You will create the basic VM setup, add a config for Spot VM usage, apply the core VM creation logic, and finalize the configuration with the required properties.
📋 What You'll Learn
Create a VM instance configuration dictionary with a name and machine type
Add a config variable to specify the VM as a Spot VM
Use the core logic to include the Spot VM configuration in the instance
Complete the configuration with the required scheduling property for Spot VMs
💡 Why This Matters
🌍 Real World
Many companies use Spot or Preemptible VMs to save money on cloud costs for batch jobs, testing, or flexible workloads.
💼 Career
Understanding how to configure Spot VMs is useful for cloud engineers and developers aiming to optimize cloud infrastructure costs.
Progress0 / 4 steps
1
Create the basic VM instance configuration
Create a dictionary called vm_instance with these exact entries: 'name': 'cost-saving-vm' and 'machine_type': 'e2-medium'.
GCP
Hint

Think of vm_instance as a simple dictionary holding the VM's name and type.

2
Add the Spot VM configuration variable
Create a variable called spot_config and set it to a dictionary with the key 'preemptible' set to True.
GCP
Hint

This config tells Google Cloud to treat the VM as a Spot VM that can be stopped anytime.

3
Add the Spot VM config to the VM instance
Add a new key 'scheduling' to the vm_instance dictionary and set its value to the spot_config dictionary.
GCP
Hint

This step links the Spot VM settings to the VM instance configuration.

4
Complete the VM configuration with required Spot VM property
Add the key 'on_host_maintenance' with the value 'TERMINATE' inside the spot_config dictionary to complete the Spot VM scheduling configuration.
GCP
Hint

This property ensures the VM stops properly when Google Cloud needs to maintain the host.

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