GCP vs AWS — Service Comparison
This is the service-mapping lookup table. For the conceptual mental-model shifts an AWS engineer needs (resource hierarchy, additive IAM, global VPC, pricing model differences), see the companion doc
from-aws.md.
Core Philosophy Difference
graph LR
subgraph AWS["AWS — breadth first"]
A1["150+ services<br/>every use case covered<br/>built over 20 years<br/>most mature ecosystem<br/>most enterprise adoption"]
end
subgraph GCP["GCP — engineering first"]
G1["70+ services<br/>built on Google's own infra<br/>BigQuery, Bigtable, Spanner<br/>best Kubernetes (invented it)<br/>best data/ML platform"]
end
| Dimension | AWS | GCP |
|---|---|---|
| Market share (cloud infra, ~2024) | ~32% | ~11% |
| Enterprise adoption | Dominant | Growing |
| Kubernetes | EKS (solid) | GKE (best-in-class, invented K8s) |
| Data/Analytics | Redshift, Athena, EMR | BigQuery (simpler, often cheaper) |
| ML/AI | SageMaker, Bedrock | Vertex AI, TPUs, best for training |
| Networking | Complex but powerful | Global VPC, simpler model |
| Pricing | Pay-per-resource | Sustained use discounts automatic |
Service-by-Service Mapping
Compute
| Use case | AWS | GCP |
|---|---|---|
| VMs | EC2 | Compute Engine |
| Managed K8s | EKS | GKE |
| Serverless containers | Fargate, App Runner | Cloud Run |
| Serverless functions | Lambda | Cloud Functions |
| Batch compute | Batch | Cloud Batch |
| Spot/preemptible VMs | Spot Instances | Preemptible VMs (Spot VMs) |
Storage and Databases
| Use case | AWS | GCP |
|---|---|---|
| Object storage | S3 | Cloud Storage |
| Block storage | EBS | Persistent Disk |
| File storage | EFS | Filestore |
| Relational DB | RDS | Cloud SQL |
| Managed Postgres | Aurora Postgres | Cloud Spanner, AlloyDB |
| Global ACID DB | Aurora Global | Spanner (better: true global) |
| NoSQL key-value | DynamoDB | Firestore, Bigtable |
| Wide-column | DynamoDB single-table | Bigtable (better for time-series) |
| Data warehouse | Redshift | BigQuery |
| In-memory cache | ElastiCache | Memorystore (Redis/Memcached) |
| Time-series | Timestream | Bigtable |
Networking
| Use case | AWS | GCP |
|---|---|---|
| VPC | VPC (region-scoped) | VPC (global — one VPC, all regions) |
| Load balancer | ALB/NLB/CLB | Cloud Load Balancing |
| CDN | CloudFront | Cloud CDN |
| DNS | Route 53 | Cloud DNS |
| Private connectivity | PrivateLink, VPN | Private Service Connect, Cloud VPN |
| Cross-region connectivity | Transit Gateway | Cloud Router + HA VPN |
Key networking difference:
graph LR
subgraph AWS["AWS VPC — regional"]
AVPC1["VPC us-east-1<br/>10.0.0.0/16"]
AVPC2["VPC eu-west-1<br/>10.1.0.0/16"]
AVPC1 -->|"VPC Peering or<br/>Transit Gateway"| AVPC2
NOTE_A["Separate VPCs per region<br/>explicit peering required"]
end
subgraph GCP["GCP VPC — global"]
GVPC["Single VPC<br/>spans ALL regions"]
US["Subnet: us-central1<br/>10.0.1.0/24"]
EU["Subnet: europe-west1<br/>10.0.2.0/24"]
GVPC --> US & EU
NOTE_G["One VPC, subnets in each region<br/>automatic routing between regions"]
end
Observability
| Use case | AWS | GCP |
|---|---|---|
| Metrics | CloudWatch | Cloud Monitoring |
| Logs | CloudWatch Logs | Cloud Logging |
| Traces | X-Ray | Cloud Trace |
| Dashboards | CloudWatch | Cloud Monitoring, Grafana |
| Audit logs | CloudTrail | Cloud Audit Logs |
AI/ML
| Use case | AWS | GCP |
|---|---|---|
| ML platform | SageMaker | Vertex AI |
| LLM APIs | Bedrock (Claude, Llama, etc.) | Vertex AI (Gemini, etc.) |
| Custom training | SageMaker Training | Vertex AI Training, TPUs |
| TPU access | No | Yes (Google's custom AI chips) |
| Managed notebooks | SageMaker Studio | Vertex AI Workbench |
GCP TPUs: Google's Tensor Processing Units give 10-100× better price/performance for LLM training vs GPUs on any cloud. If you're training large models, GCP is often cheaper.
GCP Unique Advantages
1. Global VPC
Single VPC spanning all regions — no peering needed. Add a subnet in Tokyo, your London VM can reach it without configuration.
2. BigQuery Pricing
BigQuery: $5/TB scanned, $0.02/GB storage. AWS Redshift: $0.25/hour for smallest cluster (even when idle). For sporadic analytics, BigQuery is often 10× cheaper.
3. Sustained Use Discounts
GCP automatically gives discounts for VMs running >25% of the month — no upfront commitment required. AWS requires Reserved Instances (1-3 year commitment) for equivalent discounts.
4. GKE Quality
GKE gets Kubernetes features first (it's the reference implementation). Autopilot mode — true serverless Kubernetes — doesn't exist on AWS/Azure.
5. Spanner — True Global ACID
AWS Aurora Global has replication lag (seconds). Spanner provides globally consistent transactions with ~10ms latency using TrueTime (atomic clocks).
AWS Unique Advantages
1. Service breadth
AWS has services GCP doesn't: AppSync (GraphQL), Kinesis Data Firehose simplicity, CodePipeline, many enterprise integrations.
2. Enterprise ecosystem
AWS has the most ISV integrations, compliance certifications, and enterprise support.
3. Mature marketplace
AWS Marketplace has thousands of third-party products pre-configured.
4. On-premises hybrid
AWS Outposts, AWS Local Zones — better on-prem story than GCP Distributed Cloud.
When to Choose Which
Choose AWS when:
- Your team already knows AWS
- You need maximum service breadth
- Enterprise compliance requirements (AWS has most certifications)
- Strong on-prem hybrid requirements
Choose GCP when:
- Analytics-heavy workload (BigQuery is hard to beat)
- K8s-native platform (GKE Autopilot, Workload Identity)
- Training large ML models (TPUs)
- Multi-region global application (global VPC simplicity)
- Cost optimization for data warehousing