The False Binary
According to Datadog's 2025 State of Serverless Report, 76% of organisations that use serverless also run containers, and 68% of organisations that use Kubernetes also deploy serverless functions. The question is not which to use — it is which to use for what.
When to Use Serverless
- Event-driven processing — S3 uploads, SQS messages, DynamoDB streams. At 10,000 images/day, thumbnail generation costs ~EUR 5/month on Lambda vs ~EUR 70/month for a container.
- Spiky, unpredictable traffic — Lambda scales to thousands of concurrent instances in seconds.
- Low-traffic APIs — Under 1 million requests/day, Lambda is significantly cheaper than running a container 24/7.
- Scheduled tasks — EventBridge + Lambda eliminates the need for cron servers.
When to Use Containers
- Sustained, predictable workloads — At sustained load, containers on reserved capacity are 3-5x cheaper.
- Long-running processes — Lambda has a 15-minute timeout. Containers have no limit.
- Stateful applications — WebSocket connections, in-memory caches.
- Complex networking — Service mesh, custom networking policies.
- GPU workloads — Kubernetes supports GPU scheduling natively.
Cost Comparison: 2M Requests/Day
| Option | Configuration | Monthly Cost |
|---|---|---|
| AWS Lambda | 512MB, 250ms avg, 60M requests/month | ~EUR 480 |
| ECS Fargate | 2 tasks x 1vCPU/2GB | ~EUR 140 |
| ECS Fargate Spot | 2 tasks x 1vCPU/2GB | ~EUR 95 |
| EKS with Karpenter | t3.medium Spot, auto-scaled | ~EUR 147 (incl. control plane) |
The cost crossover: Lambda becomes more expensive at approximately 1-3 million requests per day. But factor in operational cost of managing containers vs Lambda's zero-ops model.
The Hybrid Architecture
The most effective architectures combine both: Lambda for authentication, webhooks, event processing, and async workers. Containers for core APIs with sustained traffic, complex business logic, and database connection pooling.
The Cloud Run Middle Ground
Google Cloud Run and AWS App Runner package applications as containers but deploy with serverless scaling (including scale-to-zero). Container portability plus serverless operations.
Decision Checklist
- Execution over 15 minutes? Containers.
- Spiky/unpredictable traffic? Serverless.
- Under 1M requests/day? Serverless is cheaper.
- No Kubernetes experience? Serverless or managed containers.
- p99 latency SLAs? Containers (or provisioned concurrency).
- Persistent connections or WebSockets? Containers.
Our cloud architecture team can assess your workloads and recommend the optimal compute mix. Reach out for a free architecture consultation.