How much does it cost to run a mobile app backend?
A serverless backend for a mobile app with 250,000 monthly active users costs about 1,558 dollars a month, and managed authentication is 71 percent of it. Here is the breakdown and the one line worth challenging.
Quick answer
A serverless mobile app backend for 250,000 monthly active users (40 million API requests, 15 million push notifications, 500 GB of user media) costs roughly 1,558 dollars a month on AWS, or 0.0062 dollars per MAU. The surprise is that managed authentication is 1,100 dollars of that, 71 percent of the bill, because Cognito charges 0.0055 per monthly active user above the 50,000 free tier. Every other component combined is 458 dollars. Push notifications cost 7.50 dollars for 15 million sends, and the entire compute and database layer is 103 dollars.
Mobile backends are the best case for serverless. Traffic is spiky, sessions are short, and the read pattern is usually key-based rather than relational. The result is a bill where compute is almost free and the expensive lines are the ones you did not think of as infrastructure at all. Here is what a real one looks like.
The workload we are pricing
Assume a consumer mobile app in us-east-1 with 250,000 monthly active users and 30,000 daily active users. Each daily session makes about 45 API calls, giving roughly 40 million requests a month. The app stores profile data and activity feeds, sends 15 million push notifications a month, and holds 500 GB of user-uploaded photos delivered through a CDN at about 2 TB a month. Authentication is handled by a managed identity service with social sign-in.
The monthly breakdown
| Component | Specification | Monthly cost |
|---|---|---|
| Managed authentication | 200,000 billable MAU above free tier at 0.0055 | $1,100.00 |
| CDN | CloudFront 2 TB plus 40M requests | $204.08 |
| Logs and metrics | 150 GB ingest plus retention | $80.00 |
| Lambda | 40M invocations, 512 MB, 150 ms average | $58.00 |
| DynamoDB | 40M reads, 8M writes on-demand, 100 GB stored | $45.00 |
| API Gateway | HTTP API, 40M requests at 1.00 per million | $40.00 |
| Object storage | 500 GB S3 Standard plus requests | $21.50 |
| Push notifications | SNS mobile push, 15M at 0.50 per million | $7.50 |
| Secrets | 5 secrets | $2.00 |
| Total | $1,558.08 |
Authentication is the whole bill
Managed identity services price per monthly active user, and that pricing model behaves nothing like the rest of your infrastructure. It scales linearly with users regardless of how much they use the app. A user who opens the app once and never returns costs the same 0.0055 dollars as your most engaged power user. At 250,000 MAU with a 50,000 free tier, that is 1,100 dollars a month for a service doing perhaps 2 million token operations.
Compare it to what the rest of the stack costs to serve those same users: 103 dollars for compute, API gateway, and database combined. Authentication is 10x the cost of the application it protects. That is not an argument against managed identity, which handles token rotation, MFA, social federation, and compliance that would take real engineering time to build. It is an argument for pricing it explicitly before you depend on it, and for knowing the alternative.
| Auth approach | Monthly cost at 250K MAU | Engineering burden |
|---|---|---|
| Managed identity service | $1,100 | Configuration only |
| Self-hosted JWT on Lambda plus DynamoDB | about $30 | Build and maintain, security-critical |
| Third-party identity vendor (typical tier) | $500 to $2,000 | Configuration plus vendor lock-in |
Thirty dollars versus 1,100 dollars is a 36x difference, but the self-hosted column carries the risk of getting session handling, password reset, and token revocation wrong, which is a bad place to save 1,000 dollars. The honest conclusion for most teams is to keep managed auth and know it is the largest line, then revisit at 1 million MAU where it becomes 5,225 dollars a month and the build-versus-buy arithmetic changes.
Why the compute is so cheap
Forty million Lambda invocations at 512 MB and 150 ms is 58 dollars. The same traffic on always-on containers sized for peak (mobile traffic typically peaks at 5x the daily average around evening hours) would need roughly four Fargate tasks at 1 vCPU, or 144 dollars, plus a load balancer at 86 dollars, plus a NAT gateway at 70 dollars. That is 300 dollars against 98 dollars for Lambda plus API Gateway. Spiky mobile traffic is precisely the shape where serverless wins, as covered inLambda versus Fargate cost.
DynamoDB on-demand at 45 dollars is similarly cheap because the access pattern is single-item reads by user key. Forty million reads at 0.25 per million is 10 dollars; the storage is 25 dollars. Switching to provisioned capacity would save perhaps 15 dollars and cost you the ability to absorb a launch spike, which is a bad trade at this size. The threshold is discussed inon-demand versus provisioned.
Push notifications are effectively free
Fifteen million push notifications cost 7.50 dollars. This surprises people who have budgeted for messaging as a major line. Mobile push through the platform gateways is 0.50 per million, so even an aggressive notification strategy costs less than a single small instance. SMS is the opposite story, at roughly 0.0088 per message including carrier fees, so 15 million SMS would be 132,000 dollars. Keep everything on push.
Unit economics
At 1,558 dollars for 250,000 MAU, the backend costs 0.0062 dollars per monthly active user, or 0.0018 without managed auth. For a free app monetizing at even 0.10 dollars per MAU through ads, infrastructure is 6 percent of revenue. Price the stack from Terraform against theresource catalog and the per-MAU services show up as what they are: the part of the bill that grows with signups rather than with usage.
FAQ
How much does it cost to run a mobile app backend?
About 1,558 dollars a month on AWS for a serverless backend serving 250,000 monthly active users, 40 million API requests, 15 million push notifications, and 500 GB of user media behind a CDN. That is 0.0062 dollars per monthly active user. Managed authentication is 1,100 dollars of the total, and everything else combined is 458 dollars.
Why is Cognito so expensive for mobile apps?
Because it prices per monthly active user, at 0.0055 dollars above the 50,000 free tier, regardless of how much each user actually does. At 250,000 MAU that is 1,100 dollars a month, roughly ten times the combined cost of the Lambda, API Gateway, and DynamoDB serving the same users. The charge scales with signups rather than with load, which is a different curve from the rest of the stack.
Is serverless cheaper for a mobile backend?
Usually yes, because mobile traffic is spiky. Forty million Lambda invocations at 512 MB and 150 ms cost 58 dollars, and API Gateway adds 40 dollars. The equivalent on always-on containers sized for a 5x evening peak needs about four Fargate tasks plus a load balancer plus a NAT gateway, roughly 300 dollars. The gap narrows as traffic becomes steadier and volume grows.
What do push notifications cost?
Effectively nothing. Fifteen million mobile push notifications cost 7.50 dollars at 0.50 per million. Even a very aggressive notification strategy costs less than one small instance. SMS is a completely different economy at roughly 0.0088 per message including carrier fees, so the same 15 million messages sent as SMS would cost about 132,000 dollars.
How do I cut mobile backend costs?
Look at the per-MAU services first, since they are the largest and least usage-correlated lines. Beyond that, the wins are small: CDN egress at 204 dollars responds to image format and sizing work, log ingestion at 80 dollars responds to sampling, and the compute layer at around 100 dollars is already near the floor. Optimizing Lambda memory here saves single-digit dollars.
How does C3X help price a mobile backend?
C3X reads your Terraform and prices the whole backend against a live catalog: Lambda functions, API Gateway, DynamoDB tables, CDN distributions, storage buckets, and the identity resources. That makes per-user pricing models visible at design time rather than after a growth spurt, so you can see what a jump from 250,000 to 1 million monthly active users does to the bill before it happens.
What to do next
Price your mobile backend before the growth spurt. C3X reads your Terraform and prices your resources against a live catalog. Start with the quickstart.
Share this post
Try C3X on your own Terraform
Free and open source. No API key required. One command to install, one command to estimate.