Posted on Mar 22, 2026 · Updated Mar 22, 2026 · 12 min read
How Much Does a Mobile App Backend Cost on AWS? (2026)
You built a mobile app. Now you need a backend. The question every founder hits eventually: how much is this actually going to cost to run?
The answer depends almost entirely on scale, but the range is wide enough that guessing wrong in either direction causes real problems. Underestimate and you get surprise bills that threaten your runway. Overestimate and you overbuild infrastructure that sits idle for months. According to the Flexera 2025 State of the Cloud Report, 27% of cloud spend is wasted on average — and mobile backends are one of the worst offenders because they get provisioned for peak traffic that never arrives.
This post breaks down mobile app backend costs on AWS at four realistic user scales, service by service. We also compare AWS to Azure and GCP, look at the BaaS vs custom backend trade-off, and cover five concrete ways to cut costs without hurting your app. If you want numbers for your specific situation, the free mobile app backend calculator gives you a customized estimate in under two minutes.
TL;DR — Mobile app backend cost ranges on AWS
- 1K active users: $200–$300/mo (t3.small API, db.t3.micro RDS, minimal traffic)
- 10K active users: $1,500–$1,600/mo (t3.medium, db.t3.small, SNS push, CloudFront)
- 100K active users: $3,500–$4,000/mo (multi-instance API, db.t3.large, meaningful egress)
- 1M active users: $11,000–$13,000/mo (auto-scaling fleet, Multi-AZ RDS, CDN at scale)
These are AWS us-east-1 on-demand rates (AWS pricing docs, 2025). Reserved instances cut compute costs 30–40%. Firebase/BaaS can be cheaper at low scale, more expensive above ~50K monthly active users.
Table of contents
What makes up a mobile app backend?
Six service categories account for nearly all mobile backend spend. Most teams need all six. The proportions shift as you scale, but the categories stay the same.
API servers (compute)
Every mobile app needs somewhere to run application logic. This is usually EC2 instances, ECS containers, or Lambda functions handling REST or GraphQL requests from the app. At low scale this is a single small instance. At high scale it's an auto-scaling group behind a load balancer. Compute is typically the largest single line item — 30–45% of total backend spend.
Database
Most mobile apps need a relational database (PostgreSQL or MySQL via RDS) for structured user and content data, often paired with a cache (ElastiCache Redis) for sessions and frequently-read records. Database costs are almost always the second-largest category. RDS instances are priced per hour regardless of actual query load, so idle dev databases burn real money.
Push notifications
AWS SNS handles push notification delivery to APNs (iOS) and FCM (Android). The pricing model is favorable at small scale — $0.50 per million mobile push notifications — but the cost is rarely zero. Infrastructure supporting fan-out to large audiences (topic subscriptions, queues) adds to the bill.
Storage
S3 stores user-uploaded media, app assets, and backups. At $0.023/GB/month for standard storage, the raw storage cost is low until you have meaningful user-generated content. Data transfer out of S3 — the egress charge — is where the real cost hides. Without a CDN in front of S3, you pay $0.09/GB for every download.
Authentication
AWS Cognito handles sign-up, sign-in, and token management. It's free for the first 50,000 monthly active users (MAUs), then $0.0055 per MAU. At typical mobile DAU/MAU ratios, auth costs are negligible until you reach roughly 100K MAU — then they become a real line item.
CDN
CloudFront sits in front of your API and S3 assets to reduce latency for global users and cut egress costs from origin. CloudFront data transfer is cheaper than direct EC2 or S3 egress — $0.085/GB for the first 10 TB vs $0.09/GB from S3 origin. More importantly, CDN caching reduces the number of requests hitting your API servers and database.
The often-forgotten costs
NAT Gateway ($0.045/GB processed + $0.045/hour per AZ), Application Load Balancer ($0.008/LCU-hour + $0.0008/hour), and CloudWatch logs ($0.50/GB ingested) add up fast. A standard two-AZ setup with an ALB and NAT Gateway costs roughly $55–$80/month before any actual traffic — see our AWS bill breakdown for startups for a full accounting of these baseline charges.
Cost breakdown by scale (1K to 1M users)
The numbers below use AWS us-east-1 on-demand pricing as published in AWS documentation (2025). "Active users" means monthly active users making regular API requests — not registered accounts. Use the free mobile app backend calculator to adjust for your specific request volume, data transfer, and storage requirements.
1,000 active users — $200 to $300/mo
| Service | Configuration | Monthly cost |
|---|---|---|
| EC2 (API server) | 1x t3.small (2 vCPU, 2GB) | $15 |
| RDS PostgreSQL | db.t3.micro, 20GB storage | $16 |
| S3 + egress | 10GB storage, 50GB transfer | $5 |
| Cognito | Under 50K MAU free tier | $0 |
| SNS push | ~100K notifications | $0.05 |
| ALB + NAT Gateway | Single AZ, minimal traffic | $20 |
| CloudWatch | Basic logs, default metrics | $5 |
| Total | ~$250 |
At this scale, infrastructure costs are modest. The $200–$300 range reflects configuration choices: single vs multi-AZ, log retention settings, and whether you're running dev/staging environments on the same account. Most waste at this tier comes from forgetting to shut down dev instances.
10,000 active users — $1,500 to $1,600/mo
| Service | Configuration | Monthly cost |
|---|---|---|
| EC2 (API servers) | 2x t3.medium (2 vCPU, 4GB) | $60 |
| RDS PostgreSQL | db.t3.small, Multi-AZ, 50GB | $70 |
| ElastiCache Redis | cache.t3.micro (session cache) | $13 |
| S3 + CloudFront | 50GB storage, 500GB CDN transfer | $45 |
| SNS push | ~2M notifications/mo | $1 |
| ALB + NAT Gateway | Multi-AZ, 200GB NAT processed | $40 |
| CloudWatch + misc | Logs, metrics, alarms | $20 |
| Total | ~$1,600 |
This is where architectural choices start mattering. Adding Multi-AZ to RDS doubles the database cost but is necessary for any app with paying users. NAT Gateway costs grow with traffic volume — two AZs at 200GB processed adds $18/month in data processing fees alone. The upper end of the range ($1,600) reflects teams running separate staging environments and verbose logging.
100,000 active users — $3,500 to $4,000/mo
At 100K MAU, compute becomes the dominant cost. You're running an auto-scaling group of 3–6 instances, a production-grade database, and real CDN traffic. The specific numbers:
- EC2 auto-scaling group (4x t3.large average): $240/mo
- RDS db.t3.large, Multi-AZ, 200GB storage: $270/mo
- ElastiCache cache.t3.small: $27/mo
- CloudFront (5TB transfer) + S3 (200GB storage): $460/mo
- ALB + NAT Gateway (2TB NAT processed): $135/mo
- Cognito (100K MAU above free tier): $275/mo
- SNS (20M notifications): $10/mo
- CloudWatch, Route53, ACM, misc: $80/mo
Total baseline: roughly $3,500/mo. The $4,000 ceiling reflects high-media apps (video, audio) with large egress, read replicas for analytics queries, and multiple environments. Cognito becomes a meaningful expense here — $275/month for 100K MAU is real money, and it's the point where evaluating self-hosted auth starts making sense.
1,000,000 active users — $11,000 to $13,000/mo
At 1M MAU you're operating production infrastructure. Reserved instances are non-negotiable — staying on on-demand at this scale adds $3,000–$6,000/month compared to 1-year reserved pricing (AWS Reserved Instance pricing docs, 2025). Key cost drivers at this tier:
- EC2 fleet (12–20 instances, mix of on-demand + reserved): $1,200–$2,800/mo
- RDS db.r6g.large, Multi-AZ, read replica, 1TB storage: $900–$1,400/mo
- ElastiCache r6g.large cluster: $180/mo
- CloudFront (50TB transfer) + S3 (2TB): $4,500/mo
- ALB + NAT Gateway (20TB NAT processed): $1,100/mo
- Cognito (1M MAU): $5,225/mo
- SNS, SQS, messaging infrastructure: $200/mo
- CloudWatch, monitoring, misc: $400/mo
Cognito becomes the second-largest line item at 1M MAU. Many teams at this scale switch to self-hosted auth (Auth0 Business is cheaper at scale, Keycloak is free but requires ops overhead). Data transfer — the combination of CloudFront egress and NAT Gateway — often surprises teams. Read our guide on AWS bill structure for strategies to reduce egress costs before they compound.
AWS vs Azure vs GCP for mobile backends
AWS leads mobile backend adoption, but Azure and GCP are genuinely competitive — and cheaper for specific workloads. Here's how the three compare for the services that matter most to mobile apps.
| Category | AWS | Azure | GCP |
|---|---|---|---|
| Compute (equivalent to t3.medium) | $30/mo (EC2) | $29/mo (B2s) | $24/mo (e2-standard-2) |
| Managed PostgreSQL | $58/mo (db.t3.small) | $48/mo (Flexible Server B2s) | $52/mo (Cloud SQL db-g1-small) |
| CDN egress (first 10TB) | $0.085/GB | $0.081/GB | $0.08/GB |
| Auth (100K MAU) | $275/mo (Cognito) | $275/mo (AAD B2C) | $0 (Firebase Auth, unlimited) |
| Object storage (1TB) | $23/mo (S3) | $18/mo (Blob LRS) | $20/mo (GCS Standard) |
| Push notifications | $0.50/M (SNS) | $1.00/M (Notification Hubs) | $0 (FCM, free) |
| Ecosystem / mobile SDKs | Strong | Good | Very strong (Firebase) |
GCP has a real cost advantage for mobile backends: Firebase Auth is unlimited and free, FCM push notifications are free, and GCP Sustained Use Discounts apply automatically without commitment — typically 20–30% for instances running full-time. For startups under 50K MAU, GCP often beats AWS on total infrastructure cost.
AWS wins on ecosystem maturity and operational tooling. If your team already uses AWS for other infrastructure, consolidating on AWS avoids cross-provider data transfer charges and reduces operational complexity. For a deeper look at the compute and storage pricing differences, see our reserved vs spot vs on-demand comparison which covers purchasing model discounts across all three providers.
Azure tends to be cost-competitive on database and storage pricing but has higher push notification costs and a less mature mobile SDK ecosystem compared to AWS Amplify or Firebase. It's a reasonable choice if your organization already has Microsoft licensing agreements or runs .NET backends.
Run your own numbers with the free mobile app backend calculator, which compares estimated costs across AWS, Azure, and GCP for your specific configuration.
BaaS vs custom backend: Firebase vs self-hosted
Backend-as-a-Service platforms like Firebase, Supabase, and Appwrite bundle auth, database, storage, and push notifications into a single managed service. They eliminate ops overhead. The question is whether you pay for that convenience in dollars or lose it in flexibility.
Firebase cost vs self-hosted (AWS)
| Scale | Firebase (Blaze) | Self-hosted AWS |
|---|---|---|
| 1K MAU | $0–$25 | $200–$300 |
| 10K MAU | $25–$80 | $1,500–$1,600 |
| 50K MAU | $150–$400 | $2,500–$3,000 |
| 100K MAU | $400–$1,200 | $3,500–$4,000 |
| 500K MAU | $3,000–$8,000 | $7,000–$10,000 |
Firebase is cheaper at every scale up to roughly 50K–100K MAU. Below that threshold, the savings from Firebase's free tier and the avoided ops cost (engineering time managing infrastructure) make BaaS the financially rational choice. Above 100K MAU, the curves cross — and at 500K MAU, Firebase can cost more than a well-tuned AWS setup.
The crossover point depends on your data model. Apps with heavy Firestore read/write patterns face Firebase costs that scale with document operations, not just users. A social feed app reading 50 documents per session per user crosses the break-even point much earlier than a simple CRUD app. Self-hosted PostgreSQL on RDS has flat per-hour pricing regardless of query volume.
Supabase as a middle ground
Supabase offers PostgreSQL-backed BaaS with more predictable pricing than Firebase. The Pro plan ($25/mo) covers most apps under 10K MAU. Unlike Firebase, Supabase lets you migrate off — the underlying data is standard PostgreSQL, so you can export to RDS if you outgrow it. That exit path is worth factoring into your initial infrastructure decision.
The hidden cost of BaaS that most comparisons ignore: vendor lock-in risk. Firebase's data model (Firestore document structure, real-time listeners) is deeply coupled to the platform. Migrating off at 500K MAU is a multi-month engineering project. Self-hosted from day one avoids that constraint entirely.
5 ways to cut mobile backend costs
These five tactics reduce mobile backend costs without degrading performance or reliability. They apply regardless of scale, though the dollar impact grows as you grow.
1. Cache aggressively at the API layer
Most mobile API endpoints serve data that doesn't change on every request. User profiles, product catalogs, content feeds — these are read far more often than they're updated. Adding Redis (ElastiCache) in front of your database and caching responses for even 30–60 seconds eliminates 60–80% of database reads for read-heavy workloads. A cache.t3.micro at $13/month can defer a database upgrade that would cost $100–$200/month.
2. Put CloudFront in front of everything
CDN is not just for static assets. CloudFront can cache API responses, serve app assets from edge locations, and cut S3 egress costs. Direct S3 data transfer costs $0.09/GB; CloudFront costs $0.085/GB for the first 10TB and drops to $0.02/GB at high volume. More importantly, cached responses at the edge never hit your origin servers at all. For a mobile app with global users, CDN reduces both cost and latency in one move.
3. Right-size your database immediately
RDS instances are the most over-provisioned resource in mobile backends. Engineers provision for projected peak load, then never revisit the instance size. A db.t3.large at $130/mo may be doing the work of a db.t3.small at $32/mo. Check RDS CloudWatch metrics: if CPU utilization averages below 20% and FreeableMemory stays above 60%, you're paying for headroom you don't need. Downsizing takes 20 minutes with a maintenance window.
4. Use Lambda for infrequent API endpoints
Not every API endpoint runs constantly. Account deletion, password reset, report generation, bulk export — these happen rarely but often run on always-on EC2 instances. Moving low-frequency endpoints to Lambda eliminates the idle compute cost. Lambda pricing is $0.20 per million requests plus $0.0000166667 per GB-second of execution time. For an endpoint called 10,000 times per month using 256MB for 500ms, that's $0.23/month vs $30/month for a dedicated t3.small. See our guide on choosing the right compute purchasing model for how to blend Lambda, spot, and reserved instances in a cost-efficient architecture.
5. Buy reserved instances for steady-state compute
Once your API server fleet stabilizes — meaning you know roughly how many instances you need at baseline — convert that baseline to 1-year reserved instances. AWS 1-year reserved pricing saves 30–40% over on-demand for the same instance type (AWS Reserved Instance pricing docs, 2025). On a $400/mo EC2 bill, that's $120–$160/month saved with zero architectural change. Use on-demand or spot for auto-scaling above the baseline; reserve the floor. This single change is often the highest-leverage cost optimization available to a growing mobile app.
Estimate your cloud costs — for free
Compare AWS, Azure, and GCP pricing side by side with our free calculator, and dig into the guides to learn how to cut cloud waste. No sign-up required.
Affordable backend hosting
A mobile backend rarely needs hyperscaler pricing early on — these run the same workloads for far less.
- DigitalOcean — managed App Platform + databases with predictable flat pricing.
- Vultr — low-cost compute with a global edge footprint for low-latency APIs.
- Hetzner — the best raw price/performance for VPS and dedicated boxes.
Some provider links above are affiliate links — we may earn a commission at no extra cost to you. It never affects our pricing data.
Frequently asked questions
How much does AWS charge for a mobile app backend per month?
AWS mobile app backend costs depend almost entirely on user scale. At 1,000 monthly active users you can run a complete backend — API server, PostgreSQL database, S3 storage, and push notifications — for $200–$300/month. At 10,000 users expect $1,500–$1,600/month. At 100,000 users, $3,500–$4,000/month. At 1 million users, $11,000–$13,000/month. The ranges reflect differences in app type (media-heavy vs CRUD), architectural choices (single-AZ vs Multi-AZ), and whether reserved instances are used.
Is Firebase cheaper than AWS for a mobile backend?
Yes, Firebase is typically cheaper than a self-hosted AWS backend up to roughly 50,000–100,000 monthly active users. Below that scale, Firebase's free tier and bundled services (auth, database, storage, push) cost less than the equivalent AWS services individually. Above 100K MAU, AWS becomes cheaper — especially if you use reserved instances and self-host authentication instead of paying Cognito's per-MAU pricing.
What is the cheapest way to host a mobile app backend on AWS?
For early-stage apps, the cheapest viable AWS mobile backend uses a single t3.small EC2 instance ($15/mo) with a db.t3.micro RDS instance ($16/mo), S3 for storage, Cognito free tier for auth, and SNS for push. Total: around $55–$70/month. Skip NAT Gateway by using VPC endpoints for S3 and DynamoDB access, which saves $30–$50/month. Use Lambda for infrequent endpoints instead of always-on EC2 processes. Avoid Multi-AZ RDS until you have paying users whose tolerance for downtime justifies the cost.
How do I estimate my mobile app's AWS costs before launch?
Start with your expected monthly active users, average API requests per user per day, and average payload sizes for uploads/downloads. Use the free mobile app backend calculator to turn those numbers into service-level cost estimates across AWS, Azure, and GCP. For a manual estimate: assume compute at $0.03–$0.10 per user per month, database at $0.02–$0.08 per user per month, and data transfer at $0.005–$0.02 per user per month, then add fixed infrastructure overhead of $50–$80/month for load balancer and NAT Gateway.
Why is my mobile app's AWS bill higher than expected?
The most common culprits are NAT Gateway data processing charges (easily $50–$200/month in multi-AZ setups), CloudWatch log ingestion from verbose application logging, oversized RDS instances provisioned for future load, and data transfer charges from S3 without a CDN in front of it. According to Flexera's 2025 State of the Cloud Report, 27% of cloud spend is wasted on average. For mobile backends specifically, the waste is often concentrated in networking (NAT Gateway, egress) and idle or oversized compute.