Kesalahan AWS senilai $1.000
(geocod.io)- 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
- transfer EC2–S3 dalam region yang sama gratis
- 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
- 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
- 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
1 komentar
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 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
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
Thread HN terkait
Menetapkan batas biaya sambil menjaga keandalan layanan memang sulit, tetapi kasus ini membuktikan bahwa secara teknis hal itu memungkinkan
Tujuannya untuk menghindari risiko reputasi akibat penghentian layanan atau gangguan infrastruktur
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
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 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
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
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?
Kasus ini adalah pengecualian yang agak unik karena kesalahan konfigurasi NAT membuat transfer internal dihitung sebagai transfer eksternal
Saya penasaran apakah Amazon memberikan refund untuk kesalahan seperti ini
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
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