As I’m learning about different parts of Google Cloud Platform (GCP), I thought it’d be a good idea to share my notes. GCP documentation is great and it contains a lot of detailed information but sometimes I prefer cheat sheet style notes and that’s what I intend to provide here.
GCP is nicely divided into different sections: Compute, Storage, Networking, Big Data, Services, Management. I started looking into Compute layer and more specifically, Compute Engine. Here are my notes on Compute Engine.
What is Compute Engine?
- Infrastructure as a Service (IaaS) offering of Google Cloud.
- At its core, it’s 3 things: Virtual Machines, Disks, and Networking.
- Additionally: Scaling, monitoring, regions & zones.
- Access via web-based GCP console, Restful API & client libraries, and gcloud compute command-line tool.
- Core component of Compute Engine.
- Supports different machine types: Standard, high-CPU, high-memory, shared core (full list). You can even have custom machine types, if none of these meet your needs.
- Supports different operating systems: Ubuntu, Debian, Windows and more. (full list).
- Persistent Disk and Local SSD storage (more detail).
- Persistent Disk has two flavors: standard (HDD) and solid-state (SSD).
- Automatic encryption and redundancy against data corruption.
- Private network to your project with firewall rules. Only IPv4 support (more detail)
- Includes HTTP(S) and network load balancer (more detail).
- Custom health checks for load balancer to use (more detail).
- Advanced features like Subnetworks, Protocol Forwarding, VPN and Cloud Router.
- Managed instance groups for identical instances.
- Unmanaged instance groups for unique instances.
- Automatic autoscaling for managed instance groups.
Regions & Zones
- Regions: Central US, Eastern US, East Asia, Western Europe (more detail).
- Zones are sub-regions basically.
These are different management options for Compute Engine:
- GCP Console: Browser-based Google tool that to manage Compute Engine resources.
- gcloud compute: command-line tool to manage Compute Engine, instead of the API.
- Compute Engine API: HTTP/JSON based REST API for pretty much everything in Compute Engine.
- Client libraries: Many community and Google supported client libraries for Compute Engine API.