A High Availability WebApp is deployed using a Launch Configuration to order to deploy four servers, two located in each private subnets created in a separate stack. The launch configuration will be used by an auto-scaling group.
The Instance type will two vCPUs and at least 4GB of RAM. The Operating System used is Ubuntu 20.04 LTS. 10GB of Disk Space is also allocated to each Web Servers.
A Bastion Host is also created in a Public Subnet to enable us SSH into the Web Servers for Troubleshooting and Maintenance. A security group that allows an SSH only from the workstation Ip
A S3 Read Only Role is also created and attached to the Web Servers to enable us our web template stored in an S3 Bucket
Change the ParameterValue
of myIP in the Project.Json file to your workstation IP to be able to SSH into the Bastion Host
- Security Groups (LoadBalancer, Web Servers, Bastion Host)
- Launch Configurations
- Auto Scaling Group
- EC2 Instance
- Load Balancer
- Listener
- Listener Rule
- Target Group
- IAM Role, Policy, Instance Profile
- Load Balancer
aws cloudformation create-stack --stack-name Project --template-body file://Project.yml --parameters file://Project.json --capabilities "CAPABILITY_IAM" --region=us-east-1
http://proje-webap-zelhdyl7ev65-2062816418.us-east-1.elb.amazonaws.com/