01 / The problem
What the system needs to solve
Getting an application from a laptop to a secure public URL means designing the network, database and server, not only writing the code.
02 / The approach
How the pieces fit together
- Build a RESTful Spring Boot backend with Spring MVC and Thymeleaf, including user registration.
- Run PostgreSQL on AWS RDS as a managed database.
- Design a VPC with subnets, route tables and security groups.
- Serve the app from EC2 behind an Apache reverse proxy, with a custom domain and HTTPS through Certbot.
03 / The tradeoffs
Engineering is a set of choices
Managed RDS removes database patching and backups from the operating workload, at a higher cost than running PostgreSQL on the application server.
04 / Validation considerations
What to test before relying on it
Verify security groups expose only public ports, the database accepts connections only from the application tier, and certificates renew automatically.