Deploying a Student Project on AWS: What I Actually Learned
March 28, 2025#aws#deployment#serverless

What I actually deployed
A Next.js app, a Postgres database, user-uploaded images, and a scheduled job. Six services later, the architecture is: Next.js on EC2, Postgres on RDS, images in S3 behind CloudFront, and one Lambda for the cron job. That is four services doing real work.
What earned its keep
- RDS + EC2 in the same VPC. Private subnet, security groups, no public exposure. This pairing is the single most underrated setup in cloud learning.
- S3 + CloudFront. Images served from a CDN with long cache headers — instant page loads, near-zero cost.
- One Lambda on a schedule. The nightly "release locked seats" job. Pay-per-invocation beats paying for a server that sleeps.
What was a detour
DynamoDB. My data is relational; a document store was a second database with worse joins. API Gateway. The app talks to my own API — an ALB does the same job with less configuration.
The lesson that stuck
Cloud services are not a menu to order from — they are a toolbox, and the tool you skip is a decision too. I spent two weeks integrating a service I removed in two hours.
The message-queues post is the sibling lesson on the backend side.
***