S3 vs Cloudflare R2: escolha de object storage
O Amazon S3 é o object store padrão da indústria com o ecossistema mais profundo; o Cloudflare R2 é armazenamento compatível com S3 sem taxas de egress.
O S3 é o object store mais maduro, com o conjunto de recursos mais amplo (lifecycle, replicação, storage classes, integração profunda com a AWS) e o maior ecossistema. O R2 é compatível com a API do S3, roda no edge da Cloudflare e, crucialmente, não cobra taxas de egress, tornando-o atraente para cargas pesadas em banda e assets servidos por CDN. O S3 favorece recursos e integração com a AWS; o R2 favorece a economia de egress.
| S3 | Cloudflare R2 | |
|---|---|---|
| Taxas de egress | Sim | Nenhuma |
| API | S3 (nativa) | Compatível com S3 |
| Recursos | Os mais profundos (classes, lifecycle) | Em crescimento |
| Ecossistema | O maior (AWS) | Plataforma Cloudflare |
| Melhor para | AWS-native, recursos ricos | Pesado em egress, assets de CDN |
Caso de uso e custo
O S3 atende cargas AWS-native que precisam de storage classes avançadas, regras de lifecycle e integração estreita com a AWS. O R2 atende uso pesado em banda (mídia, downloads, assets públicos) onde o egress domina o custo, e integra com Cloudflare Workers e CDN. Sua compatibilidade com o S3 facilita a migração de código de leitura/escrita.
Em CI e deploy
Ambos aceitam uploads via a API do S3 a partir do CI (artefatos, saídas de build, assets estáticos) usando OIDC ou tokens com escopo. Qualquer um funciona a partir de runners gerenciados, onde runners mais rápidos encurtam as etapas de upload de artefatos.
O veredito
Cargas AWS-native que precisam de recursos ricos de armazenamento e integração: S3. Assets pesados em egress ou servidos por CDN onde o custo de banda domina: Cloudflare R2 (zero egress, compatível com S3). Muitos times mantêm o S3 para dados internos da AWS e usam o R2 para assets públicos de alto egress.