Skip to content

Deploy CRUD Java web application on AWS Cloud using services like ec2 instance, ELB, S3/EFS, Route53, Certificate Manager, Autoscaling etc.

Notifications You must be signed in to change notification settings

Ajaytekam/AWSVprofileApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AWS Vprofile App Deployment

Deploying vprofile Java Application on AWS Cloud using services like ec2 instance, ELB, S3/EFS, Route53, Certificate Manager, Autoscaling etc.

Technologies

  • Web Application
    • Spring MVC
    • Spring Security
    • Spring Data JPA
    • JSP
  • Maven
  • MySQL
  • RabbitMQ
  • Memcache

Application Architecture

        ┌─────┐
        │nginx│
        └─────┘
          |↑
          ||   _______┌─────┐
          ||  //-----→│mysql│←-----
          ↓|  ↓|      └─────┘----||
    ┌─────────────┐     |↑       ||
    │tomcat_server│     ||       ||
    └─────────────┘     ↓|       ||
          |↑        ┌────────┐   ||
          ||        │memcache│   ||
          ||        └────────┘   ||
          ↓|         ↑|          ||
      ┌────────┐     //          ||
      │rabbitmq│____//           ||
      └────────┘←----            //
          |↑                    //
          ||___________________//
          ----------------------

What we are going to use

  • EC2 Instances : VM for Tomcat, RabbitMQ, Memcache and MySQL.
  • ELB (Load Balancer) : (Replacing nginx with ELB)
  • Autoscaling : Autoscale Tomcat server.
  • S3/EFS Storage : Shared storage.
  • Amaon Certifcate Manager : Amazon certificate manager for SSL on load balancer.
  • Route 53 : Assign DNS to the load Balancer.

AWS Deployment Architecure

                         Security Group        
  Security Group    |---------------------|     ┌───────────┐
   |---------|      |  Autoscaling Group  |←----│ S3 Bucket │
   | ┌─────┐ |      | ┌─────────────────┐ |     └───────────┘
   | │ ELB │ |----→ | │ Tomcat Instance │ |     ┌───────────┐
   | └─────┘ |      | └─────────────────┘ |←----│Route53 DNS│
   |---------|      |---------------------|     └───────────┘
                             |
                             |
                             ↓
     |-------------------------------------|
     |           ---------→┌──────────────┐|
     |           ↓         │mysql instance│|
     | ┌─────────────────┐ └──────────────┘|
     | │rabbitmq instance│       ↑         |
     | └─────────────────┘       |         |
     |          ↑                ↓         |
     |          |     ┌──────────────────┐ | 
     |          |----→│memcache instrance│ | 
     |                └──────────────────┘ |
     |-------------------------------------|
                 Security Group

Steps To Perform

  • Create 3 Security Groups
  • Instanciate 4 ec2 vms
  • Generate SSL Certicate and Validate the Domain
  • Create Private Hosted Zone for thress backend servers
  • Create iam role with s3 access
  • Build the artifact and deploy it on the application server
  • Setup Load Balancer and redirect the public load balancer dns to custom domain
  • Setup Autoscaling group for application server

About

Deploy CRUD Java web application on AWS Cloud using services like ec2 instance, ELB, S3/EFS, Route53, Certificate Manager, Autoscaling etc.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published