Skip to content

Guide 1

Complete deployment guide

Provision the whole stack by hand in the AWS console: VPC, security groups, private RDS PostgreSQL, a private EC2 API behind an Application Load Balancer, and a public S3 website for the React frontend.

Time
2–3 hours
Level
Beginner friendly
Before you start
Everyone. Start here.
  1. 1Start hereWhat you will build, what it costs, and what to prepare before you touch the console.10 min
  2. 2Fork the repositoryWhy you must work from your own fork, and how to fork, clone and test it.15 min
  3. 3Build the networkCreate the VPC, public and private subnets, NAT gateway and S3 endpoint.20 min
  4. 4Create security groupsThree chained firewalls so only the load balancer reaches the API and only the API reaches the database.15 min
  5. 5Create the databaseA private PostgreSQL instance on RDS, reachable only from the API.25 min
  6. 6Create the server's IAM roleGive the EC2 instance an identity so you can open a shell with Session Manager and no SSH keys.8 min
  7. 7Create the load balancerA target group with a health check, and an internet-facing Application Load Balancer in front of the API.20 min
  8. 8Create the website bucketAn S3 bucket configured as a public static website for the React app.15 min
  9. 9Launch the API serverAn Ubuntu EC2 instance in a private subnet with no public IP, reachable with Session Manager.20 min
  10. 10Install and start the APIInstall Node.js on the server, clone your fork, connect to the database and run the API as a systemd service.35 min
  11. 11Deploy the websiteBuild the React app with your API address baked in and upload it to the S3 bucket.20 min
  12. 12Verify and hardenAn end-to-end checklist, the security checks that matter, and what to change before real users.15 min
  13. 13TroubleshootingSymptoms, causes and fixes for the problems people actually hit, plus the commands to find the cause yourself.15 min
  14. 14Clean upDelete everything in the right order so you stop paying, and check that nothing was left behind.20 min