# Kurangi Biaya GCS Egress: Migrasi ke Cloudflare R2

> Biaya egress Google Cloud Storage menguras anggaran Anda? Migrasi ke Cloudflare R2 untuk zero egress cost. Panduan migrasi langkah demi langkah dengan rclone, perbandingan biaya nyata, dan migrasi SDK S3-compatible.

URL: https://www.matthewswong.com/id/blog/cloudflare-r2-gcs-egress/

- Author: Matthews Wong (https://www.matthewswong.com/id/about/)
- Published: 2024-12-09
- Updated: 2024-12-09
- Category: DevOps

Biaya egress Google Cloud Storage adalah pembunuh anggaran yang senyap. Setiap gigabyte data yang dibaca aplikasi Anda dari GCS dan dikirimkan ke pengguna dikenakan biaya — $0,11/GB untuk 10 TB pertama per bulan. Pada skala besar, ini menjadi salah satu line item terbesar dalam tagihan cloud Anda. Cloudflare R2 menyelesaikan masalah ini sepenuhnya: zero egress fee, API yang kompatibel dengan S3, dan distribusi global melalui jaringan Cloudflare. Panduan ini membahas perbandingan biaya nyata, tooling migrasi, dan perubahan kode aplikasi yang diperlukan untuk beralih.

## Biaya Nyata dari GCS Egress

Harga penyimpanan cloud terlihat sederhana di permukaan — GCS Standard storage adalah $0,020/GB/bulan. Namun biaya egress terasa menyakitkan: $0,11/GB untuk 10 TB pertama yang keluar ke internet, $0,08/GB untuk 40 TB berikutnya. Platform media yang menyimpan 5 TB dan menyajikan 1 TB video per bulan membayar $20 untuk storage dan $110 untuk egress — multiplier 5,5x. Cloudflare R2 mengenakan $0,015/GB untuk storage dan benar-benar $0 untuk egress, menjadikan ekonominya sangat menarik untuk beban kerja yang banyak membaca.

### Perbandingan Biaya Berdampingan

Angka-angkanya berbicara jelas saat dibandingkan langsung. Pada 100 GB egress per bulan, GCS menghabiskan $31/bulan versus R2 di $15/bulan — penghematan 52%. Pada 1 TB egress, GCS menghabiskan $131/bulan versus R2 di $15/bulan — penghematan 89%. Semakin tinggi volume egress, semakin dramatis penghematannya. Titik impas di mana perbedaan harga storage R2 (lebih mahal $0,005/GB) diimbangi oleh penghematan egress adalah sekitar 3 GB egress per 1 GB yang disimpan.

## Migrasi Data dengan rclone

rclone adalah tool standar industri untuk migrasi penyimpanan cloud. Tool ini memahami lusinan backend storage termasuk GCS dan Cloudflare R2 (melalui API yang kompatibel dengan S3), dapat menyinkronkan secara paralel dengan beberapa thread transfer, dan mendukung mode dry-run untuk pengujian yang aman. Migrasi adalah proses dua langkah: pertama sinkronkan semua data dari GCS ke R2, kemudian perbarui konfigurasi aplikasi Anda untuk menunjuk ke R2, lalu jalankan sinkronisasi akhir untuk menangkap objek apa pun yang ditulis selama jendela cutover.

### Skrip Migrasi Langkah demi Langkah

Konfigurasikan rclone dengan remote GCS (menggunakan JSON service account Anda) dan remote R2 (menggunakan API token R2 dari dashboard Cloudflare). Selalu jalankan dengan --dry-run terlebih dahulu untuk memverifikasi jumlah objek dan total ukuran sesuai ekspektasi Anda. Flag --transfers 32 meparalelkan upload di 32 thread bersamaan — sesuaikan berdasarkan bandwidth jaringan Anda. Migrasi besar (>100 GB) sebaiknya dijalankan dari VM di region yang sama dengan bucket GCS Anda untuk meminimalkan biaya transfer selama migrasi.

## Memperbarui Kode Aplikasi

Karena R2 kompatibel dengan S3, memigrasikan kode aplikasi sering hanya mengubah URL endpoint dan kredensial. Jika Anda menggunakan AWS SDK (@aws-sdk/client-s3), Anda hanya perlu memperbarui konstruktor S3Client — semua pemanggilan GetObject, PutObject, DeleteObject, dan ListObjects tetap identik. Jika Anda menggunakan client library GCS secara langsung, Anda perlu beralih ke AWS SDK atau menggunakan library yang kompatibel dengan S3 seperti MinIO client.

### Migrasi SDK: GCS Client ke R2 via S3 API

AWS SDK untuk JavaScript, Python, Go, dan bahasa lainnya semuanya mendukung endpoint kustom — cukup arahkan ke endpoint R2 Anda (https://'{account_id}'.r2.cloudflarestorage.com) dengan kredensial API token R2. Region harus diset ke 'auto' karena R2 secara otomatis merutekan ke datacenter Cloudflare terdekat. Untuk aset publik, aktifkan fitur public bucket R2 untuk menyajikan file langsung dari domain kustom melalui CDN Cloudflare dengan zero egress cost.

> Selama migrasi, aktifkan GCS Object Change Notifications atau Pub/Sub untuk menangkap objek baru apa pun yang ditulis selama jendela migrasi. Tuliskan ke GCS dan R2 secara bersamaan (pola dual-write) untuk memastikan zero data loss selama cutover. Hapus GCS hanya setelah memverifikasi R2 memiliki semua objek melalui rclone check --size-only.

> **R2 Tidak Mendukung Semua Fitur GCS**

> Cloudflare R2 kompatibel dengan S3, bukan GCS. Fitur yang spesifik untuk GCS — seperti Object Lifecycle Management, Uniform Bucket-Level Access, dan IAM Conditions — perlu direplikasi menggunakan ekuivalen R2 atau Cloudflare Workers. Audit konfigurasi GCS Anda sebelum migrasi untuk memastikan semua fitur yang Anda andalkan memiliki ekuivalen R2.

## Fitur Lanjutan R2 dan Terminologi Penting

Setelah migrasi ke R2, jelajahi fitur-fitur ini untuk lebih mengurangi biaya dan meningkatkan performa: R2 Event Notifications memicu Cloudflare Workers saat objek berubah — berguna untuk pipeline pemrosesan gambar. R2 Object Lifecycle secara otomatis mengakhiri masa berlaku atau mentransisi objek untuk mengurangi biaya storage. Cache API Cloudflare dapat menyimpan objek R2 di edge untuk konten yang paling sering diakses, bahkan mengurangi jumlah operasi R2. Dikombinasikan dengan Workers untuk pengubahan ukuran gambar on-the-fly, R2 dapat menggantikan CDN + object storage + stack pemrosesan gambar dengan biaya yang jauh lebih rendah.

## Source links

- https://developers.cloudflare.com/r2/
- https://rclone.org/s3/
- https://cloud.google.com/storage/pricing

## FAQ

### Mengapa biaya egress Cloudflare R2 jauh lebih murah dibanding Google Cloud Storage?

Google Cloud Storage mengenakan $0,11/GB untuk 10 TB egress pertama ke internet per bulan, sementara Cloudflare R2 benar-benar $0 untuk egress. Ini karena model bisnis Cloudflare berbasis layanan jaringan, sehingga mereka menyerap biaya egress alih-alih membebankannya ke pelanggan. Untuk beban kerja yang banyak membaca, perbedaan ini bisa memangkas tagihan storage sebesar 52–89% tergantung volume egress.

### Tool apa yang direkomendasikan artikel ini untuk migrasi data dari GCS ke R2, dan apa saja tindakan pencegahan yang perlu dilakukan?

Artikel ini merekomendasikan rclone, tool standar industri untuk migrasi penyimpanan cloud. Anda harus selalu menjalankannya dengan flag --dry-run terlebih dahulu untuk memverifikasi jumlah objek dan total ukuran sebelum sinkronisasi sesungguhnya. Migrasi besar lebih dari 100 GB sebaiknya dijalankan dari VM di region yang sama dengan bucket GCS Anda untuk menghindari biaya transfer selama proses migrasi.

### Seberapa banyak kode aplikasi yang perlu diubah saat beralih dari GCS ke R2?

Karena R2 kompatibel dengan S3, perubahannya sering kali minimal — jika Anda sudah menggunakan AWS SDK (@aws-sdk/client-s3), Anda hanya perlu memperbarui konstruktor S3Client dengan endpoint dan kredensial R2. Semua pemanggilan GetObject, PutObject, DeleteObject, dan ListObjects tetap identik. Jika Anda menggunakan client library GCS secara langsung, Anda perlu beralih ke AWS SDK atau library yang kompatibel dengan S3 seperti MinIO client.

### Bagaimana cara memastikan zero data loss saat cutover dari GCS ke R2?

Artikel ini merekomendasikan pola dual-write: aktifkan GCS Object Change Notifications atau Pub/Sub untuk menangkap objek baru yang ditulis selama jendela migrasi, lalu tuliskan ke GCS dan R2 secara bersamaan. Setelah sinkronisasi awal, jalankan sinkronisasi akhir dengan rclone untuk menangkap objek baru yang tersisa, kemudian verifikasi R2 memiliki semua objek menggunakan rclone check --size-only sebelum menghapus GCS.

### Apakah ada fitur GCS yang tidak didukung oleh R2?

Ya. R2 kompatibel dengan S3, bukan GCS, sehingga fitur khusus GCS seperti Object Lifecycle Management, Uniform Bucket-Level Access, dan IAM Conditions tidak tersedia secara langsung. Fitur-fitur ini perlu direplikasi menggunakan ekuivalen R2 atau Cloudflare Workers. Artikel ini menyarankan untuk mengaudit konfigurasi GCS Anda sebelum migrasi guna memastikan setiap fitur yang Anda andalkan memiliki ekuivalen di R2.

---

- HTML version: https://www.matthewswong.com/id/blog/cloudflare-r2-gcs-egress/
- English: https://www.matthewswong.com/en/blog/cloudflare-r2-gcs-egress/
- Site index for agents: https://www.matthewswong.com/llms.txt
- Sitemap: https://www.matthewswong.com/sitemap.xml
- API description (OpenAPI): https://www.matthewswong.com/openapi.json
