Serverless computing promises you only pay for what you use. But the reality is far more complicated. Between request fees, compute charges, memory costs, egress pricing, and hidden surcharges like API Gateway, the final bill can shock you.
In this comprehensive 2026 pricing comparison, we break down the real cost of running serverless workloads across seven major platforms. We calculate actual monthly bills at different traffic levels so you can make an informed decision.
The Platforms at a Glance
| Platform | Model | Scale to Zero | Container Support | EU Region |
|---|---|---|---|---|
| AWS Lambda | Function-as-a-Service | Yes | Container images | Frankfurt |
| Google Cloud Run | Container-as-a-Service | Yes | Any container | Multiple EU |
| Azure Container Apps | Container-as-a-Service | Yes | Any container | Multiple EU |
| Fly.io | Micro-VM | Yes (auto-stop) | Any container | Amsterdam, Paris |
| Railway | Usage-based containers | Partial | Any container | US only |
| Render | Always-on services | No (free tier spins down) | Docker | Frankfurt |
| DanubeData Rapids | Container-as-a-Service | Yes | Any container / Git / ZIP | Germany |
Unit Pricing Breakdown
Let's start with the raw unit prices. These are the building blocks that determine your final bill.
Compute Pricing (per vCPU-second)
| Platform | Per vCPU-second | Per vCPU-hour | Notes |
|---|---|---|---|
| AWS Lambda | $0.0000166667 (per GB-s)* | $0.0600 | *Priced per GB-second, not vCPU-second |
| Google Cloud Run | $0.00002400 | $0.0864 | Tier 1 regions |
| Azure Container Apps | $0.000024 | $0.0864 | Active usage rate |
| Fly.io | $0.0000120 | $0.0431 | Performance-1x (always running) |
| Railway | $0.0000077 | $0.0278 | + $5/mo platform fee |
| Render | Fixed pricing | $7-25/mo per service | Always-on, not per-second |
| DanubeData Rapids | EUR 0.000012 | EUR 0.0432 | 100ms minimum billing |
Memory Pricing (per GiB-second)
| Platform | Per GiB-second | Per GiB-hour |
|---|---|---|
| AWS Lambda | Included in GB-s rate* | $0.0600 |
| Google Cloud Run | $0.0000025 | $0.0090 |
| Azure Container Apps | $0.000003 | $0.0108 |
| Fly.io | ~$0.0000019 | ~$0.0069 |
| Railway | $0.0000039 | $0.0139 |
| Render | Included in service tier | Fixed |
| DanubeData Rapids | EUR 0.000002 | EUR 0.0072 |
Note on AWS Lambda Pricing:
Lambda uses a unique "GB-second" model where memory and compute are bundled together. You choose a memory allocation (128 MB to 10 GB), and CPU power scales proportionally. A 1 GB Lambda function running for 1 second costs $0.0000166667. This makes direct vCPU-to-vCPU comparison tricky—Lambda effectively charges for a combined compute-memory unit.
Request Pricing (per million requests)
| Platform | Per Million Requests | Notes |
|---|---|---|
| AWS Lambda | $0.20 | + API Gateway: $1.00-3.50/M |
| Google Cloud Run | $0.40 | No additional gateway fee |
| Azure Container Apps | $0.00 | No per-request charge |
| Fly.io | $0.00 | No per-request charge |
| Railway | $0.00 | No per-request charge |
| Render | $0.00 | Fixed monthly pricing |
| DanubeData Rapids | EUR 0.12 | No additional gateway fee |
AWS Lambda's Hidden API Gateway Tax:
Lambda functions cannot receive HTTP requests on their own. You must use API Gateway, which adds $1.00 per million requests (HTTP API) or $3.50 per million (REST API) on top of Lambda's own $0.20/M charge. At 10M requests/month, that's an extra $10-35 just for the gateway. Every other platform on this list includes HTTP routing at no additional cost.
Egress Pricing (per GB outbound)
| Platform | Per GB Egress | Free Egress |
|---|---|---|
| AWS Lambda | $0.09 | 100 GB/mo (free tier) |
| Google Cloud Run | $0.12 (first 1 TB) | 1 GB/mo free |
| Azure Container Apps | $0.087 (first 5 GB free) | 5 GB/mo free |
| Fly.io | Included (varies by region) | Generous allowance |
| Railway | $0.05 | Included in usage |
| Render | $0.10 | 100 GB/mo free |
| DanubeData Rapids | EUR 0.09 | 5 GB/mo free |
Free Tier Comparison
Free tiers can make a huge difference for small projects and MVPs. Here is what each platform offers at no cost:
| Platform | Free Requests | Free Compute | Free Memory | Permanent? |
|---|---|---|---|---|
| AWS Lambda | 1M/mo | 400K GB-s/mo | Included | Yes |
| Google Cloud Run | 2M/mo | 180K vCPU-s/mo | 360K GiB-s/mo | Yes |
| Azure Container Apps | 2M/mo | 180K vCPU-s/mo | 360K GiB-s/mo | Yes |
| Fly.io | N/A | 3 shared VMs | 256 MB each | Legacy plans only |
| Railway | N/A | $5 credit/mo | Included in credit | Requires $5/mo sub |
| Render | N/A | 750 hours/mo | 512 MB | Yes (limited) |
| DanubeData Rapids | 2M/mo | 250K vCPU-s/mo | 500K GiB-s/mo | Yes |
DanubeData Free Tier Advantage:
DanubeData Rapids offers the most generous permanent free tier for compute: 250,000 vCPU-seconds (39% more than Cloud Run/Azure) and 500,000 GiB-seconds (39% more than Cloud Run/Azure), plus 2 million free requests and 5 GB free egress. That is enough to run a small API serving ~2M requests/month with 125ms average response time at zero cost.
Real-World Cost Scenarios
Raw unit prices don't tell the full story. Let's calculate total monthly costs for realistic workloads. We assume:
- Function profile: 0.25 vCPU, 512 MB memory per invocation
- Average execution time: 200ms per request
- Average response size: 5 KB (egress per request)
- Free tiers applied where available
- AWS Lambda includes API Gateway (HTTP API at $1.00/M requests)
Scenario 1: Hobby Project — 10,000 Requests/Month
| Platform | Compute | Requests | Egress | Total/Month |
|---|---|---|---|---|
| AWS Lambda + API GW | $0.00 | $0.00 | $0.00 | $0.00 |
| Google Cloud Run | $0.00 | $0.00 | $0.00 | $0.00 |
| Azure Container Apps | $0.00 | $0.00 | $0.00 | $0.00 |
| Fly.io | $2.02 | $0.00 | $0.00 | $2.02 |
| Railway | ~$0.50 | $0.00 | ~$0.00 | $5.00 (min plan) |
| Render | $0.00 | $0.00 | $0.00 | $0.00 (free tier) |
| DanubeData Rapids | EUR 0.00 | EUR 0.00 | EUR 0.00 | EUR 0.00 |
Verdict: At 10K requests/month, most platforms are free. Railway's $5/mo minimum stands out as the only cost. Fly.io charges a small fee since it runs VMs continuously.
Scenario 2: Side Project — 100,000 Requests/Month
| Platform | Compute | Requests | Egress | Total/Month |
|---|---|---|---|---|
| AWS Lambda + API GW | $0.00 | $0.00 | $0.00 | $0.00 |
| Google Cloud Run | $0.00 | $0.00 | $0.00 | $0.00 |
| Azure Container Apps | $0.00 | $0.00 | $0.00 | $0.00 |
| Fly.io | $2.02 | $0.00 | $0.00 | $2.02 |
| Railway | ~$1.20 | $0.00 | ~$0.03 | $5.00 (min plan) |
| Render | $0.00 | $0.00 | $0.00 | $0.00 (free tier) |
| DanubeData Rapids | EUR 0.00 | EUR 0.00 | EUR 0.00 | EUR 0.00 |
Verdict: Still within free tiers for most platforms. This is where free-tier-only platforms shine—100K requests costs nothing on AWS Lambda, Cloud Run, Azure, Render, or DanubeData.
Scenario 3: Growing API — 500,000 Requests/Month
| Platform | Compute | Requests | Egress | Total/Month |
|---|---|---|---|---|
| AWS Lambda + API GW | $0.00 | $0.00 | $0.00 | $0.00 |
| Google Cloud Run | $0.00 | $0.00 | $0.14 | $0.14 |
| Azure Container Apps | $0.00 | $0.00 | $0.00 | $0.00 |
| Fly.io | $2.02 | $0.00 | $0.00 | $2.02 |
| Railway | ~$3.50 | $0.00 | ~$0.13 | $5.00 (min plan) |
| Render | $7.00 | $0.00 | $0.00 | $7.00 |
| DanubeData Rapids | EUR 0.00 | EUR 0.00 | EUR 0.00 | EUR 0.00 |
Verdict: At 500K requests, most pay-per-use platforms remain within free tier. Render requires upgrading to its $7/mo Starter tier. DanubeData's free tier still covers this workload comfortably.
Scenario 4: Production API — 1 Million Requests/Month
This is where things get interesting. We are beyond some free tiers and costs start to diverge.
| Platform | Compute | Requests | Egress | Total/Month |
|---|---|---|---|---|
| AWS Lambda + API GW | $0.00 | $0.00 | $0.00 | $0.00 |
| Google Cloud Run | $0.00 | $0.00 | $0.47 | $0.47 |
| Azure Container Apps | $0.00 | $0.00 | $0.35 | $0.35 |
| Fly.io | $2.02 | $0.00 | $0.00 | $2.02 |
| Railway | ~$5.80 | $0.00 | ~$0.25 | $6.05 |
| Render | $7.00 | $0.00 | $0.00 | $7.00 |
| DanubeData Rapids | EUR 0.00 | EUR 0.00 | EUR 0.00 | EUR 0.00 |
Verdict: At 1M requests/month, DanubeData and AWS Lambda remain free (within free tier). Cloud Run and Azure have minimal egress charges. The gap between platforms is still small at this scale.
Scenario 5: Scaling Startup — 5 Million Requests/Month
This is the scale where cost differences become material. Free tiers are exhausted, and billing models reveal their true nature.
| Platform | Compute | Requests | Egress | Total/Month |
|---|---|---|---|---|
| AWS Lambda + API GW | $2.89 | $4.80 | $1.98 | $9.67 |
| Google Cloud Run | $2.64 | $1.20 | $2.76 | $6.60 |
| Azure Container Apps | $2.88 | $0.00 | $2.03 | $4.91 |
| Fly.io | $2.02 | $0.00 | $0.00 | $2.02 |
| Railway | ~$14.50 | $0.00 | ~$1.25 | $15.75 |
| Render | $7.00 | $0.00 | $0.00 | $7.00 |
| DanubeData Rapids | EUR 1.44 | EUR 0.36 | EUR 1.70 | EUR 3.50 |
How We Calculated (5M requests example):
DanubeData Rapids: 5M requests x 0.2s each = 1M vCPU-seconds total (0.25 vCPU x 0.2s x 5M). After 250K free = 750K billable at EUR 0.000012 = EUR 0.96 for CPU. Memory: 5M x 0.5 GiB x 0.2s = 500K GiB-s, free tier covers all 500K. Requests: (5M - 2M free) = 3M at EUR 0.12/M = EUR 0.36. Egress: 5M x 5KB = 25 GB, minus 5 GB free = 20 GB at EUR 0.09 = EUR 1.80. Total: ~EUR 3.50.
Verdict: At 5M requests/month, platform choice starts mattering. DanubeData Rapids (EUR 3.50) and Fly.io ($2.02) are the cheapest. AWS Lambda's API Gateway surcharge pushes it to nearly $10. Railway's always-on compute model becomes expensive.
Scenario 6: Production Service — 10 Million Requests/Month
At serious production scale, the cost picture becomes very clear.
| Platform | Compute | Requests | Egress | Total/Month |
|---|---|---|---|---|
| AWS Lambda + API GW | $6.44 | $10.80 | $4.05 | $21.29 |
| Google Cloud Run | $7.44 | $3.20 | $5.76 | $16.40 |
| Azure Container Apps | $8.16 | $0.00 | $4.17 | $12.33 |
| Fly.io | $4.04 | $0.00 | $0.00 | $4.04 |
| Railway | ~$24.50 | $0.00 | ~$2.50 | $27.00 |
| Render | $25.00 | $0.00 | $0.00 | $25.00 |
| DanubeData Rapids | EUR 4.56 | EUR 0.96 | EUR 4.05 | EUR 9.57 |
Verdict: At 10M requests/month, the spread is dramatic. DanubeData Rapids at EUR 9.57 (~$10.50) and Fly.io at $4.04 lead the pack. AWS Lambda costs more than double DanubeData due to API Gateway fees. Railway and Render are the most expensive because their always-on compute models can't optimize for bursty traffic.
Complete Monthly Cost Summary
Here is every scenario in one table for easy comparison:
| Platform | 10K | 100K | 500K | 1M | 5M | 10M |
|---|---|---|---|---|---|---|
| AWS Lambda + API GW | $0.00 | $0.00 | $0.00 | $0.00 | $9.67 | $21.29 |
| Google Cloud Run | $0.00 | $0.00 | $0.14 | $0.47 | $6.60 | $16.40 |
| Azure Container Apps | $0.00 | $0.00 | $0.00 | $0.35 | $4.91 | $12.33 |
| Fly.io | $2.02 | $2.02 | $2.02 | $2.02 | $2.02 | $4.04 |
| Railway | $5.00 | $5.00 | $5.00 | $6.05 | $15.75 | $27.00 |
| Render | $0.00 | $0.00 | $7.00 | $7.00 | $7.00 | $25.00 |
| DanubeData Rapids | EUR 0.00 | EUR 0.00 | EUR 0.00 | EUR 0.00 | EUR 3.50 | EUR 9.57 |
The Hidden Costs Nobody Talks About
The unit prices above only tell part of the story. Here are the hidden costs that can double or triple your serverless bill.
1. AWS API Gateway — The Mandatory Surcharge
AWS Lambda cannot receive HTTP requests directly. You must use API Gateway, which adds:
- HTTP API: $1.00 per million requests
- REST API: $3.50 per million requests
- WebSocket API: $1.00 per million messages + $0.25/M connection minutes
At 10M requests/month with HTTP API, that's an extra $10/month on top of Lambda compute costs. With REST API, it's $35/month. No other platform on this list requires a separate, paid gateway service for HTTP traffic.
2. Google Cloud Run — Egress and Minimum Instance Charges
Cloud Run charges $0.12/GB for egress in most regions. If your API returns JSON responses averaging 10 KB each, 10M requests generate 100 GB of egress = $12/month in transfer fees alone.
Additionally, if you enable "minimum instances" to eliminate cold starts, those instances bill at the full compute rate even when idle. One minimum instance with 1 vCPU running 24/7 costs approximately $62/month.
3. Azure Container Apps — Idle Charges Add Up
Azure bills at a reduced "idle" rate when containers aren't processing requests. But idle containers still cost money. If your container stays warm between requests, you pay the idle rate continuously, which can exceed the active usage cost for low-traffic services.
4. Cold Start Costs — The Hidden Performance Tax
Cold starts don't appear on your bill directly, but they cost you in user experience:
| Platform | Typical Cold Start | Mitigation | Cost of Mitigation |
|---|---|---|---|
| AWS Lambda | 100-500ms | Provisioned Concurrency | $0.0000041667/GB-s |
| Google Cloud Run | 500ms-2s | Minimum instances | ~$62/mo per instance |
| Azure Container Apps | 500ms-3s | Minimum replicas | Idle billing rate |
| Fly.io | 1-3s (VM start) | Keep VM running | $2.02/mo minimum |
| DanubeData Rapids | 200-500ms | Knative warm pools | Included |
5. Vendor Lock-In — The Invisible Cost
AWS Lambda functions use proprietary event formats, IAM roles, and trigger integrations. Migrating a Lambda-based architecture to another platform means rewriting every function handler, event mapping, and IAM policy. Cloud Run and DanubeData Rapids use standard containers—your Docker image runs anywhere.
DanubeData Rapids Resource Profiles
For predictable workloads, DanubeData Rapids offers fixed-price resource profiles that can be even more economical than pay-per-use:
| Profile | vCPU | Memory | Monthly Price | Effective Cost/vCPU-hour |
|---|---|---|---|---|
| Micro | 0.25 | 256 MB | EUR 5/mo | EUR 0.0274 |
| Small | 0.5 | 512 MB | EUR 10/mo | EUR 0.0274 |
| Medium | 1 | 1 GB | EUR 20/mo | EUR 0.0274 |
| Large | 2 | 2 GB | EUR 40/mo | EUR 0.0274 |
Resource profiles include scale-to-zero, automatic HTTPS, custom domains, and Git-based deployments. They are ideal when you know your resource needs and want predictable billing without per-request surprises.
When to Choose Each Platform
| Use Case | Best Choice | Why |
|---|---|---|
| Existing AWS ecosystem | AWS Lambda | Native integration with S3, DynamoDB, SQS, EventBridge |
| GCP-native, BigQuery pipelines | Google Cloud Run | Best GCP integration, good free tier |
| Azure/Microsoft shop | Azure Container Apps | Azure AD, Event Grid, no request fees |
| Global edge deployment | Fly.io | 30+ regions, cheap always-on VMs |
| Simple deploy from GitHub | Railway or Render | Git push to deploy, minimal config |
| EU data residency + cost | DanubeData Rapids | GDPR compliant, European infra, lowest at-scale cost |
| Startup MVP, EU market | DanubeData Rapids | Generous free tier, EUR pricing, full platform |
| Cost-sensitive production | DanubeData Rapids | Pay-per-use + profiles, no gateway tax, no lock-in |
European Data Residency Matters
If you serve European customers, data residency is not just a compliance checkbox—it is a competitive advantage. GDPR enforcement actions totaled over EUR 4 billion in fines since 2018, and the trend is accelerating.
DanubeData Rapids runs exclusively on German infrastructure:
- Data never leaves the EU
- No US CLOUD Act exposure
- No need for Standard Contractual Clauses (SCCs)
- Sub-20ms latency across Western and Central Europe
- Simplified DPA (Data Processing Agreement)
While AWS, GCP, and Azure offer EU regions, their parent companies are US-headquartered and subject to US data access laws. For regulated industries (healthcare, finance, government), a European-only provider eliminates an entire category of compliance risk.
Migration Is Straightforward
If you are using containers, migrating between most of these platforms is straightforward. DanubeData Rapids supports three deployment methods:
1. Docker Image
# Push your existing image to any registry
docker push registry.example.com/my-api:latest
# Configure in DanubeData dashboard or API
# Your container starts serving traffic in seconds
2. Git Repository
# Connect your GitHub/GitLab repo
# DanubeData auto-detects your Dockerfile or uses buildpacks
# Every push triggers automatic deployment
3. ZIP Upload
# Upload your application code
# Buildpacks detect the runtime (Node.js, Python, Go, etc.)
# Zero Docker knowledge required
No proprietary event formats. No custom handler signatures. No IAM policies to rewrite. If your app runs in a Docker container, it runs on DanubeData Rapids.
Frequently Asked Questions
Which serverless platform is cheapest for low traffic?
At under 1M requests/month, AWS Lambda, Google Cloud Run, Azure Container Apps, and DanubeData Rapids are all effectively free. DanubeData offers the most generous free compute allowance (250K vCPU-seconds vs 180K on Cloud Run/Azure).
Which serverless platform is cheapest at scale?
At 10M+ requests/month, DanubeData Rapids and Fly.io are the most cost-effective. DanubeData offers true scale-to-zero (no idle charges) with the lowest combined compute + request + egress cost in Europe. Fly.io is cheaper if egress is included in your region but lacks a European-first focus.
Is AWS Lambda expensive?
Lambda's compute pricing is competitive, but the mandatory API Gateway adds $1-3.50 per million requests. At 10M requests/month, API Gateway alone costs $10-35—often more than the Lambda compute itself. Factor in egress at $0.09/GB and Lambda becomes one of the more expensive options at scale.
What about cold starts?
All scale-to-zero platforms have cold starts. AWS Lambda is fastest (100-500ms), DanubeData Rapids and Cloud Run are moderate (200ms-2s), and Fly.io is slowest (1-3s for VM boot). If cold starts are unacceptable, DanubeData's resource profiles keep containers warm at a fixed monthly cost.
Can I run any language on DanubeData Rapids?
Yes. DanubeData Rapids supports any language that runs in a Docker container: Node.js, Python, Go, Rust, Java, PHP, Ruby, .NET, and more. You can bring your own Dockerfile or use Cloud Native Buildpacks for automatic detection.
Conclusion: The Best Serverless Value in 2026
The serverless landscape in 2026 offers genuine choices. For most European startups and SMBs, the decision comes down to:
- Already on AWS/GCP/Azure? Their native serverless offerings integrate best with your existing stack, but watch for API Gateway and egress fees.
- Want the simplest deploy experience? Railway and Render offer frictionless GitHub deployment but become expensive at scale.
- Need global edge? Fly.io's distributed VM model is hard to beat for latency.
- Want the best value with EU data residency? DanubeData Rapids offers the most generous free tier, the lowest at-scale pricing, and zero hidden gateway fees—all on European infrastructure.
Ready to deploy your first serverless container?
Create your free DanubeData account and deploy in under 60 seconds. Your first 2 million requests every month are on us.
Or view our complete pricing to calculate your exact costs.
Have questions about migrating your serverless workloads? Contact our team for a free architecture review.