Bird
Raised Fist0
GCPcloud~5 mins

Cost optimization strategies in GCP - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Cost optimization strategies
O(n * m)
Understanding Time Complexity

We want to understand how the cost-saving actions in cloud setups grow as we add more resources or services.

How does the effort or number of steps to optimize costs change when the cloud environment grows?

Scenario Under Consideration

Analyze the time complexity of the following cost optimization steps.


// Pseudocode for cost optimization in GCP
for each project in organization:
  list all active resources
  for each resource:
    check usage metrics
    if underused:
      recommend rightsizing or shutdown
    else if idle:
      recommend shutdown
    else:
      continue
    log recommendation
    notify owner
    
// This repeats for all projects and resources
    

This sequence checks all resources in all projects to find cost-saving opportunities.

Identify Repeating Operations

Identify the API calls, resource checks, and notifications that repeat.

  • Primary operation: Listing and checking each resource's usage metrics.
  • How many times: Once for every resource in every project.
  • Secondary operations: Logging recommendations and notifying owners for each resource.
How Execution Grows With Input

As the number of projects and resources grows, the number of checks and notifications grows too.

Input Size (n)Approx. Api Calls/Operations
10 projects with 10 resources each~100 resource checks and notifications
100 projects with 100 resources each~10,000 resource checks and notifications
1000 projects with 1000 resources each~1,000,000 resource checks and notifications

Pattern observation: The total operations grow quickly as both projects and resources increase, multiplying together.

Final Time Complexity

Time Complexity: O(n * m)

This means the effort grows proportionally to the number of projects times the number of resources per project.

Common Mistake

[X] Wrong: "Checking one resource means the total effort grows only a little as we add more resources."

[OK] Correct: Each resource requires its own check and notification, so the total effort adds up quickly as resources increase.

Interview Connect

Understanding how cost optimization scales helps you design efficient cloud management tools and shows you think about real-world cloud challenges.

Self-Check

"What if we batch notifications instead of sending one per resource? How would the time complexity change?"

Practice

(1/5)
1. Which of the following is a basic way to reduce costs in Google Cloud Platform (GCP)?
easy
A. Use the most powerful machines regardless of need
B. Increase the number of virtual machines
C. Use smaller or cheaper machine types
D. Keep all resources running 24/7

Solution

  1. Step 1: Understand cost drivers in GCP

    Machine types with more CPU and memory cost more money.
  2. Step 2: Choose cost-saving options

    Using smaller or cheaper machine types reduces the hourly cost.
  3. Final Answer:

    Use smaller or cheaper machine types -> Option C
  4. Quick Check:

    Smaller machines cost less [OK]
Hint: Pick smaller machines to save money quickly [OK]
Common Mistakes:
  • Thinking more machines always save money
  • Believing running all resources nonstop is cheaper
  • Choosing the most powerful machines by default
2. Which of the following is the correct way to specify a preemptible VM in a GCP instance creation command?
easy
A. gcloud compute instances create my-vm --preemptible
B. gcloud compute instances create my-vm --no-preemptible
C. gcloud compute instances create my-vm --machine-type=preemptible
D. gcloud compute instances create my-vm --enable-preemptible=false

Solution

  1. Step 1: Review gcloud syntax for preemptible VMs

    The flag to create a preemptible VM is --preemptible.
  2. Step 2: Identify the correct command

    gcloud compute instances create my-vm --preemptible uses --preemptible correctly to enable preemptible VM.
  3. Final Answer:

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

    Use --preemptible flag to create preemptible VM [OK]
Hint: Look for --preemptible flag to enable preemptible VMs [OK]
Common Mistakes:
  • Using --no-preemptible which disables preemptible
  • Confusing machine-type with preemptible flag
  • Using incorrect flag names
3. Consider this Python snippet using GCP SDK to list VM instances and filter by machine type for cost optimization:
instances = [
  {"name": "vm1", "machine_type": "n1-standard-1"},
  {"name": "vm2", "machine_type": "n1-highmem-4"},
  {"name": "vm3", "machine_type": "n1-standard-1"}
]
cheap_vms = [vm["name"] for vm in instances if vm["machine_type"] == "n1-standard-1"]
print(cheap_vms)
What is the output?
medium
A. ['vm2']
B. ['vm1', 'vm3']
C. ['vm1', 'vm2', 'vm3']
D. []

Solution

  1. Step 1: Understand the list comprehension filter

    The code selects VMs where machine_type equals 'n1-standard-1'.
  2. Step 2: Identify matching VMs

    vm1 and vm3 have 'n1-standard-1', vm2 does not.
  3. Final Answer:

    ['vm1', 'vm3'] -> Option B
  4. Quick Check:

    Filter by machine_type 'n1-standard-1' gives vm1 and vm3 [OK]
Hint: Filter list by machine_type to find cheaper VMs [OK]
Common Mistakes:
  • Including vm2 which has a different machine type
  • Returning empty list by mistake
  • Confusing keys in dictionary
4. You wrote this command to create a preemptible VM but it keeps creating normal VMs:
gcloud compute instances create cheap-vm --machine-type=n1-standard-1 --enable-preemptible=false
What is the error and how to fix it?
medium
A. The VM name is invalid; rename it
B. The machine type is wrong; use a cheaper type
C. The command is missing zone specification
D. The flag disables preemptible; use --preemptible instead

Solution

  1. Step 1: Analyze the preemptible flag usage

    The flag --enable-preemptible=false disables preemptible VMs.
  2. Step 2: Correct the flag to enable preemptible

    Use --preemptible without false to create preemptible VM.
  3. Final Answer:

    The flag disables preemptible; use --preemptible instead -> Option D
  4. Quick Check:

    Use --preemptible to enable preemptible VMs [OK]
Hint: Use --preemptible flag alone to enable preemptible VMs [OK]
Common Mistakes:
  • Using --enable-preemptible=false disables preemptible
  • Changing machine type instead of flag
  • Ignoring flag syntax errors
5. A company wants to optimize costs by automatically stopping VMs when not in use during nights and weekends. Which GCP service or strategy best supports this goal?
hard
A. Use Cloud Scheduler to trigger Cloud Functions that stop/start VMs on schedule
B. Manually stop VMs every night using the console
C. Use preemptible VMs only without scheduling
D. Increase VM size to reduce runtime

Solution

  1. Step 1: Identify automation options for VM management

    Cloud Scheduler can run tasks on a schedule, and Cloud Functions can execute commands like stopping VMs.
  2. Step 2: Match automation to cost optimization goal

    Automating stop/start reduces costs by not running VMs when unused.
  3. Final Answer:

    Use Cloud Scheduler to trigger Cloud Functions that stop/start VMs on schedule -> Option A
  4. Quick Check:

    Automate VM stop/start with Cloud Scheduler and Functions [OK]
Hint: Automate VM stop/start with Cloud Scheduler and Functions [OK]
Common Mistakes:
  • Relying on manual stopping which is error-prone
  • Using preemptible VMs without scheduling
  • Increasing VM size which raises costs
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard