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.


Below are the resources required to deploy this project.

  1. VPC
  2. Subnets
  3. Route Tables
  4. Internet gateway
  5. NAT Gateway
  6. Security Groups
  7. Network ACL
  8. Elastic IP
  9. S3 Bucket
  10. SNS Topic
  11. Cloud Watch Alarms
  12. EC2 Instances
  13. RDS
  14. Auto Scaling Group
  15. Load Balancer
  16. Route53 Hosted Zone
  17. IAM Policy
  18. IAM Role
  19. Session Manager
  20. Java Application


Below are the skills required to complete this project deployment to deploy infrastructure and application components.

  1. AWS
  2. Nginx
  3. Apache Tomcat
  4. Apache Maven
  5. MySQL


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.


Below are the high-level steps to implement the project.

  1. Deploy Scalable, High Available, and Secured Web App in AWS cloud as per the 3-tier architecture provided above.
  2. Create Golden AMI for front and app tier.
  3. Deploy public load balancer in front of Nginx.
  4. Deploy auto scaling group for Nginx.
  5. Deploy private load balancer in front of Tomcat.
  6. Deploy auto scaling group for Tomcat.
  7. Deploy RDS into private subnets.
  8. Configure SNS notification on auto scaling Group event change.
  9. Configure scaling policy to scale out when CPU utilization breaches the threshold 80% utilization.
  10. Configure scaling policy to scale in when CPU utilization below the threshold 80% utilization.
  11. Customize Launch Configuration user-data to automate the software provisioning for Nginx and Tomcat. (Artifact can be pulled from Jfrog, S3 etc..)


  1. Verify you as an administrator able to login to EC2 instances from session manager.
  2. Verify if you as an end user able to access web services from public internet browser.


  1. 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.

  1. 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.

Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like