Mengoptimalkan biaya infrastruktur dengan pendekatan FinOps: membangun cost visibility dan tagging, menerapkan rightsizing dan lifecycle, serta membuat tim akuntabel terhadap biaya yang mereka hasilkan

Setelah di episode 23 kita membangun infrastruktur AI yang mahal, kini kita membahas seni menjaga biaya tetap terkendali: cost optimization. Cloud memberi skala elastis — sekaligus tagihan elastis. Tanpa disiplin, infrastruktur bisa menghabiskan anggaran tanpa menghasilkan nilai sepadan.
Mengapa topik ini penting? Karena biaya infrastruktur adalah tanggung jawab teknis, bukan sekadar urusan keuangan. Tim yang bisa memangkas biaya 30-50% tanpa mengorbankan performa adalah aset besar. Episode ini membangun pendekatan FinOps: visibilitas, rightsizing, lifecycle, dan akuntabilitas tim.
FinOps adalah budaya dan praktik mengelola biaya cloud dengan prinsip yang mirip DevOps: iterasi, otomasi, dan kolaborasi lintas tim.
| Fase | Pertanyaan | Praktik |
|---|---|---|
| Inform | Berapa biaya kita? Siapa yang memakainya? | Tagging, cost report, unit economics |
| Optimize | Bagaimana menguranginya? | Rightsizing, lifecycle, reserved instances |
| Operate | Bagaimana menjaga? | Review berkala, budaya akuntabilitas |
Tanpa tag, tagihan cloud adalah angka tanpa wajah. Setiap resource wajib punya tag sejak dibuat:
Env : prod | staging | dev
Team : platform | data | checkout
CostCenter : CC-4012
Project : billing-api
Owner : budi@lab.local
Shutdown : 18-07 (auto stop jam 18, start 07)resource "aws_instance" "app" {
ami = "ami-0abcdef1234567890"
instance_type = "t3.medium"
tags = {
Env = "prod"
Team = "platform"
CostCenter = "CC-4012"
Shutdown = "18-07"
}
}Tag yang konsisten mengubah tagihan cloud menjadi laporan per tim, per project, per environment — data keputusan, bukan tebak-tebakan.
Important
Aturan tagging harus ditegakkan, bukan diharapkan. Di cloud, aktifkan tag policy / enforced tags agar resource tanpa tag ditolak atau ditandai. Di on-prem, audit inventory berkala. Tag yang opsional = tag yang tidak ada.
Biasakan melihat angka setiap minggu — bukan saat tagihan datang:
Mingguan : review biaya per team/service, cari anomali
Bulanan : bandingkan dengan bulan lalu, proyeksikan
Alert : budget threshold 50% / 80% / 100% → otomatisContoh alert di cloud:
aws budgets create-budget --account-budget budget.json
# budget.json: 500 USD/bulan, alert di 80% dan 100%Rightsizing menyesuaikan ukuran resource dengan kebutuhan nyata — langkah pertama penghematan terbesar.
1. Ukur utilisasi nyata (30-90 hari, bukan 1 hari)
2. Identifikasi over-provisioned (CPU/RAM < 30-40%)
3. Identifikasi under-provisioned (sedang-sedang saja)
4. Turunkan/naikkan ukuran — satu variabel, ukur ulang
5. Ulangi berkala (beban berubah seiring waktu)Pola umum di cloud:
| Pola | Contoh | Aksi |
|---|---|---|
| Idle resource | VM menyala tapi utilisasi 1% | Stop/hapus |
| Over-provisioned | CPU 10%, RAM 15% selama 3 bulan | Turunkan instance type |
| Batch yang salah | Job mingguan memakai instance besar | Scheduler instance lebih kecil |
| Storage over-tier | Data dingin di SSD mahal | Pindah ke tier murah |
Jangan rightsize sampai batas tipis — kalian perlu headroom untuk spike (episode 22). Target sehat: utilisasi puncak 50-70%, bukan 90%.
Biaya cloud membengkak paling banyak dari resource yang tidak pernah mati:
Environment dev/staging tidak perlu menyala 24/7:
Dev/staging : mati 19:00, nyala 07:00 + akhir pekan mati
Environment : boleh mati tanpa dampak (itu bedanya dengan prod)Otomasikan dengan Instance Scheduler atau Lambda/Cloud Function, atau tool IaC:
resource "aws_scheduler_schedule" "stop_dev" {
name = "stop-dev-weekly"
schedule_expression = "cron(0 19 * * ? *)"
flexible_time_window { mode = "OFF" }
target {
arn = "arn:aws:scheduler:::aws-services:ec2:stop-instances"
role_arn = aws_iam_role.scheduler.arn
input = jsonencode({ InstanceIds = [aws_instance.app.id] })
}
}Object storage murah — tapi bisa lebih murah. Lifecycle policy menurunkan tier dan menghapus otomatis (lanjutan episode 12):
0-30 hari : hot (akses cepat)
31-90 hari : warm (akses jarang)
91-365 hari : cold/archive (murah)
> 365 hari : hapus (jika sesuai retention regulasi!)Untuk beban yang pasti jalan 24/7 (baseline), diskon hingga 40-60% dengan komitmen 1-3 tahun. Aturan: jangan beli reserved untuk beban yang berubah-ubah — hanya baseline yang stabil.
Untuk job yang boleh diinterupsi (batch, training, stateless worker): diskon hingga 60-90%. Jangan untuk database atau layanan online.
Terkadang mengoptimalkan aplikasi lebih murah daripada menambah instance: query yang efisien, cache yang benar (episode 15), dan autoscaling yang tepat (episode 21) sering mengurangi kebutuhan hardware.
Optimasi paling tahan lama adalah yang membuat setiap orang merasa biaya adalah tanggung jawabnya:
Tip
Metrik paling jujur untuk FinOps adalah unit cost: biaya per 1.000 request, per user, per transaksi. Total tagihan bisa naik karena traffic naik (bagus!), sementara unit cost turun. Mengelola unit cost, bukan hanya total, membuat optimasi tidak menabrak pertumbuhan bisnis.
Pada episode 24 ini kalian telah membangun disiplin FinOps:
Di episode 25 selanjutnya kita mengubah tim infrastruktur menjadi penyedia produk: infrastructure as product — platform mindset, golden paths, dan dokumentasi. Sampai jumpa di episode 25!