12 poin oleh GN⁺ 2025-11-21 | 1 komentar | Bagikan ke WhatsApp
  • Kasus ketika kesalahan konfigurasi jaringan VPC AWS dan NAT Gateway menyebabkan biaya transfer data S3 sekitar $900 hanya dalam satu hari, dan akumulasi bulanan melampaui $1.000
  • Transfer dari EC2 ke S3 sering dikenal gratis, tetapi jika melewati NAT Gateway di dalam VPC, akan timbul biaya pemrosesan data berbayar
  • Penyebab masalahnya adalah tidak adanya VPC Gateway Endpoint untuk S3, sehingga tidak ada pengaturan koneksi langsung ke S3 tanpa melewati NAT Gateway
  • Gateway Endpoint gratis dan tidak menimbulkan biaya transfer data, serta bisa dikonfigurasi dengan mudah lewat Terraform dan alat serupa
  • Ini menjadi contoh yang menunjukkan pentingnya pemantauan biaya dan pemeriksaan konfigurasi VPC Endpoint saat mengoperasikan infrastruktur AWS

Latar belakang masalah

  • Geocodio menggunakan AWS untuk mencerminkan file data geospasial internal berukuran besar ke S3
    • Datanya mencakup titik alamat, data batas wilayah, informasi sensus, dan lain-lain, dengan ukuran dari beberapa GB hingga ratusan GB
    • Perlu sinkronisasi berkala dari platform ETL yang di-host di Hetzner ke infrastruktur pemrosesan AWS
  • Tingginya biaya transfer data AWS adalah keluhan umum di industri; Cloudflare dan Corey Quinn juga pernah menyoroti masalah terkait
  • Penulis meninjau struktur biaya sebelum memulai proyek dan memperkirakan biaya setelah memastikan bahwa
    1. transfer EC2–S3 dalam region yang sama gratis
    2. unggahan ke S3 (ingress) gratis

Munculnya biaya tak terduga

  • Setelah proses sinkronisasi S3 diterapkan, muncul peringatan anomali dari AWS Cost Anomaly Detection
    • Dalam satu hari, volume transfer data NAT Gateway mencapai 20,167.32GB, dengan biaya sebesar $907.53
    • Akumulasi biaya bulanan sudah melampaui $1.000
    Iklan
  • Dalam situasi ketika transfer EC2–S3 dianggap gratis, dilakukan penyelidikan mengapa biaya NAT Gateway tetap ditagihkan

Analisis penyebab: melewati NAT Gateway

  • Saat menggunakan NAT Gateway di VPC, trafik ke S3 secara default juga dirutekan melalui NAT Gateway
    • Bahkan untuk permintaan ke layanan AWS dalam region yang sama, jika melewati NAT, akan dikenakan biaya pemrosesan data $0.045 per GB
  • Akibatnya, meskipun transfer antara EC2 dan S3 gratis, biaya NAT Gateway tetap ditagihkan
  • Solusinya adalah membuat VPC Gateway Endpoint untuk S3
    • Menghubungkan VPC langsung ke S3 tanpa melalui NAT Gateway atau Internet Gateway
    • Sepenuhnya gratis, tanpa biaya per jam maupun biaya transfer

Proses penyelesaian

  • Karena infrastruktur dikelola dengan Terraform, mereka menambahkan resource Gateway Endpoint dan menghubungkannya ke route table
    • AWS lalu memperbarui routing secara otomatis sehingga trafik S3 dikirim ke Endpoint, bukan ke NAT Gateway
    Iklan
  • Setelah itu, penagihan terkait NAT Gateway berhenti

Pelajaran dan rekomendasi

  • Meski telah lama menggunakan AWS, biaya tetap muncul karena konfigurasi VPC Endpoint untuk S3 terlewat
  • Jaringan AWS itu kompleks, dan struktur biaya bisa sangat berbeda tergantung cara konfigurasinya
  • Rekomendasi untuk mencegah kejadian serupa
    • Aktifkan AWS Cost Anomaly Detection: memungkinkan deteksi dini atas biaya yang tidak wajar
    • Gunakan VPC Endpoint: penting saat mengakses S3 dan DynamoDB dari VPC yang memakai NAT Gateway
    • Verifikasi asumsi: jangan hanya percaya pada asumsi “transfer EC2–S3 gratis”; lakukan uji skala kecil lalu pantau biayanya
    • Cloud itu kompleks: bahkan pengguna jangka panjang pun perlu terus waspada
  • Disebut juga kasus serupa dari Recall.ai yang membayar $1 juta per tahun untuk biaya pemrosesan data WebSocket

Tindak lanjut

  • Geocodio meninjau jalur komunikasi S3 di semua VPC dan menyelesaikan konfigurasi Gateway Endpoint
  • Pengguna AWS dianjurkan untuk memeriksa pengaturan VPC Endpoint
  • Ringkasnya: NAT Gateway juga mengenakan biaya untuk trafik menuju layanan AWS, dan biaya ini bisa dihindari dengan menggunakan VPC Endpoint

Materi tambahan

1 komentar

 
GN⁺ 2025-11-21
Opini Hacker News
  • Saya sering melihat kasus tagihan membengkak seperti ini muncul hampir sekali sehari di tiga subreddit besar terkait cloud
    Penyedia cloud selalu hanya memberikan peringatan yang terlambat, dan pengguna pada dasarnya tidak bisa berbuat apa-apa selain berdoa dan meminta keringanan
    Selain itu, sebagian orang mengklaim bahwa “secara teknis mustahil menyediakan akun dengan hard cap”, padahal akun seperti itu sebenarnya sudah ada di Azure

    • Saya rasa ini bukan niat jahat, melainkan gabungan antara ketidakmampuan dan tidak adanya insentif
      Saya sudah memakai AWS lebih dari 10 tahun, dan diskontinuitas desain antar layanan serta silo organisasi di dalamnya sangat parah
      Di organisasi besar, tidak ada eksekutif yang mau menyelesaikan masalah yang bisa merusak KPI mereka, dan mereka malah fokus mengumpulkan poin promosi dengan meluncurkan layanan yang sedang tren seperti AI atau blockchain
    • Kemarin AWS mengumumkan paket harga flat tanpa biaya overage
      Dengan memilih paket bulanan $0, $15, atau $200, pengguna bisa mencegah tagihan membengkak akibat lonjakan tak terduga pada request atau transfer data
      Tautan blog resmi AWS
    • Ini berita yang sama, tetapi kali ini tentang paket harga flat untuk CDN. Ada tier $0 yang juga mencakup penyimpanan S3 dan bandwidth
      Thread HN terkait
      Menetapkan batas biaya sambil menjaga keandalan layanan memang sulit, tetapi kasus ini membuktikan bahwa secara teknis hal itu memungkinkan
    • AWS memilih pendekatan menagih dulu lalu memberi refund jika pelanggan terkena biaya secara tidak sengaja
      Tujuannya untuk menghindari risiko reputasi akibat penghentian layanan atau gangguan infrastruktur
    • Hal paling menyedihkan dari tulisan seperti ini adalah biasanya berakhir dengan kesimpulan, “kami seharusnya memahami tagihan dengan lebih baik”
      Tetapi masalahnya mungkin justru cloud itu sendiri. Untuk usaha kecil yang membutuhkan struktur biaya yang dapat diprediksi, cloud mungkin memang bukan pilihan yang cocok
  • Ini terjadi terlalu sering, jadi menurut saya S3 VPC Endpoint seharusnya diaktifkan secara default saat membuat VPC
    Dan jika memakai alternatif seperti fck-nat alih-alih NAT Gateway, biaya trafik per GB bisa dihemat

    • Namun S3 Gateway Endpoint bisa merusak operasi S3 lintas region, jadi mengubah default bisa berdampak buruk bagi pelanggan
    • Ada juga cara beralih ke IPv6 dan memakai Egress Gateway
    • Saat membuat VPC di console, pengaturannya bisa dilakukan hanya dengan satu checkbox
    • Jika dibangun bukan lewat console melainkan dengan IAC (Infrastructure as Code), memang seharusnya semua konfigurasi ditulis secara eksplisit
    • Secara default, VPC seharusnya dirancang dengan struktur yang mengutamakan keamanan
      Akses internet harus diizinkan secara eksplisit dari kondisi default yang menolak akses, jika tidak penyerang bisa mengekfiltrasi data
  • Saya juga pernah melakukan kesalahan serupa
    Saya mengunggah data uji ke algoritme rekomendasi AWS lalu melupakannya, dan beberapa bulan kemudian saya mendapat notifikasi saldo tidak cukup dari bank
    Algoritme itu terus berjalan dan menagih lebih dari 1.000 dolar setiap bulan, hingga akhirnya 5.000 dolar lenyap

    • Saya pernah bekerja di bagian penagihan, jadi saya punya paranoia yang sehat terhadap hal seperti ini
      Saya memeriksa saldo setiap hari dan menandai semua email tagihan sebagai penting
      Saya juga membiasakan diri menetapkan limit kartu virtual untuk tiap layanan
  • Saya juga pernah membuat kesalahan yang sama dan kehilangan 60 ribu dolar
    Saya tidak paham kenapa endpoint S3 tidak di-deploy secara default

    • Kalau di rapat internal ada usulan “mari jadikan ini default”, rasanya pasti ditunda dengan alasan “pendapatan akan berkurang”
    • Bahkan ada lelucon seperti, “memang itu gaji setahun, tapi coba pikirkan kompleksitas menjalankan infrastruktur sendiri dengan self-hosting”
  • Saya sering ditanya, “kenapa biaya AWS bisa meledak?”, dan dalam banyak kasus jawabannya adalah kombinasi NAT + S3 + asumsi yang keliru
    Transfer EC2→S3 gratis, tetapi kalau melewati NAT jadi berbayar
    Karena itu saya biasanya memberi checklist berikut

    1. Untuk subnet privat yang sering berkomunikasi dengan S3 atau DynamoDB, pertimbangkan memakai Gateway Endpoint
    2. Pantau biaya NAT lewat dashboard terpisah
    3. Sebelum memindahkan data dalam jumlah besar, buat dulu diagram aliran biaya
      Untungnya Cost Anomaly Detection bekerja tepat waktu. Kehilangan 1.000 dolar memang menyakitkan, tetapi masih lebih baik daripada 20 ribu dolar
  • Saya terkejut melihat bahwa saat mengunduh data dari AWS, kita harus membayar $0.09 per GB
    Mengunggah data gratis, tetapi untuk mengambilnya kembali harus bayar?

    • Itu bagian dari strategi lock-in. Masuk memang mudah, tetapi keluar mahal
      Kasus ini adalah pengecualian yang agak unik karena kesalahan konfigurasi NAT membuat transfer internal dihitung sebagai transfer eksternal
    • 9 sen per GB terasa hampir seperti tarif seluler yang mencekik. Mungkin itu juga alasan Cloudflare menjadi populer
    • Upload murah, tetapi download mahal. Setiap kali pelanggan menyajikan data ke pengguna, AWS mengambil sebagian dari nilai itu
    • Pada layanan untuk konsumen, biaya biasanya sudah termasuk dalam langganan bulanan, tetapi AWS memakai struktur yang membuat biaya terasa langsung
    • Ini mengingatkan saya pada lelucon, “diproduksi di California, bisa keluar tapi tidak bisa benar-benar pergi”
  • Saya penasaran apakah Amazon memberikan refund untuk kesalahan seperti ini

    • Tergantung jumlah dan situasinya. Saya juga pernah mendapat refund besar dulu, tetapi harus mengajukan penjelasan beberapa kali dan menyerahkan rencana pencegahan agar tidak terulang
    • Penulis mengatakan, “saya akan memperbarui hasilnya jika AWS memberi kredit akun”
    • Dalam praktiknya AWS memang cenderung memberi refund dalam kasus seperti ini, karena kemungkinan besar datanya sebenarnya tidak benar-benar keluar ke internet
    • Saya juga pernah beberapa kali mendapat refund. Hanya saja ada syarat untuk mencegah kejadian serupa terulang
    • Pada akhirnya semuanya tergantung skala pelanggan dan kemampuan bayar. Pelanggan $20 per bulan tidak sanggup membayar $1.000, tetapi pelanggan $3.000 per bulan mungkin tidak terlalu peduli
  • VPC NAT Gateway memang terkenal buruk
    Saya pernah mengalami masalah serupa saat bekerja di Amazon, tetapi karena itu akun perusahaan saya tidak perlu membayarnya sendiri
    Orang-orang yang harus membayar sendiri benar-benar patut dikasihani

    • Secara pribadi saya tidak mengerti kenapa NAT gateway begitu umum dipakai. Dalam banyak kasus, Internet Gateway saja sudah cukup
  • Ini tidak langsung membantu untuk kasus kali ini, tetapi kemarin AWS merilis paket harga flat untuk CDN
    Ada juga tier $0 yang mencakup penyimpanan S3 dan bandwidth
    Tautan terkait
    Saya berharap ini nantinya diperluas ke layanan lain juga

  • Saya juga pernah, saat berusia 22 tahun dan baru pertama kali menyentuh infrastruktur, terkena tagihan 300 dolar hanya dalam dua hari
    AWS memang hebat, tetapi bagi pemula perhitungan biayanya terlalu tidak transparan

    • Saya penasaran kenapa hal itu tidak diperbaiki