I use pm2, with nginx in front, on a lightsail instance (ubuntu base-image) and manually run commands (clone, migrate, and pm2 restart) every time we merge to a prod branch, with the idea that eventually those commands will run as part of github actions.
The postgres is also on the same instance.
Curious if anyone has any comments on this.
Also a side question if anyone has used coolify for production apps? How was the experience?
I don't want to spend more time than is required maintaining the infra for the webapp.
Can't go with vercel or a hosted PAAS, because we have AWS credits, and don't want to spend unnecessarily.
thanks in advance
Don't host your own db, use a t3.micro from RDS for postgres (NOT aurora). If you don't want to use RDS use an EC2 instead. Definitely don't containerize the db.
You'll also need an ALB to put in front of your ECS cluster, but you can use the same ALB for as many clusters or apps as you want
This will probably cost you $20-30/mo before bandwidth charges and will carry a lot of traffic, but if you need more you just increment how many nodes you're running, no sweat
Probably learn how to do this using the console, but you do this all with terraform and you can just rubber stamp your application infra like magic
You will probably want a deploy script that runs the docker build command and pushes to ECR and then reboots the ECS containers. Rerun this script periodically to update your base image and libraries.
Flightcontrol is very popular for Next.js deployments on AWS
*I'm cofounder of Flightcontrol
Although, your comment about it being popular, is a bit salesy. I would have checked it out nonetheless.
Deleted Comment