Cloudflare R2 vs AWS S3: confronto su prezzi, performance e API
Cloudflare R2 è l'object storage S3-compatibile lanciato da Cloudflare nel 2022 come alternativa diretta ad AWS S3. La proposta di valore principale è chiara: nessun costo di egress (uscita dati), pricing più semplice e integrazione nativa con Workers/Pages/CDN. In questo articolo confrontiamo le due piattaforme su tutti i parametri rilevanti per aiutare a scegliere quella adatta al tuo progetto.
Compatibilità API S3
R2 espone un'API S3-compatible che supporta la maggior parte delle operazioni standard: PutObject, GetObject, DeleteObject, ListObjects, CopyObject, Multipart Upload. La gran parte degli SDK AWS funziona puntando R2 modificando solo endpoint e credenziali. Le funzionalità ACL granulari, Object Lock e versioning sono limitate o assenti rispetto a S3. Per progetti che fanno uso intensivo di feature avanzate S3 potrebbe ancora essere necessario.
Procedura passo-passo per usare R2
- Vai sul dashboard Cloudflare → R2.
- Abilita R2 confermando il piano (gratuito sotto 10GB/mese storage).
- Clicca Create bucket, scegli nome unico e regione (auto = closest).
- Vai su Manage R2 API tokens e crea token con scope appropriato.
- Annota Access Key ID, Secret Access Key e Endpoint URL.
- Configura il tuo SDK puntando endpoint:
https://accountid.r2.cloudflarestorage.com. - Esegui un test upload con AWS CLI:
aws s3 cp file.txt s3://miobucket/ --endpoint-url=.... - Configura public access via custom domain dal pannello bucket.
- Imposta lifecycle rules per cancellare oggetti dopo N giorni.
- Integra con Workers via R2 binding nel wrangler.toml.
Pricing a confronto
Storage: R2 costa 0.015 dollari per GB/mese, S3 Standard 0.023 (R2 risparmia 35%). Class A operations (write): R2 4.50 dollari per milione, S3 5.00. Class B operations (read): R2 0.36 per milione, S3 0.40. Egress: R2 0 dollari/GB, S3 0.09 (questo è il game-changer). Per un sito che serve 1TB/mese: R2 ~15 dollari, S3 ~115 dollari. Su 100TB: R2 ~1.500 dollari, S3 ~9.100 dollari.
Performance
R2 ha latenza paragonabile a S3 in regioni vicine, ma R2 distribuisce automaticamente i POP edge senza dover scegliere regione. Combinando R2 + Workers + Cache si ottengono latenze sub-50ms globali contro S3 che richiede CloudFront aggiuntivo. Per ingestion massiva S3 ha throughput leggermente superiore ma R2 supporta multipart upload fino a 5TB per file. Le velocità di download via CDN sono equivalenti sui due servizi.
Quando scegliere R2
R2 è la scelta naturale per: media hosting con alto egress (foto, video, asset CDN), backup con accesso frequente, JAMstack integrato con Pages/Workers, multi-cloud egress economico. È meno indicato per: progetti che richiedono Glacier-like archival ultra-cheap, integrazioni profonde con AWS ecosystem (Lambda triggers, IAM policies avanzate), Object Lock per compliance WORM.
Errori comuni e come risolverli
- SDK non compatibile: verifica versione AWS SDK aggiornata. Alcuni vecchi SDK assumono region us-east-1.
- SignatureDoesNotMatch: l'endpoint URL contiene il path-style. Usa virtual-hosted-style se possibile.
- CORS errors: configura CORS dal pannello bucket, R2 supporta le stesse regole S3.
- Public bucket non accessibile: serve un custom domain o un Worker. R2 non espone URL pubblici diretti per design.
- Costi inattesi: le operazioni Class A (write) costano. Evita upload eccessivi e batch quando possibile.
Migrazione da S3 a R2
Esiste un servizio R2 Super Slurper che migra automaticamente bucket S3 verso R2. Funziona in background, supporta TB di dati e mantiene la struttura. Alternativamente puoi usare rclone o aws s3 sync con due endpoint diversi. Durante la migrazione vale la pena testare le pipeline di accesso (Workers, Pages, CDN front) per assicurarsi che il punto di switch sia atomico.
Domande frequenti
D: R2 supporta versioning?
R: Sì dal 2024, ma in modalità più semplice rispetto a S3.
D: Posso usare R2 con CloudFront?
R: Tecnicamente sì ma è controproducente. Usa direttamente Cloudflare CDN.
D: R2 ha SLA?
R: Sì, 99.9% di disponibilità sui piani paid.
D: Posso emulare S3 in locale per test?
R: Sì, miniflare include emulatore R2 per dev locale.
Considerazioni operative finali
Quando applichi una configurazione di questo tipo in produzione è sempre buona norma seguire un'approccio incrementale: parti con un test su staging, monitora gli effetti per qualche giorno, poi estendi gradualmente al traffico live. La rete Cloudflare elabora ogni cambiamento in pochi secondi a livello globale, quindi le modifiche sono effettive quasi immediatamente, ma gli effetti collaterali su utenti reali possono richiedere ore o giorni per emergere. Annota nel runbook interno data, motivo e parametri di ogni modifica significativa. Una documentazione precisa accelera enormemente il troubleshooting futuro e facilita il passaggio di consegne tra membri del team.
Vale anche la pena ricordare che Cloudflare aggiorna frequentemente l'interfaccia del dashboard e le posizioni delle voci di menu. La logica e le funzionalità descritte in questa guida restano valide, ma il percorso esatto per raggiungere ogni opzione può variare leggermente nel tempo. In caso di difficoltà a trovare una specifica voce, utilizza la barra di ricerca interna del dashboard oppure consulta la documentazione ufficiale aggiornata. La community Cloudflare sul forum ufficiale e su Stack Overflow è inoltre molto attiva e offre spesso risposte rapide a problemi specifici di configurazione.
Per progetti complessi che coinvolgono più servizi Cloudflare contemporaneamente (CDN, Workers, WAF, Access, R2) conviene strutturare la configurazione come codice tramite Terraform o Pulumi. Questo permette versioning, code review, rollback atomici e deploy ripetibili tra environment. Per team con esigenze più semplici la gestione manuale via dashboard resta perfettamente valida, soprattutto se accompagnata da una checklist scritta delle impostazioni applicate. La scelta dell'approccio dipende dalle dimensioni del progetto e dal grado di automazione desiderato. L'importante è essere consistenti e mantenere tracciabilità delle modifiche effettuate.
Hai bisogno di aiuto?
Se vuoi configurare Cloudflare per il tuo sito con il team di G Tech Group, scrivici tramite il modulo di contatto.