We launched video streaming for a new project.
Infrastructure on AWS. Chose App Runner.
Videos cut off at 2 minutes. Reason: a limit you can’t work around.
Context:
Company’s entire infrastructure on AWS. EC2, RDS, S3.
New task: video streaming on demand. Webinar recordings, product demos.
Chose App Runner:
- Logical: already on AWS
- Fast: deploy in 10 minutes
- Simple: managed, autoscaling
First weeks - perfect. Short clips of 60-90 seconds worked fine.
Then we added longer videos. Webinar recordings of 10-15 minutes. That’s when it started.
The Problem
App Runner hard-cuts any connection at 120 seconds.
No warning. No configuration. Can’t change it even for money.
What broke:
- Videos cut off mid-stream
- Client demos had to be split into chunks
- Full webinar recordings - impossible
Workarounds like “split videos into 90-second chunks” work, but that’s a hack, not a solution.
Why It Matters
Technical limitation = business limitation.
- Feature announced to client → doesn’t work
- Product demo → can’t show in full
- Migration → week of team time
One parameter in documentation cost a week of time and explanations.
Alternatives Within AWS
Lambda (Function URL): 15-minute timeout. But cold starts kill streaming.
ECS Fargate: No timeout limits. But complex setup (IAM, load balancers, scaling, networking).
App Runner is about speed. ECS is about flexibility. For 120+ seconds, you need ECS or workarounds.
What About GCP?
Cloud Run: timeout up to 60 minutes.
Same model (container → URL → autoscaling), but 30x higher limit.
Streaming works out of the box.
Problem: different cloud provider.
- Separate billing, monitoring, IAM
- Team learns new platform
For one service, costs more than AWS workarounds. But if you have several such tasks - Cloud Run pays off.
Where App Runner Wins
Simple REST APIs, tasks under 30 seconds. Quick container deployment - ideal.
But if your roadmap includes:
- Video streaming
- Report generation >2 minutes
- WebSocket/SSE
- Long-polling
Check limits before writing code.
Real Takeaway
“We’re already on AWS” isn’t always an argument for choosing a service.
Each platform has its ceiling. App Runner, Cloud Run, Lambda, ECS - different limits.
Architecting with platform limits in mind prevents surprises. Most learn when it’s too late.
One technical detail can cost weeks of rework.
P.S. Documentation gets read either before choosing a platform or after a prod incident. The second is more expensive.