A highly available Node.js web application in AWS cloud using RDS as database.
The VPC follows best architecture practices by having a private and a public subnet in each availability zone. It contains the following resources:
- Auto scaling group: Automatically spins up EC2 instances with User Data allowing it to download the source code from a github repository and then install all its dependencies.
- Application Load Balancer: Accepts HTTP requests from the public internet and redirects the traffic to the auto scaling group in the private subnets.
- AWS RDS for MySQL: A fully managed relational database that offers high availability and redundancy. It is placed in the private subnet for security.
- Bastion host: An EC2 instance situated in the public subnet that allows SSH access to the web servers for maintenance and patching.
Planning on adding a CloudFormation template to automate the infrastructure.