⚡
AWS Compute
App Runner
Deploy containerized or source-based web apps directly from code or images
AWS App Runner is a fully managed service for deploying containerized web applications and APIs directly from source code or container images - without configuring load balancers, Auto Scaling groups, VPCs, or clusters. It is designed for teams who want to ship fast without deep AWS infrastructure knowledge.
How App Runner Works
App Runner abstracts the entire deployment stack. You point it at a source and it handles everything else:
- 1Source: container image from ECR, or source code in GitHub/Bitbucket. For source code, App Runner builds using a managed runtime (Node.js, Python, Java, .NET, PHP, Ruby, Go).
- 2Build (source only): App Runner runs your build commands in a managed build environment and produces a container image.
- 3Deploy: App Runner provisions Fargate-powered containers, fronts them with a load balancer, and assigns an HTTPS URL (automatically provisioned TLS).
- 4Scale: traffic-based automatic scaling. Scale to zero (no traffic = no cost) or set a minimum instance count to avoid cold starts.
- 5Observe: built-in CloudWatch metrics, X-Ray tracing, and log streaming.
Configuration and Networking
| Setting | Options / Details |
|---|---|
| CPU | 1 vCPU or 2 vCPU |
| Memory | 2 GB, 3 GB, or 4 GB |
| Port | The port your app listens on (default 8080) |
| Environment variables | Plain text or Secrets Manager/SSM Parameter Store references |
| Deployment trigger | Manual, or automatic on image push (ECR) / code push (GitHub) |
| VPC Connector | Attaches the service to a VPC so it can reach private RDS, ElastiCache, etc. |
| Custom domain | Map your own domain with App Runner managing the ACM certificate |
| Instance role | IAM role granting the app access to other AWS services |
💡
Without a VPC Connector, App Runner instances cannot reach resources in a private VPC (RDS, ElastiCache). Add a VPC Connector to enable private connectivity.
App Runner vs ECS Fargate vs Lambda
| App Runner | ECS Fargate | Lambda | |
|---|---|---|---|
| Setup complexity | Very low | Medium | Low |
| Custom networking | Via VPC Connector | Full VPC control | Via VPC config |
| Max execution time | Unlimited | Unlimited | 15 minutes |
| Scale to zero | Yes (with cold starts) | No (min task count) | Yes |
| Container support | Yes | Yes | Yes (container images) |
| Use case | Simple web apps/APIs | Complex microservices | Event-driven functions |
🎯
Interview Focus Points
- 1When would you choose App Runner over ECS Fargate?
- 2What is the role of a VPC Connector in App Runner?
- 3How does App Runner handle auto-scaling and what are its limits?
- 4Source-based vs image-based deployment - differences and tradeoffs