App

Next.js on ECS Fargate: server-rendered pages, database-backed sessions in Aurora, and background work handed to a worker service over SQS.

Web service

Long-running Fargate tasks behind an ALB and CloudFront. Containers stay warm, so SSR latency is query and render time only.

Worker service

A separate task definition in the same cluster, long-polling SQS and scaling independently of web traffic.

Aurora Serverless v2

Both services hold pooled connections directly. Scales down toward idle, up under load — no RDS Proxy in the path.