Google Cloud Run vs AWS Fargate vs Azure Container Apps: Real Container Hosting Cost for 100 Million API Requests in 2026
Prices checked: October 2, 2026.
Short answer
For an API serving 100 million requests a month (200 ms average latency, 1 vCPU / 2 GiB containers, about 4 concurrent requests per container):
| Platform | Monthly cost | What drives it |
|---|---|---|
| AWS Fargate (ARM) + ALB | ~$111 | 3 always-on tasks + load balancer |
| AWS Fargate (x86) + ALB | ~$133 | Same, on x86 |
| Cloud Run, instance-based billing | ~$168 | 3 always-on instances, no per-request fee |
| Cloud Run, request-based billing | ~$179 | Busy time + $0.40 per million requests |
| Azure Container Apps (Consumption) | ~$184 | Busy time + $0.40 per million requests |
All figures are ILLUSTRATIVE and built from OFFICIAL unit prices.
At steady traffic, always-on Fargate wins and per-request serverless loses: the $0.40-per-million request fee alone adds $39.20 on both Cloud Run and Container Apps. Serverless wins once traffic is spiky enough that always-on capacity sits idle.
Native billing units
| Platform | Compute | Memory | Requests | Minimum / granularity | Label |
|---|---|---|---|---|---|
| Cloud Run (request-based, Tier 1) | $0.000024 per vCPU-second (active) | $0.0000025 per GiB-second | $0.40 per million | Rounded up to 100 ms | OFFICIAL |
| Cloud Run (instance-based, Tier 1) | $0.000018 per vCPU-second | $0.000002 per GiB-second | No request fee | Billed for the instance's whole lifetime | OFFICIAL |
| AWS Fargate Linux/x86 (us-east-1) | $0.000011244 per vCPU-second (~$0.0405/hr) | $0.000001235 per GB-second (~$0.0044/hr) | None | Per second, 1-minute minimum | OFFICIAL |
| AWS Fargate Linux/ARM (us-east-1) | $0.0000089944 per vCPU-second (~$0.0324/hr) | $0.0000009889 per GB-second (~$0.0036/hr) | None | Per second, 1-minute minimum | OFFICIAL |
| AWS Application Load Balancer | $0.0225 per ALB-hour + $0.008 per LCU-hour | — | Covered by LCUs | Hourly | OFFICIAL |
| Azure Container Apps (Consumption, East US) | $0.000024 per vCPU-second active; $0.000003 idle | $0.000003 per GiB-second (active and idle) | $0.40 per million | Per second | OFFICIAL |
Free monthly grants:
- Cloud Run request-based: 180,000 vCPU-seconds, 360,000 GiB-seconds, 2M requests
- Cloud Run instance-based: 240,000 vCPU-seconds, 450,000 GiB-seconds
- Container Apps: 180,000 vCPU-seconds, 360,000 GiB-seconds, 2M requests per subscription
Fargate has no ongoing free grant. New AWS accounts get 750 ALB-hours and 15 LCUs a month under the free tier, which isn't counted below.
The workload (ILLUSTRATIVE)
- Traffic: 100,000,000 requests/month, about 38.6 requests/second on average
- Latency: 200 ms per request
- Container size: 1 vCPU, 2 GiB
- Concurrency: about 4 requests in flight per container
- Billable busy time: 100M × 0.2 s ÷ 4 = 5,000,000 instance-seconds, about 1.9 containers busy on average
- Always-on options: 3 containers for headroom (730 hours)
- Response size: 10 KB, about 1 TB out per month (egress is priced separately below)
Cost breakdown
Cloud Run, request-based
| Item | Calculation | Cost |
|---|---|---|
| CPU | (5,000,000 − 180,000) × $0.000024 | $115.68 |
| Memory | (10,000,000 − 360,000) GiB-s × $0.0000025 | $24.10 |
| Requests | (100M − 2M) ÷ 1M × $0.40 | $39.20 |
| Total | $178.98 |
Cloud Run, instance-based (3 instances always on)
| Item | Calculation | Cost |
|---|---|---|
| CPU | (7,884,000 − 240,000) vCPU-s × $0.000018 | $137.59 |
| Memory | (15,768,000 − 450,000) GiB-s × $0.000002 | $30.64 |
| Total | $168.23 |
Azure Container Apps, Consumption
| Item | Calculation | Cost |
|---|---|---|
| CPU (active) | (5,000,000 − 180,000) × $0.000024 | $115.68 |
| Memory | (10,000,000 − 360,000) × $0.000003 | $28.92 |
| Requests | 98M ÷ 1M × $0.40 | $39.20 |
| Total | $183.80 |
Memory costs 20% more per GiB-second than on Cloud Run ($0.000003 vs $0.0000025). That's the only difference from Cloud Run request-based here.
AWS Fargate (3 tasks, 730 hours) + ALB
| Item | x86 | ARM |
|---|---|---|
| 3 tasks × 730 h × (1 vCPU + 2 GB) | $108.12 | $86.51 |
| ALB hours (730 × $0.0225) | $16.43 | $16.43 |
| ALB LCUs (~1.37 LCU from 1 TB processed × 730 × $0.008) | $8.00 | $8.00 |
| Total | $132.55 | $110.93 |
Where the cost catches you
- Per-request fees are fixed. On Cloud Run request-based and Container Apps, $39.20 of every 100M requests is the request fee, whatever your code does. Cutting latency doesn't reduce it.
- Concurrency is the biggest lever on serverless. At concurrency 1 instead of 4, busy time quadruples to 20M instance-seconds. Cloud Run request-based then rises to about $614 and Container Apps to about $634.
- Always-on means paying for idle. Fargate's three tasks cost the same at 10M requests as at 100M. Below roughly 63M requests a month (vs. Fargate ARM) or 75M (vs. x86) with this profile, Cloud Run request-based becomes cheaper.
- Fargate needs a load balancer. The ALB's $16.43 hourly floor applies even when traffic is zero.
- Container Apps minimum replicas. Setting a minimum replica count above zero adds idle charges ($0.000003 per vCPU-second and per GiB-second) around the clock.
- Container Apps private endpoints and planned maintenance carry a management charge on both Consumption and Dedicated plans. Azure's price list currently shows $0.10/hour for these meters.
- Egress isn't included. All three charge standard internet egress on the ~1 TB of responses. At this volume, egress can rival the compute bill. Check your region's rates.
Which one fits
- Steady, predictable traffic: Fargate on ARM, the cheapest here, or Cloud Run instance-based if you want to stay off load balancers.
- Spiky or low-average traffic: Cloud Run request-based. You pay nothing when idle, and its memory rate is the lowest of the per-request options.
- Already in Azure with Dapr/KEDA needs: Container Apps. It's about $5 a month more than Cloud Run for this profile.
- Very high concurrency per container (I/O-bound APIs): request-based serverless gets cheaper fast, because CPU-seconds shrink while the request fee stays fixed.
Assumptions
- Tier 1 Google Cloud regions, AWS us-east-1, Azure East US; pay-as-you-go list prices
- Excludes egress, logging, container registry, NAT gateways and taxes
- No savings plans or committed-use discounts
Pricing sources
- Cloud Run pricing: https://cloud.google.com/run/pricing
- AWS Fargate pricing: https://aws.amazon.com/fargate/pricing/
- AWS Elastic Load Balancing pricing: https://aws.amazon.com/elasticloadbalancing/pricing/
- Azure Container Apps pricing: https://azure.microsoft.com/en-us/pricing/details/container-apps/
- Azure Container Apps billing rules: https://learn.microsoft.com/en-us/azure/container-apps/billing
- Azure Retail Prices API (Container Apps, East US): https://prices.azure.com/api/retail/prices