Table of Contents
Project
Goal of this project is to deploy scalable, highly available and secured web application in 3-tier architecture and provide application access to the end users from public internet.
Resources
Below are the resources required to deploy this project.
- VPC
- Subnets
- Route Tables
- Internet gateway
- NAT Gateway
- Security Groups
- Network ACL
- Elastic IP
- S3 Bucket
- SNS Topic
- Cloud Watch Alarms
- EC2 Instances
- RDS
- Auto Scaling Group
- Load Balancer
- Route53 Hosted Zone
- IAM Policy
- IAM Role
- Session Manager
- Java Application
Skills
Below are the skills required to complete this project deployment to deploy infrastructure and application components.
- AWS
- Nginx
- Apache Tomcat
- Apache Maven
- MySQL
Configuration
All AWS resources required for this project deployment are in the scope of AWS Free Tier, except Multi-AZ RDS, NAT and Route 53 Domain.
Deployment
Below are the high-level steps to implement the project.
- Deploy Scalable, High Available, and Secured Web App in AWS cloud as per the 3-tier architecture provided above.
- Create Golden AMI for front and app tier.
- Deploy public load balancer in front of Nginx.
- Deploy auto scaling group for Nginx.
- Deploy private load balancer in front of Tomcat.
- Deploy auto scaling group for Tomcat.
- Deploy RDS into private subnets.
- Configure SNS notification on auto scaling Group event change.
- Configure scaling policy to scale out when CPU utilization breaches the threshold 80% utilization.
- Configure scaling policy to scale in when CPU utilization below the threshold 80% utilization.
- Customize Launch Configuration user-data to automate the software provisioning for Nginx and Tomcat. (Artifact can be pulled from Jfrog, S3 etc..)
Verification
- Verify you as an administrator able to login to EC2 instances from session manager.
- Verify if you as an end user able to access web services from public internet browser.
Destroy
- Once project implementation is completed, destroy the resources created in this project to avoid the billing.
© Edwiki Trainings – Click HERE If you are interested to learn more on Cloud & DevOps stack.
2 comments
Thank you PR , for taking efforts in updating our knowledge , one of the best devops tutor
It adds additional difficulties to the task of building a secure and reliable communication between all the involved sides. Based on that, we decided to base our architecture on the following: microservice architecture; each service should be isolated in a docker container; container are run using a containers orchestration tool Kubernetes ; the system will be deployed on AWS cloud. High-level work overview Each microservice is the smallest block of the system furthermore it serves the single feature only.