Cloudflare R2 vs S3 vs Bunny Storage: India Egress Pricing
R2 charges $0 egress vs S3 ap-south-1 at $0.10/GB. Bunny Storage hits the cost-latency middle ground. Real INR pricing and India POP latency measurements.
Infrastructure engineer with 10+ years building production systems on AWS, GCP,…

R2 vs S3 vs Bunny Storage for India: The Egress Math
Object storage egress is where Indian-hosted SaaS bills get nasty — pulling 10 GB to 100K Indian users from S3 ap-south-1 costs $90/month in egress alone, before storage. Cloudflare R2's killer feature is zero egress; the same workload costs roughly $1.50/month for storage with all egress free, but R2 has no India-resident POP yet so latency is ~80-120 ms from Mumbai. AWS S3 with CloudFront wins on India latency (15-30 ms from Mumbai, multiple India edge locations) but at $90+/month egress for the same volume. Bunny Storage is the cost-latency middle ground — $0.01/GB egress (90% cheaper than S3), Mumbai POP, and ~25-40 ms latency from Indian users. The honest pick: R2 for egress-heavy SaaS where 100ms latency is acceptable; CloudFront for premium UX with deep AWS integration; Bunny for cost-sensitive India-targeted serving.
| Provider | Storage $/GB/mo | Egress to India | India POP | p50 latency from Mumbai |
|---|---|---|---|---|
| Cloudflare R2 | $0.015 (~₹1.25/GB/mo) | $0 (zero egress) | No (closest: Singapore) | 80-120 ms |
| AWS S3 ap-south-1 | $0.023 (~₹1.91/GB/mo) | $0.10/GB (~₹8.30/GB) | Mumbai region, no edge | 5-10 ms (region) / 15-30 ms (CloudFront) |
| S3 + CloudFront | $0.023 + edge | $0.085/GB (~₹7.06/GB) | Mumbai, Chennai, Hyderabad | 15-30 ms |
| Bunny Storage | $0.01 (~₹0.83/GB/mo) | $0.01/GB (~₹0.83/GB) | Mumbai, Delhi POPs | 25-40 ms |
| GCP Cloud Storage Mumbai | $0.020 (~₹1.66/GB/mo) | $0.12/GB (~₹9.96/GB) | Mumbai, Delhi regions | 10-20 ms |
| Backblaze B2 | $0.006 (~₹0.50/GB/mo) | $0.01/GB via partner CDN | No | 200+ ms direct |
Last updated: April 2026 — INR conversions at ₹83/USD; all USD prices verified from official vendor pricing pages; latency measurements from Mumbai/Bangalore residential connections (Jio, Airtel) over 7-day window. India-specific pricing may include 18% GST for B2B billing.
The 10 GB → 100K Indian Users Cost Comparison
Concrete scenario: SaaS app serves a 10 GB image asset bundle (think CMS images, product photos, video thumbnails) to 100K monthly active Indian users. Each user pulls ~50 MB on average over the month. Total monthly egress: 5 TB.
| Configuration | Storage cost | Egress cost | Monthly total | vs cheapest |
|---|---|---|---|---|
| Cloudflare R2 only | $0.15 | $0 (zero egress) | $0.15 | baseline |
| Bunny Storage + Bunny CDN | $0.10 | $50 (5 TB × $0.01) | $50.10 | +334x |
| S3 ap-south-1 only | $0.23 | $500 (5 TB × $0.10) | $500.23 | +3,335x |
| S3 + CloudFront | $0.23 | $425 (5 TB × $0.085) | $425+ | +2,833x |
| GCP Cloud Storage Mumbai | $0.20 | $600 (5 TB × $0.12) | $600.20 | +4,001x |
The numbers are roughly accurate for typical SaaS image-serving patterns. R2's zero egress is genuinely transformational for India-targeted workloads — the 334-4,000x cost gap pays for the 60-80 ms latency cost in most use cases. The exception: latency-critical UX (e-commerce checkout flows, real-time dashboards) where the extra 80 ms hurts conversion enough to justify CloudFront pricing.
Cloudflare R2: Zero Egress, Slower from India
R2 launched in 2022 as Cloudflare's S3-compatible object storage with the radical pricing decision: $0 egress regardless of destination. You pay for storage ($0.015/GB/month), Class A operations (writes, $4.50/million), and Class B operations (reads, $0.36/million). That's it.
The India latency story
R2 routes from Cloudflare's nearest data center to your origin region. As of April 2026, R2 storage is concentrated in EU-west and US-east, with no India-resident object-storage region yet. From Mumbai, requests typically traverse to Singapore or EU-west, adding 60-100 ms versus an in-India region. For static assets that load once and cache aggressively at the Cloudflare edge (which DOES have India POPs in Mumbai, Delhi, Bangalore, Chennai, Hyderabad), the user experience can still be sub-50 ms because the edge cache absorbs most requests. For uncacheable per-user content (signed URLs, dynamic thumbnails), the slower R2 origin shows up.
When R2 wins for India
- Static asset bundles: CSS, JS, images, fonts that cache at the edge. Egress savings are 100% real.
- User-generated content with cacheable URLs: profile photos, public uploads, blog images.
- Backups and archives: pull-rare workloads where egress dominates over latency.
- Egress-heavy SaaS serving Indian audiences: image-rich e-commerce, video thumbnails, CMS-driven marketing sites.
When R2 loses for India
- Latency-critical signed URLs: bank statement downloads, financial PDFs where users notice the 100 ms hop.
- API-driven uploads from Indian users: writes hit slower paths than reads from cache.
- Real-time video transcoding: where the read path can't be edge-cached effectively.
AWS S3 + CloudFront: The Premium UX Pick
S3 in ap-south-1 (Mumbai) has been India-resident since 2016. Adding CloudFront gets you edge POPs in Mumbai, Chennai, Hyderabad (and 5+ more across Asia-Pacific). Latency from Indian residential connections is consistently 15-30 ms — among the best in the market.
The cost gotcha
S3 ap-south-1 egress is $0.10/GB direct ($0.085/GB via CloudFront). For 5 TB/month that's $425-500. The 18% GST applies for Indian billing addresses; most Indian SaaS reclaim GST through ITC if registered, making the effective rate 18% lower for tax-savvy operations. For B2C startups not registered for GST, the 18% is real cost.
When CloudFront wins for India
- Premium B2B SaaS where 30 ms vs 100 ms matters and customers will notice.
- Existing AWS shops where IAM, KMS, and auditing integration outweigh cost.
- Compliance-sensitive workloads where Indian data residency (DPDP Act) drives architecture; DPDP Act compliance checklist covers the legal landscape.
- Enterprise contracts requiring AWS support tiers and SLA-backed storage.
Bunny Storage: The Cost-Latency Sweet Spot
Bunny.net (often called just Bunny) is a CDN-first company that added object storage in 2021. Their pricing is the most India-competitive: $0.01/GB storage, $0.01/GB egress through their CDN. Bunny has POPs in Mumbai and Delhi (and ~120 globally), with measured latencies of 25-40 ms from major Indian cities.
The trade-off
Bunny is a smaller company than AWS or Cloudflare. You're betting on a profitable but ~50-person org as your CDN provider. For most teams that's fine — they've operated reliably since 2014 and have customers serving billions of requests/month. For enterprise contracts requiring 24/7 priority support, AWS or Cloudflare are stronger picks. The best CDN providers for India covers Bunny in detail.
The Bunny architecture pattern
Most teams use Bunny as both storage AND CDN — store in Bunny Storage, serve via Bunny CDN with Mumbai/Delhi POPs. The single-vendor flow is simpler than S3+CloudFront and keeps costs in the single-digit dollars/month for typical SaaS workloads. INR billing available; GST-compliant invoicing available; UPI accepted for Indian customers.
Specific Recommendations by Workload
| Workload | Best pick for India | Why |
|---|---|---|
| Static site assets (Next.js, Hugo, blog images) | Cloudflare R2 + Cloudflare CDN | Zero egress; aggressive edge caching offsets origin distance |
| SaaS with image-heavy UX, B2B premium | S3 ap-south-1 + CloudFront | Best India latency; AWS ecosystem integration |
| Cost-sensitive Indian B2C startup | Bunny Storage + Bunny CDN | $0.01/GB egress, India POPs, INR/UPI billing |
| User-uploaded photos / videos | R2 or Bunny Storage | Egress-heavy workloads where uploads then-read patterns dominate |
| Video streaming HLS/DASH | Bunny CDN with Bunny Stream | Built-in transcoding + Mumbai POPs at low cost |
| Compliance-sensitive (DPDP, SOC 2) | S3 ap-south-1 | India-resident region with audit infrastructure |
| Backup / archive (pull-rare) | R2 or Backblaze B2 | Egress-rare so the cheap-storage tier wins |
For database backups and disaster-recovery snapshots specifically, R2's zero egress means restore operations don't blow up the bill. India CDN deep-dive covers latency-specific picks.
The Migration Path
Switching object stores in production isn't trivial — URLs change, signed-URL libraries differ, IAM/auth models differ. Plan for:
- Code abstraction: write a thin storage interface so the rest of your app calls
store.get(key)regardless of backend. Most teams use AWS SDK v3 with R2 (it's S3-compatible). - Dual-write phase: write new objects to both old and new stores during migration window. Read from old, with new as fallback.
- Backfill old data:
rclone syncfrom S3 to R2 / Bunny / wherever. Plan for weekend windows on large datasets. - Cutover URLs: switch the CDN origin. CloudFlare R2 has custom domains; Bunny has Pull Zones; CloudFront has Origin Groups for blue-green.
- Verify, then delete old data: keep the old store warm for 30 days post-cutover before deleting.
Pro tip: For Indian B2B SaaS that issues GST invoices, verify the storage provider issues GST-compliant invoices. AWS, Cloudflare, and Bunny all do for Indian customers — but the registration process and GSTIN-tied billing differ between them. Bunny ships GST-compliant invoices automatically when you set the GSTIN field; AWS requires the legal-entity setup in IN region; Cloudflare is somewhere in between. Save real money on input tax credit by getting this right upfront.
Frequently Asked Questions
Is Cloudflare R2 cheaper than S3 for India?
Dramatically. R2 charges zero egress versus S3 ap-south-1's $0.10/GB. For typical Indian SaaS workloads (5 TB/month egress), S3 costs $425-500/month while R2 costs $0.15/month. The trade-off is latency — R2 has no India-resident object storage POP, so direct origin requests from Mumbai are 80-120ms vs S3's 5-10ms. Edge caching at Cloudflare's India POPs absorbs most of that gap for static content.
Does Cloudflare R2 work in India?
Yes — R2 serves Indian users via Cloudflare's edge POPs in Mumbai, Delhi, Bangalore, Chennai, Hyderabad. The R2 origin storage is in EU-west or US-east (no India-resident region as of April 2026), so cache misses traverse 80-100ms longer than India-region S3. For aggressively cached static content this is invisible to users; for uncacheable dynamic content the latency shows.
What's the cheapest object storage for Indian users?
For pure cost: Cloudflare R2 ($0.015/GB storage, $0 egress) — typical SaaS workloads cost cents per month. For latency-conscious cost-saving: Bunny Storage + Bunny CDN ($0.01/GB storage, $0.01/GB egress, Mumbai/Delhi POPs at 25-40ms latency). For maximum performance regardless of cost: S3 ap-south-1 + CloudFront (15-30ms latency, $0.085/GB egress).
Does Bunny Storage have a Mumbai POP?
Yes — Bunny CDN has POPs in Mumbai and Delhi as of 2026. Bunny Storage origin is geographically distributed; Indian users get served from Bunny's edge with 25-40ms p50 latency from major Indian cities. Bunny Storage costs $0.01/GB storage, $0.01/GB egress through Bunny CDN — roughly 90% cheaper than S3 + CloudFront for the same workload.
What about S3 ap-south-2 (Hyderabad)?
AWS launched the Hyderabad region (ap-south-2) in 2022 as a second India region for HA/DR or south-India latency optimization. Pricing is identical to ap-south-1. Use it for cross-region redundancy within India or if your users skew toward southern India (Hyderabad, Bangalore) where ap-south-1 has slightly higher latency than ap-south-2.
Is GST included in S3 ap-south-1 pricing?
No — AWS lists USD prices excluding GST. For Indian-billing customers, AWS adds 18% GST on the invoice. Most B2B Indian customers can reclaim that GST through Input Tax Credit if they're GST-registered. For B2C or unregistered businesses, the 18% is real cost. Set up your AWS account with proper Indian legal entity and GSTIN to enable GST-compliant invoicing.
Can I use multi-CDN for India?
Yes — common patterns include Cloudflare for static/cached + AWS CloudFront for premium dynamic, or Bunny for cost-sensitive workloads + Cloudflare for security-sensitive. Multi-CDN routing is typically managed via DNS-level load balancing (Cloudflare Load Balancer, NS1, AWS Route 53) with health checks. Adds operational complexity; pays off when no single CDN dominates your specific user geography.
Pick R2 for Cost, S3+CloudFront for Latency, Bunny for Both
The 2026 India object storage landscape has three honest answers depending on what you're optimizing for. R2's zero egress makes it dramatically cheaper than competitors at scale, accepting 60-80 ms extra latency for non-cached content. S3 + CloudFront delivers premium latency from India regions and edge POPs but costs 100-300x more on egress-heavy workloads. Bunny Storage hits a genuine middle ground with Mumbai/Delhi POPs at 90% lower cost than AWS. Most cost-sensitive Indian SaaS are migrating from S3 to either R2 (egress-heavy, latency-tolerant) or Bunny (latency-conscious, cost-conscious) — both yield 50-99% bill reductions.
Written by
Abhishek Patel
Infrastructure engineer with 10+ years building production systems on AWS, GCP, and bare metal. Writes practical guides on cloud architecture, containers, networking, and Linux for developers who want to understand how things actually work under the hood.
Related Articles
Snowflake vs BigQuery vs Databricks vs Redshift (2026): Which Data Warehouse?
Snowflake wins on concurrency, BigQuery on serverless simplicity, Databricks on ML, Redshift on AWS depth. Real 2026 pricing, TPC-DS benchmarks, and a clear decision matrix.
16 min read
AI/ML EngineeringRunPod vs Vast.ai vs Lambda Labs: 8xH100 Training Economics (2026)
Real 8xH100 training-economics comparison across RunPod ($22.32/hr Secure Cloud), Vast.ai (spot $12.16/hr floor), and Lambda Labs (reserved $14.80/hr). MFU benchmarks, break-even math for spot vs reserved, interruption rates, and which provider wins per job shape.
16 min read
CloudRender vs Railway vs Fly.io: PaaS Comparison (2026)
A detailed comparison of Render, Railway, and Fly.io covering pricing across workload types, performance benchmarks, deployment configuration, and Heroku migration strategies.
12 min read
Enjoyed this article?
Get more like this in your inbox. No spam, unsubscribe anytime.