0
0
GcpHow-ToBeginner · 4 min read

How to Choose Machine Type in GCP: Simple Guide

To choose a machine type in GCP, consider your workload's CPU, memory, and cost needs. Use predefined types like e2-medium for general use or custom types to match exact resource needs.
📐

Syntax

The machine type in GCP is specified as a string like zones/{zone}/machineTypes/{machineType}. It defines the CPU and memory configuration for your virtual machine.

Parts explained:

  • {zone}: The location where your VM runs (e.g., us-central1-a).
  • {machineType}: The type of machine, such as e2-medium, n1-standard-4, or a custom type like custom-4-8192.
none
zones/us-central1-a/machineTypes/e2-medium
💻

Example

This example shows how to create a VM instance with the e2-medium machine type using the gcloud CLI. It has 2 vCPUs and 4 GB memory, suitable for small to medium workloads.

bash
gcloud compute instances create example-vm \
  --zone=us-central1-a \
  --machine-type=e2-medium \
  --image-family=debian-11 \
  --image-project=debian-cloud
Output
Created [https://www.googleapis.com/compute/v1/projects/your-project/zones/us-central1-a/instances/example-vm].
⚠️

Common Pitfalls

Common mistakes when choosing machine types include:

  • Picking a machine type with too little memory, causing slow performance.
  • Choosing a very large machine type and overspending unnecessarily.
  • Not matching the machine type to the workload type (e.g., CPU-heavy vs memory-heavy).

Always review your workload needs and test with smaller types first.

bash
Wrong:
gcloud compute instances create vm1 --machine-type=e2-micro

Right:
gcloud compute instances create vm1 --machine-type=e2-small
📊

Quick Reference

Machine TypevCPUsMemory (GB)Use Case
e2-micro11Very small workloads, testing
e2-small22Small workloads, low cost
e2-medium24General purpose, balanced
n1-standard-4415Medium workloads, balanced
custom-4-819248Custom CPU and memory
n2-highmem-8864Memory intensive workloads

Key Takeaways

Choose machine types based on CPU, memory, and workload needs.
Start with smaller machine types and scale up if needed.
Use predefined types for common needs or custom types for exact resources.
Avoid overspending by matching machine size to workload.
Test performance to find the best machine type for your application.