Referensi cepat AWS, GCP, dan Azure: compute, storage, networking, IAM, database, serverless, model harga, dan cara memilih provider untuk kebutuhan DevOps.
Model mental yang perlu kamu pegang sebelum nyemplung ke katalog layanan apa pun. Hampir semua istilah di ketiga provider bisa dipetakan ke konsep ini.
Region = area geografis (contoh: Jakarta, Singapore). Isinya beberapa AZ.
AZ = Availability Zone, satu atau lebih data center dengan daya dan jaringan terpisah.
Zone (GCP) = istilah GCP untuk AZ. GCP region punya minimal 3 zone.
Edge Location = titik presence untuk CDN dan cache, jumlahnya jauh lebih banyak dari region.
Shared Responsibility Model:
On-prem : kamu urus semua, dari fisik sampai aplikasi.
IaaS : provider urus fisik, virtualisasi. Kamu urus OS ke atas.
PaaS : provider urus runtime dan OS. Kamu urus kode dan data.
SaaS : provider urus semuanya. Kamu urus konfigurasi dan akun.
IaaS contoh : EC2, Compute Engine, Azure Virtual Machines
PaaS contoh : App Service, Cloud Run, Elastic Beanstalk
SaaS contoh : Google Workspace, Microsoft 365Poin penting: region menentukan latency, harga, dan kepatuhan data. Ketiga provider sekarang punya kehadiran di Indonesia. AWS dengan region Asia Pacific (Jakarta) atau ap-southeast-3, GCP dengan asia-southeast2 di Jakarta, dan Azure dengan region Indonesia Central di area Greater Jakarta. Kalau target penggunamu di Indonesia, pilih region ini biar latency rendah dan data tetap di dalam negeri.
Tabel ini jadi pintu masuk utamamu. Kalau kamu tahu satu layanan di satu provider, cari padanannya di sini sebelum baca dokumentasi provider lain.
| Kategori | AWS | GCP | Azure |
|---|---|---|---|
| Virtual machine | EC2 | Compute Engine | Virtual Machines |
| Kubernetes managed | EKS | GKE | AKS |
| Container serverless | Fargate, App Runner | Cloud Run | Container Apps |
| Fungsi serverless | Lambda | Cloud Run functions | Azure Functions |
| Object storage | S3 | Cloud Storage | Blob Storage |
| Block storage | EBS | Persistent Disk | Managed Disks |
| File storage | EFS | Filestore | Azure Files |
| Jaringan privat | VPC | VPC | VNet |
| DNS managed | Route 53 | Cloud DNS | Azure DNS |
| CDN | CloudFront | Cloud CDN | Azure Front Door |
| Identity dan akses | IAM | Cloud IAM | Microsoft Entra ID + RBAC |
| Database relasional | RDS, Aurora | Cloud SQL, AlloyDB | Azure SQL, Database for PostgreSQL |
| Database NoSQL | DynamoDB | Firestore, Bigtable | Cosmos DB |
| Cache managed | ElastiCache | Memorystore | Azure Cache for Redis |
| Monitoring | CloudWatch | Cloud Monitoring | Azure Monitor |
| IaC native | CloudFormation | (pakai Terraform) | Bicep |
Catatan rename yang sering membingungkan: Azure Active Directory sekarang bernama Microsoft Entra ID (per Juli 2023), dan Cloud Functions gen 2 di GCP sudah berganti nama jadi Cloud Run functions (Agustus 2024). Dokumentasi lama masih memakai nama lama, jadi waspadai itu waktu baca tutorial usang.
Tiga cara utama jalanin workload di cloud: VM (kendali penuh), container (portabel), dan serverless (tanpa kelola server).
# AWS EC2
aws ec2 run-instances \
--image-id ami-0abcdef1234567890 \
--instance-type t3.micro \
--key-name my-key \
--region ap-southeast-3
# GCP Compute Engine
gcloud compute instances create my-vm \
--machine-type=e2-small \
--zone=asia-southeast2-a
# Azure Virtual Machines
az vm create \
--resource-group my-rg \
--name my-vm \
--image Ubuntu2204 \
--size Standard_B1s \
--admin-username azureuserKeluarga instance yang perlu kamu hafal:
| Kebutuhan | AWS | GCP | Azure |
|---|---|---|---|
| General purpose | t3, m6i | e2, n2 | D-series |
| Compute optimized | c7i | c3 | F-series |
| Memory optimized | r7i | m3 | E-series |
| Burstable murah | t3, t4g | e2-micro | B-series |
| GPU | p5, g6 | a3 | N-series |
Burstable (t3, e2-micro, B-series) cocok untuk dev, staging, dan aplikasi kecil. Ia punya kredit CPU yang terkumpul dan habis kalau kamu spike terus.
Ketiga provider jual kapasitas nganggur dengan potongan besar: AWS Spot Instances (klaim resmi hingga 90%), GCP Spot VMs (hingga 91%), dan Azure Spot Virtual Machines (hingga 90%). Konsekuensinya, instance bisa dihentikan provider kapan saja dengan notifikasi singkat (AWS kasih waktu 2 menit, GCP 30 detik). Cocok untuk batch job, CI runner, dan workload yang tahan restart. Nggak cocok untuk database production.
# Deploy container ke Cloud Run (GCP)
gcloud run deploy my-service \
--image=asia-southeast2-docker.pkg.dev/my-project/my-repo/app:1.0 \
--region=asia-southeast2 \
--allow-unauthenticated
# AWS: jalankan task Fargate di ECS
aws ecs run-task \
--cluster my-cluster \
--launch-type FARGATE \
--task-definition my-task:1Aturan praktis: pakai Kubernetes (EKS, GKE, AKS) kalau timmu sudah paham operasinya atau butuh kontrol penuh atas orkestrasi. Pakai platform container managed (Cloud Run, App Runner, Container Apps, Fargate) kalau kamu cuma mau jalanin container tanpa mikirin control plane. GKE terkenal paling matang untuk pengalaman Kubernetes managed, sementara Cloud Run unggul dalam kesederhanaan deploy satu service.
Object storage untuk file statis, backup, media, dan data lake. Semua bisa diakses via HTTP dan SDK.
# AWS S3
aws s3 cp app.zip s3://my-bucket/releases/
# GCP Cloud Storage
gcloud storage cp app.zip gs://my-bucket/releases/
# Azure Blob Storage
az storage blob upload \
--account-name mystorageacct \
--container-name releases \
--file app.zip \
--auth-mode loginTingkat storage menentukan harga per GB dan biaya akses:
| Pola akses | AWS S3 | GCP Cloud Storage | Azure Blob |
|---|---|---|---|
| Sering diakses | Standard | Standard | Hot |
| Jarang diakses | Standard-IA | Nearline | Cool |
| Sangat jarang | Glacier Instant Retrieval, One Zone-IA | Coldline | Cold |
| Arsip jangka panjang | Glacier Deep Archive | Archive | Archive |
AWS punya S3 Intelligent-Tiering yang otomatis mindahin objek antar tier berdasarkan pola akses, tanpa biaya monitorisasi untuk objek standar. Berguna kalau pola aksesmu nggak bisa diprediksi.
Blok bangunan jaringan di ketiga provider hampir identik secara konsep, beda nama saja.
VPC / VNet = jaringan privat virtual milikmu di dalam region.
Subnet = bagian dari VPC, punya CIDR sendiri, terikat di satu AZ (AWS)
atau satu region (GCP). Azure subnet hidup di dalam VNet region.
Internet Gateway = pintu keluar masuk traffic internet.
NAT Gateway = bikin VM di private subnet bisa keluar internet tanpa bisa diakses dari luar.
Peering = sambungkan dua VPC/VNet supaya saling komunikasi lewat jaringan internal.| Aspek | AWS | GCP | Azure |
|---|---|---|---|
| Filter stateful level instance | Security Group | Firewall rules (tag-based) | NSG (Network Security Group) |
| Filter stateless level subnet | Network ACL | (tidak ada, pakai firewall rules) | NSG bisa di subnet |
| Default | Deny all inbound | Deny all inbound | Deny all inbound |
Aturan main yang sama di semua provider: izinkan hanya port yang perlu (80, 443, port app), batasi sumber IP kalau bisa, dan jangan pernah buka SSH atau RDP ke 0.0.0.0/0. Pakai SSH lewat bastion, SSM Session Manager (AWS), atau Cloud Shell sebagai gantinya.
Pola umum untuk aplikasi web: DNS pointing ke CDN, CDN ambil aset statis dari object storage, load balancer terima traffic dinamis lalu sebar ke VM atau container di beberapa AZ.
Bagian paling sering jadi sumber insiden sekaligus bagian yang paling sering diabaikan waktu belajar. Kuasai model satu provider, sisanya tinggal translasi.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:GetObject"],
"Resource": "arn:aws:s3:::my-bucket/releases/*"
}
]
}GCP punya hierarki resource: Organization, lalu Folder, lalu Project. Semua resource hidup di dalam Project, dan permission diwariskan dari atas ke bawah. Role di folder otomatis berlaku untuk semua project di dalamnya.
Azure pisah antara identitas (Microsoft Entra ID, dulu Azure Active Directory) dan otorisasi (RBAC, Role-Based Access Control). Role assignment punya tiga komponen: security principal (siapa), role definition (apa yang boleh, misal Reader, Contributor, Owner), dan scope (di mana: management group, subscription, resource group, atau resource tunggal).
# Beri akses Contributor ke resource group untuk user
az role assignment create \
--assignee user@contoso.com \
--role Contributor \
--scope /subscriptions/xxxx/resourceGroups/my-rgManaged identity di Azure adalah padanan service account: identitas managed yang menempel di VM atau App Service dan otomatis dapat token, tanpa kredensial yang perlu kamu simpan.
Jalanin database sendiri di VM artinya kamu urus backup, patching, failover, dan monitoring. Managed database ngalihin pekerjaan itu ke provider dengan biaya tambahan sekitar 10 sampai 30 persen.
| AWS | GCP | Azure | |
|---|---|---|---|
| MySQL, PostgreSQL | RDS | Cloud SQL | Database for MySQL / PostgreSQL (Flexible Server) |
| SQL Server | RDS for SQL Server | Cloud SQL for SQL Server | Azure SQL Database, SQL Managed Instance |
| Performa tinggi | Aurora (kompatibel MySQL/PostgreSQL) | AlloyDB (PostgreSQL) | Azure SQL Hyperscale |
| Serverless auto-scale | Aurora Serverless v2 | AlloyDB autoscaling | Azure SQL serverless tier |
Aturan pemilihan sederhana: mulai dari Postgres managed kalau datamu relasional atau belum jelas bentuknya. Pindah ke NoSQL khusus kalau ada alasan konkret (skala tulis ekstrem, akses key-value murni, atau pola dokumen yang lepas dari join).
Serverless artinya kamu bayar per eksekusi dan provider yang urus scaling, patching OS, dan kapasitas. Nggak ada server yang idle dan menagihmu.
// AWS Lambda handler (Node.js)
export const handler = async (event) => {
const name = event.queryStringParameters?.name ?? "dunia";
return {
statusCode: 200,
body: JSON.stringify({ pesan: `hai ${name}` }),
};
};# Deploy Azure Functions dari lokal
func init MyFunctionApp --javascript
cd MyFunctionApp && func new --template "HTTP Trigger" --name HttpHello
func azure functionapp publish my-function-app
# Deploy Cloud Run functions (GCP)
gcloud functions deploy hello \
--gen2 \
--runtime=nodejs20 \
--trigger-http \
--region=asia-southeast2Batas penting yang harus kamu inget:
| Batas | AWS Lambda | Cloud Run functions | Azure Functions |
|---|---|---|---|
| Eksekusi maksimum | 15 menit | 60 menit (HTTP), 9 menit (event) | 30 menit default pada Consumption plan |
| Pemicu | 20+ sumber event AWS | HTTP, Pub/Sub, Cloud Storage, Firestore | HTTP, Queue, Event Grid, Service Bus |
| Cold start | puluhan ratusan ms | bergantung container | bergantung plan |
Untuk API publik di depan fungsi, kamu butuh API gateway: AWS API Gateway, GCP API Gateway, atau Azure API Management. Gateway ini yang urus rate limiting, autentikasi, dan routing ke fungsi.
Cocok untuk: event handler (file diupload ke S3, pesan masuk queue), API dengan traffic tidak merata, cron job ringan, dan glue code antar service. Kurang cocok untuk: koneksi database persisten (tiap instance fungsinya punya koneksi sendiri, cepat habisin connection pool), workload long-running, atau sistem yang butuh latency sangat stabil.
Cara tagih ketiga provider sama di fondasinya: bayar sesuai pemakaian (pay-as-you-go), tanpa biaya di muka untuk instance. Yang bikin tagihan bengkak biasanya bukan compute, tapi egress data dan layanan yang lupa dimatikan.
| Model | AWS | GCP | Azure |
|---|---|---|---|
| Commit 1 atau 3 tahun | Savings Plans (hingga 66%), EC2 Instance Savings Plans (hingga 72%), Reserved Instances | Committed Use Discounts (CUD), hingga 57% untuk 3 tahun | Reserved VM Instances (hingga 72%), Savings Plan for Compute (hingga 65%) |
| Kapasitas nganggur | Spot Instances (hingga 90%) | Spot VMs (hingga 91%) | Spot VMs (hingga 90%) |
| Free tier | 12 bulan untuk beberapa layanan + always free | always free untuk kuota tertentu | 12 bulan + credit 200 USD untuk akun baru (berubah dari waktu ke waktu) |
Angka-angka di atas adalah klaim maksimal dari halaman resmi masing-masing provider. Realitanya tergantung region, tipe instance, dan keluarga mesin.
# Pasang alarm budget (AWS)
aws budgets create-budget \
--account-id 123456789012 \
--budget '{"BudgetName":"monthly-500","BudgetLimit":{"Amount":"500","Unit":"USD"},"TimeUnit":"MONTHLY","BudgetType":"COST"}'
# Estimasi biaya VM GCP
gcloud billing pricing ? # tidak ada command pricing; pakai kalkulator web Google Cloud Pricing CalculatorKalkulator harga resmi: AWS Pricing Calculator (calculator.aws), Google Cloud Pricing Calculator, Azure Pricing Calculator. Selalu hitung dulu sebelum deploy workload baru, terutama yang stateful.
Perubahan infrastruktur lewat console itu cepat sekali jalan dan menyiksa selamanya. Semua yang kamu bangun harus bisa dibangun ulang dari kode. Terraform jadi standar de facto untuk lintas provider, Pulumi kalau timmu lebih nyaman bahasa pemrograman umum, dan Bicep atau CloudFormation kalau kamu single-cloud dan mau dukungan native.
# Contoh Terraform: resource group Azure + storage account
resource "azurerm_resource_group" "rg" {
name = "my-rg"
location = "Indonesia Central"
}
resource "azurerm_storage_account" "st" {
name = "stmystorageacct01"
resource_group_name = azurerm_resource_group.rg.name
location = azurerm_resource_group.rg.location
account_tier = "Standard"
account_replication_type = "LRS"
}Terraform punya provider resmi untuk AWS, GCP, dan Azure, jadi satu tool ini cukup untuk seluruh kebutuhanmu, termasuk kombinasi multi-cloud. Simpan state di remote backend (S3 + DynamoDB, GCS, Azure Storage, atau Terraform Cloud), jangan di mesin lokal.
Pertanyaan yang paling sering aku terima dari orang baru: "harus mulai dari yang mana?" Jawaban jujurnya: ketiganya setara secara fondasi, pilihannya ditentukan konteks, bukan fitur.
Kondisi kamu -> Rekomendasi
------------------------------------------------------
Kantor pakai Microsoft 365, -> Azure
ada tim Windows Server atau .NET
Butuh BigQuery, ML, atau -> GCP
data pipeline kuat
Butuh katalog layanan terluas, -> AWS
lowongan kerja terbanyak, atau
komunitas terbesar
Target pengguna di Indonesia -> pilih region Jakarta
di provider mana pun yang kamu kuasai
Belum tahu apa-apa -> AWS atau Azure free tier,
fokus satu provider sampai dalamPertimbangan praktis yang sering lebih menentukan daripada fitur:
Soal multi-cloud: pakai dua provider sekaligus hanya kalau ada alasan kuat (regulasi, akuisisi, bargaining harga). Operasional multi-cloud itu dobel kerja: dobel IaC, dobel IAM, dobel skill set, dan dobel titik kegagalan. Kebanyakan tim lebih baik jalanin satu provider dengan disiplin daripada dua setengah-setengah.
Login atau daftar akun gratis untuk membaca cheat sheet ini.