Pada 2024, tagihan cloud kami di Commsult Indonesia tumbuh lebih cepat dari pendapatan proyek yang berjalan di infrastruktur tersebut. Satu proyek GCP untuk integrasi ERP klien menghabiskan Rp 4,2 juta per bulan — lebih dari dua kali lipat yang kami anggarkan. Setelah review sistematis, saya menurunkannya ke Rp 2,4 juta, pengurangan 43%, tanpa degradasi performa apa pun. Strateginya tidak eksotis — itu adalah kebersihan dasar yang tidak sempat diterapkan siapa pun saat proyek dalam pengembangan cepat. Panduan ini mencakup persis apa yang saya lakukan dan dalam urutan apa.
Langkah pertama bukan optimasi — melainkan pengukuran. Aktifkan ekspor billing ke BigQuery di setiap proyek GCP dan siapkan dashboard di Looker Studio (gratis) yang menampilkan pengeluaran harian berdasarkan layanan, resource, dan label. Tanpa visibilitas ini, optimasi hanyalah tebak-tebakan. Di DigitalOcean, ringkasan billing lebih sederhana tetapi atur alert pengeluaran melalui pengaturan notifikasi. Tujuan langkah ini adalah menemukan 3 penggerak biaya teratas — dalam kasus kami, Cloud SQL (40%), Compute Engine (35%), dan Cloud Storage (15%) menyumbang 90% dari tagihan. Perbaiki ketiga hal itu sebelum menyentuh yang lain.
Terapkan label ke setiap resource GCP: project, environment, team, dan service. Tanpa label, ekspor billing BigQuery Anda menunjukkan biaya berdasarkan layanan tetapi tidak oleh tim atau fitur mana yang mendorongnya. Dengan label, Anda dapat menjalankan kueri seperti 'tampilkan semua biaya untuk resource berlabel service=invoice-processor dalam 30 hari terakhir.' Granularitas ini penting untuk chargeback ke klien dan untuk mengidentifikasi layanan internal mana yang menjadi outlier biaya. Organisasi yang menerapkan pemberian tag yang tepat melaporkan pengurangan biaya 25-40% hanya dari visibilitas yang diaktifkannya — tim mengubah perilaku ketika mereka bisa melihat pengeluaran mereka.
Dalam pengembangan, kami menyediakan VM dengan spesifikasi murah hati untuk menghindari masalah performa selama pengujian. Spesifikasi tersebut sering tetap tidak berubah ke produksi, bahkan ketika beban kerja aktual ringan. Active Assist GCP memberikan rekomendasi rightsizing di konsol Compute Engine — periksa setiap bulan. Dalam kasus saya, tiga instance e2-standard-4 (4 vCPU, 16GB RAM) yang berjalan dengan rata-rata 15% utilisasi CPU adalah kandidat untuk di-downsize ke e2-standard-2. Pengalihan tersebut menghemat $45/bulan tanpa dampak apa pun bagi pengguna. Cloud SQL bahkan lebih berdampak — db-custom-4-16384 yang berjalan pada 20% CPU dan 30% RAM menghemat $80/bulan jika Anda downsize ke db-custom-2-8192.
Dari pengalaman saya: optimasi leverage tertinggi di GCP adalah Committed Use Discounts (CUD) untuk resource yang Anda tahu akan Anda jalankan setidaknya 12 bulan. CUD 1 tahun pada instance Cloud SQL db-custom-4-16384 menghemat sekitar 37% dibandingkan harga on-demand — itu seringkali $60-100/bulan hemat pada satu instance database. Beli CUD hanya setelah rightsizing, karena CUD mengunci Anda pada jenis resource tertentu selama 12 bulan. Rightsize dulu, baru commit.
Untuk pemrosesan batch dan background job non-kritis, Spot VM (preemptible di GCP) menawarkan diskon 60-91% dibandingkan harga on-demand. Trade-offnya adalah Spot VM dapat dihentikan dengan pemberitahuan 30 detik. Untuk workload toleran terhadap kesalahan — generator thumbnail, job laporan batch, task ekspor data — ini adalah trade yang sangat baik. Desain workload ini untuk checkpoint kemajuan dan restart dengan anggun. Di Commsult Indonesia, kami menjalankan pembuatan laporan PDF dan job ekspor data di Spot VM, menghemat $35/bulan dibandingkan menjalankannya di instance on-demand.
# List GCP rightsizing recommendations
gcloud recommender recommendations list --recommender=google.compute.instance.MachineTypeRecommender --location=asia-southeast1-b --project=my-project --format="table(name,description,stateInfo.state)"
# Check Committed Use Discount recommendations
gcloud recommender recommendations list --recommender=google.compute.commitmentRecommender --location=asia-southeast1 --project=my-project
# Schedule non-production instance shutdown (Cloud Scheduler + gcloud)
gcloud scheduler jobs create http stop-dev-instances --schedule="0 20 * * 1-5" --time-zone="Asia/Jakarta" --uri="https://compute.googleapis.com/compute/v1/projects/my-project/zones/asia-southeast1-b/instances/dev-server/stop" --oauth-service-account-email=scheduler-sa@my-project.iam.gserviceaccount.comEnvironment pengembangan dan staging tidak perlu berjalan 24/7. Job Cloud Scheduler yang memulai instance GCP pada pukul 8 pagi waktu Jakarta dan menghentikannya pada pukul 8 malam menghemat 50% biaya komputasi untuk environment tersebut dengan segera. Untuk Cloud SQL di environment non-produksi, aktifkan fitur peningkatan storage otomatis tetapi downsize jenis mesin secara signifikan — database dev/staging jarang membutuhkan lebih dari db-custom-2-4096. Implementasikan penjadwalan instance dengan Cloud Function sederhana yang dipicu oleh Cloud Scheduler untuk operasi start/stop.
┌──────────────────────────────────────────────────────┐
│ GCS Storage Class Lifecycle Policy │
├──────────────────────────────────────────────────────┤
│ Day 0 → Standard ($0.020/GB/month) │
│ Day 30+ → Nearline ($0.010/GB/month) ─┐ │
│ Day 90+ → Coldline ($0.004/GB/month) ─┤ Auto │
│ Day 365+ → Archive ($0.0012/GB/month) ─┘ │
├──────────────────────────────────────────────────────┤
│ 500GB log bucket: $10/mo → under $2/mo with ILM │
└──────────────────────────────────────────────────────┘GCP Cloud Storage memiliki empat kelas storage: Standard, Nearline, Coldline, dan Archive. Standard menghabiskan $0,02/GB/bulan; Archive menghabiskan $0,0012/GB/bulan — 16x lebih murah. Tetapi Archive memiliki durasi storage minimum 365 hari dan biaya pengambilan $0,05/GB. Implementasikan kebijakan lifecycle yang secara otomatis mentransisi objek: pindahkan file log ke Nearline setelah 30 hari, Coldline setelah 90 hari, dan Archive setelah 365 hari. Untuk bucket yang menyimpan 500GB log, kebijakan lifecycle ini mengurangi biaya storage bulanan dari $10 menjadi di bawah $2. Editor aturan lifecycle konsol GCP membuat ini menjadi tugas 5 menit.
Saat saya mengoptimalkan biaya Cloud SQL kami, saya menyadari bahwa retensi backup otomatis diatur ke 30 hari di semua instance termasuk dev. Biaya backup instance dev menambahkan $8/bulan. Saya tergoda untuk mengurangi retensi backup dev ke 1 hari untuk menghemat biaya — tetapi environment dev kami terkadang berisi snapshot data nyata dari produksi (untuk debugging), yang berarti kehilangan kemampuan untuk memulihkan database dev dapat menyebabkan kehilangan data nyata. Pelajarannya: optimalkan komputasi dan tier storage secara agresif, tetapi berhati-hatilah dengan konfigurasi backup dan recovery. Biaya insiden pemulihan data jauh melebihi penghematan dari retensi backup minimal.
GCP mengenakan biaya untuk data yang meninggalkan region — $0,085/GB untuk egress region Asia ke internet. Jika aplikasi Anda menyajikan 50GB/hari gambar atau unduhan file, itu saja $127/bulan dari egress. Solusinya: gunakan CDN (Cloud CDN atau Cloudflare di depan GCP) untuk meng-cache aset statis di edge, mengurangi egress origin 60-80%. Tempatkan bucket Cloud Storage dan server aplikasi di region yang sama untuk menghindari biaya transfer antar region. Gunakan Private Google Access untuk layanan yang berkomunikasi dalam GCP untuk menghindari biaya routing IP publik.
Pengurangan biaya 43% yang saya capai bukan perbaikan satu kali — ini adalah praktik berkelanjutan. Saya kini meninjau tagihan cloud setiap minggu, mengatur alert anggaran pada 80% dari pengeluaran bulanan yang diharapkan, dan memiliki agenda tetap dalam rapat tim bulanan kami untuk tinjauan biaya cloud. Disiplin FinOps — menjadikan biaya cloud sebagai tanggung jawab tim bersama daripada sesuatu yang hanya dipikirkan oleh DevOps — adalah yang mempertahankan penghematan dari waktu ke waktu. Untuk perusahaan Indonesia yang bekerja dengan klien yang membayar dalam IDR, biaya cloud yang dapat diprediksi dan terkendali sangat penting untuk profitabilitas proyek, terutama ketika harga GCP dalam USD dan nilai tukar IDR/USD berfluktuasi.
Sumber & Bacaan Lanjutan