Cloudflare R2 ha la stessa API di S3 ma una promessa diversa: zero costi di egress. Per chi ha bucket pubblici dietro CDN, sembra troppo bello. Vediamo i numeri di un cliente reale.
Il caso
Un nostro cliente nel B2B media ha 12 TB di asset (foto e video) e ~8 TB/mese di egress. Su AWS S3 + CloudFront pagava ~620 USD/mese, prevalentemente egress.
Il porting
R2 espone una API S3-compatibile. Per migrare abbiamo usato rclone con multipart, e in 26 ore tutti i file erano nel nuovo bucket. La parte di codice (uploader Node.js) ha richiesto una sola modifica: l'endpoint.
I numeri post-migration
- Storage: ~180 USD/mese (S3 era ~140, R2 leggermente più caro).
- Egress: 0 USD (vs ~480 USD).
- Operations: ~12 USD/mese (S3 era ~8).
- Totale: ~192 USD/mese vs ~620 → −69%.
I trade-off
R2 è più giovane: meno regioni, qualche limite operativo (es. lifecycle policies più scarne). La latenza è ottima dentro il network Cloudflare, marginalmente peggiore in regioni dove S3 ha PoP fisici. Per la maggior parte dei casi web-facing, è invisibile.
Quando NON spostarsi
- Compliance forte AWS (Config Rules, GuardDuty, audit log nativi).
- Workload analytics con Athena/Glue.
- Architetture event-driven con SNS/SQS strettamente accoppiate.
Per il resto, R2 è un upgrade senza apparente lock-in (l'API è S3, ci si sposta in entrambe le direzioni). Lo proporremo di default ai nuovi progetti.