Compare serverless container platforms (Fargate, Container Apps, Cloud Run)
Last verified: May 2026
| Feature | AWS | Azure | GCP |
|---|---|---|---|
| Service | AWS Fargate | Azure Container Apps | Cloud Run |
| Pricing Model | Per vCPU-second + per GB memory-second | Per vCPU-second + per GB memory-second | Per vCPU-second + per GB memory-second + per request |
| Feature | AWS | Azure | GCP |
|---|---|---|---|
| Min vCPU | 0.25 vCPU | 0.25 vCPU | 0.08 vCPU (1/12th) |
| Max vCPU | 16 vCPU | 4 vCPU | 8 vCPU |
| Max Memory | 120 GB | 16 GB | 32 GB |
| Feature | AWS | Azure | GCP |
|---|---|---|---|
| Scale to Zero | No; minimum 1 task always running | Yes; scales to zero when idle | Yes; scales to zero when idle |
| Cold Start | Low; tasks pre-provisioned but no scale-to-zero | Moderate; seconds-range cold start from zero | Low to moderate; optimized with min instances setting |
| Concurrency Model | One request per task (sidecar pattern for multi-container) | Multiple concurrent requests per replica (configurable) | Up to 1000 concurrent requests per instance (configurable) |
| Feature | AWS | Azure | GCP |
|---|---|---|---|
| VPC Integration | Native; tasks run inside VPC subnets with ENI | Yes; VNet integration with private endpoints | Yes; Serverless VPC Access connector or Direct VPC egress |
| Custom Domains | Via ALB/API Gateway in front of Fargate service | Built-in custom domain and TLS certificate support | Built-in custom domain mapping with managed TLS |
| gRPC Support | Yes; via ALB gRPC target groups | Yes; native gRPC ingress support | Yes; native gRPC support with HTTP/2 |
| WebSocket Support | Yes; via ALB WebSocket support | Yes; native WebSocket support | Yes; supported with up to 1 hour session duration |
| Feature | AWS | Azure | GCP |
|---|---|---|---|
| Max Request Timeout | No per-request timeout; task runs until stopped | Configurable; up to unlimited for background processing | Up to 60 minutes (HTTP); up to 24 hours (jobs) |
| GPU Support | Yes; NVIDIA GPU instances via Fargate | Yes; GPU workload profiles in dedicated plans | Yes; NVIDIA L4 GPUs in preview |
| Volume Mounts | EFS volumes; ephemeral storage up to 200 GB | Azure Files and ephemeral storage volumes | In-memory volumes; Cloud Storage FUSE (second-gen) |
[
{
"feature": "Service",
"category": "Service Overview",
"aws": "AWS Fargate",
"azure": "Azure Container Apps",
"gcp": "Cloud Run"
},
{
"feature": "Pricing Model",
"category": "Service Overview",
"aws": "Per vCPU-second + per GB memory-second",
"azure": "Per vCPU-second + per GB memory-second",
"gcp": "Per vCPU-second + per GB memory-second + per request"
},
{
"feature": "Min vCPU",
"category": "Resource Limits",
"aws": "0.25 vCPU",
"azure": "0.25 vCPU",
"gcp": "0.08 vCPU (1/12th)"
},
{
"feature": "Max vCPU",
"category": "Resource Limits",
"aws": "16 vCPU",
"azure": "4 vCPU",
"gcp": "8 vCPU"
},
{
"feature": "Max Memory",
"category": "Resource Limits",
"aws": "120 GB",
"azure": "16 GB",
"gcp": "32 GB"
},
{
"feature": "Scale to Zero",
"category": "Scaling",
"aws": "No; minimum 1 task always running",
"azure": "Yes; scales to zero when idle",
"gcp": "Yes; scales to zero when idle"
},
{
"feature": "Cold Start",
"category": "Scaling",
"aws": "Low; tasks pre-provisioned but no scale-to-zero",
"azure": "Moderate; seconds-range cold start from zero",
"gcp": "Low to moderate; optimized with min instances setting"
},
{
"feature": "Concurrency Model",
"category": "Scaling",
"aws": "One request per task (sidecar pattern for multi-container)",
"azure": "Multiple concurrent requests per replica (configurable)",
"gcp": "Up to 1000 concurrent requests per instance (configurable)"
},
{
"feature": "VPC Integration",
"category": "Networking",
"aws": "Native; tasks run inside VPC subnets with ENI",
"azure": "Yes; VNet integration with private endpoints",
"gcp": "Yes; Serverless VPC Access connector or Direct VPC egress"
},
{
"feature": "Custom Domains",
"category": "Networking",
"aws": "Via ALB/API Gateway in front of Fargate service",
"azure": "Built-in custom domain and TLS certificate support",
"gcp": "Built-in custom domain mapping with managed TLS"
},
{
"feature": "gRPC Support",
"category": "Networking",
"aws": "Yes; via ALB gRPC target groups",
"azure": "Yes; native gRPC ingress support",
"gcp": "Yes; native gRPC support with HTTP/2"
},
{
"feature": "WebSocket Support",
"category": "Networking",
"aws": "Yes; via ALB WebSocket support",
"azure": "Yes; native WebSocket support",
"gcp": "Yes; supported with up to 1 hour session duration"
},
{
"feature": "Max Request Timeout",
"category": "Runtime",
"aws": "No per-request timeout; task runs until stopped",
"azure": "Configurable; up to unlimited for background processing",
"gcp": "Up to 60 minutes (HTTP); up to 24 hours (jobs)"
},
{
"feature": "GPU Support",
"category": "Runtime",
"aws": "Yes; NVIDIA GPU instances via Fargate",
"azure": "Yes; GPU workload profiles in dedicated plans",
"gcp": "Yes; NVIDIA L4 GPUs in preview"
},
{
"feature": "Volume Mounts",
"category": "Runtime",
"aws": "EFS volumes; ephemeral storage up to 200 GB",
"azure": "Azure Files and ephemeral storage volumes",
"gcp": "In-memory volumes; Cloud Storage FUSE (second-gen)"
}
]The Multi-Cloud Serverless Container Compare tool compares serverless container platforms across AWS (Fargate), Azure (Container Apps), and GCP (Cloud Run). These platforms run containers without managing underlying infrastructure, but differ significantly in pricing models, scaling behavior, cold start characteristics, and feature sets. The tool provides a structured comparison to help you choose the right platform.
Your team has a webhook receiver currently running on a 24/7 ECS Fargate task ($120/month). Traffic is bursty: 50 webhooks/hour average, 5,000/hour peak. The compare tool runs the workload through each platform: Cloud Run with min instances=0 = $4/month + cold start latency on first webhook (acceptable since webhooks have retry); Container Apps Consumption = $8/month, similar profile. You migrate to Cloud Run, save $116/month, and get scale-to-zero behavior the same code achieves automatically.
Cloud Run's request-based billing (CPU only allocated during request handling) is uniquely cheap for I/O-bound workloads. A typical web service with 50ms response times and concurrency=80 might pay $5/month vs $200+/month for the equivalent always-on Fargate task. The catch: cold starts on first request after idle.
Container Apps and Cloud Run both scale-to-zero, but the warmup cold start behavior is different. Cloud Run's cold start is sub-second for most images. Container Apps is closer to 5-10 seconds. For latency-sensitive scale-to-zero workloads, Cloud Run is the safer pick.
Fargate is the right choice when you need ECS-native features (service discovery via Cloud Map, App Mesh integration, EFS volumes) or when you're already heavily invested in the AWS ECS ecosystem. For greenfield serverless containers, Cloud Run almost always wins on simplicity and cost.
The compare tool normalizes serverless container platform features into 20+ dimensions: pricing model (per-request, per-replica-second, per-task-second), scale-to-zero, max instances/replicas, max concurrency per instance, supported protocols (HTTP, gRPC, WebSocket), max request duration, max instance memory/CPU, GPU support, VPC/VNet integration, secrets management, traffic splitting, and cold start latency. Output presents side-by-side tables with notes on which features are gated behind pricier tiers.
Was this tool helpful?
Disclaimer: This tool runs entirely in your browser. No data is sent to our servers. Always verify outputs before using them in production. AWS, Azure, and GCP are trademarks of their respective owners.