Men-deploy backend ke cloud: memahami layanan compute (VM, container, serverless), managed database yang menghapus beban operasional, object storage untuk file, serta perbandingan AWS, GCP, dan Azure

Setelah pipeline CI/CD di episode 15 siap, pertanyaan berikutnya: ke mana kode itu dideploy? Jawaban di 2026 hampir selalu cloud — bukan karena tren, tapi karena menyediakan sendiri server fisik berarti mengurus hardware, jaringan, listrik, dan keamanan data center. Cloud mengubah itu semua menjadi layanan yang bisa dipesan dan diskalakan.
Mengapa backend developer harus paham cloud? Karena hampir semua lowongan backend menyebut minimal satu cloud provider, dan keputusan "pakai layanan mana" menentukan biaya, ketersediaan, dan beban operasional tim. Episode ini memetakan tiga kategori layanan inti — compute, managed database, dan storage — dengan perbandingan AWS, GCP, dan Azure.
Kontrol penuh atas OS — seperti menyewa komputer jarak jauh.
| Provider | Layanan |
|---|---|
| AWS | EC2 |
| GCP | Compute Engine |
| Azure | Virtual Machines |
Cocok untuk: aplikasi legacy, kebutuhan kontrol penuh, workload yang tidak cocok di-container. Tapi kalian bertanggung jawab atas OS update, patching, dan keamanan VM sendiri.
Cara modern menjalankan image Docker (episode 14) tanpa mengelola server:
| Provider | Layanan |
|---|---|
| AWS | ECS, EKS (Kubernetes) |
| GCP | Cloud Run, GKE |
| Azure | Container Apps, AKS |
Cloud Run (GCP) dan Container Apps (Azure) adalah pilihan menarik: kalian beri image, platform yang menangani scaling otomatis hingga nol — kalian hanya membayar saat dipakai.
Fungsi yang dijalankan per-event, tanpa memikirkan server sama sekali:
export async function handler(event: OrderCreatedEvent) {
await sendOrderConfirmation(event.orderId)
return { statusCode: 200 }
}Cocok untuk event-driven: respon webhook, pemrosesan queue, trigger S3. Tidak cocok untuk API yang butuh koneksi persistent (WebSocket) atau workload CPU berat yang panjang.
Self-host PostgreSQL berarti kalian mengurus backup, replika, patching, dan failover. Managed database mengalihkan semua itu ke cloud:
| Provider | Relational | NoSQL |
|---|---|---|
| AWS | RDS PostgreSQL | DynamoDB |
| GCP | Cloud SQL | Firestore, Bigtable |
| Azure | Azure SQL, Flexible Server | Cosmos DB |
Keuntungan yang langsung terasa:
Biaya managed database lebih mahal dari self-host, tapi untuk produksi hampir selalu sepadan: satu backup yang hilang menghabiskan lebih banyak daripada selisih harga setahun.
DATABASE_URL=postgres://shop_user:...@shop-db.rds.amazonaws.com:5432/shopNote
Data tetap data — managed database tidak mengubah cara kalian menulis SQL (episode 5-6). Yang berubah adalah siapa yang mengurus operasionalnya. Perbedaan "belajar SQL" dan "belajar operasional database" sering tertukar: kuasai SQL-nya, biarkan cloud yang mengurus backup.
Image produk, file upload, dan backup memerlukan penyimpanan besar yang murah dan tahan lama. Object storage adalah standarnya:
| Provider | Layanan |
|---|---|
| AWS | S3 |
| GCP | Cloud Storage |
| Azure | Blob Storage |
Karakteristiknya: data disimpan sebagai objek (file + metadata + key), bisa diskalakan tak terbatas, dan murah per GB. File tidak disimpan di VM — aplikasi membaca/menulis lewat SDK:
import { PutObjectCommand, S3Client } from "@aws-sdk/client-s3"
const s3 = new S3Client({ region: "ap-southeast-1" })
await s3.send(new PutObjectCommand({
Bucket: "shop-product-images",
Key: `products/${productId}.jpg`,
Body: buffer,
ContentType: "image/jpeg",
}))Object storage juga menjadi dasar static hosting (website statis) dan backup destination.
| Kriteria | AWS | GCP | Azure |
|---|---|---|---|
| Ekosistem | Terluas | Modern, kuat untuk data/AI | Terkuat di enterprise Microsoft |
| Serverless | Lambda | Cloud Functions | Functions |
| AI/ML services | Bedrock, SageMaker | Vertex AI | Azure AI |
| Kurva belajar | Curam (banyak layanan) | Ramah | Familiar untuk .NET |
Tidak ada "terbaik" — pilihan dipengaruhi ekosistem perusahaan, bahasa (Azure dekat .NET), dan tim. Konsepnya sama di semua provider: compute, managed DB, storage, dan network — yang berbeda hanya nama dan konsolnya.
Arsitektur referensi yang realistis untuk sistem kita:
User → CDN → Load Balancer → Container Service (auto-scale)
├── Managed PostgreSQL
├── Managed Redis
├── Managed Queue
└── Object StorageSemua komponen managed — tim fokus ke fitur, bukan operasional server.
Tip
Mulailah dari free tier / pay-as-you-go dan jangan takut mencoba. Buat satu VM atau deploy satu Cloud Run sederhana, koneksikan ke managed database, dan tarik log lewat konsol. Cara terbaik belajar cloud adalah mencoba — bukan membaca daftar layanan.
VM yang selalu hidup dan tidak di-schedule = uang terbakar untuk resource yang menganggur. Pakai container/scaling otomatis yang bisa turun ke nol.
"Backup jalan" ≠ "restore bisa". Uji restore secara berkala — backup tanpa restore teruji sama dengan tidak ada backup.
ACCESS_KEY di repository = kebocoran. Pakai IAM role untuk service yang berjalan di cloud, dan simpan secret di Secret Manager (episode 17).
Data center jauh dari user = latency tinggi (episode 9). Pilih region dekat mayoritas user; data di satu region biasanya tidak bisa sembarangan dipindah.
Warning
Biaya cloud adalah tanggung jawab backend developer — tagihan bulanan bisa mengejutkan tanpa pengawasan. Pasang budget alert di provider sejak hari pertama, dan biasakan menutup resource yang tidak dipakai (VM percobaan, database lama). Budget yang bocor lebih sering karena resource terlupakan daripada karena harga layanan.
Episode 16 men-deploy backend ke cloud: tiga kategori compute (VM, container, serverless), managed database yang mengambil alih operasional, object storage untuk file, perbandingan AWS/GCP/Azure, dan arsitektur referensi toko online.
Inti yang harus dibawa pulang:
Di episode 17 selanjutnya kita akan mengamankan seluruh lapisan: security backend — OWASP Top 10, input validation, dan pengelolaan secrets. Sampai jumpa di episode 17!