🚀AWS Lift and Shift Strategy: Migrating a Multi-Tier Web App to AWS ☁️

K S Prateek
3 min readFeb 21, 2024
Architecture

🌐 Project Overview: Vprofile Multi-Tier Web Application Stack Migration to AWS

Hey everyone! 👋 I wanted to share a project I worked on that’s really exciting — it’s a web application called Vprofile, and we just migrated it to AWS using “Lift and Shift” strategy. Here’s the rundown:

💡 Scenario:

  • Originally, the application services were running on physical/virtual machines in a traditional datacenter setup
  • Faced challenges with complex management, scale-up/down complexities, upfront costs, regular maintenance, and manual processes

🛠️ Solution:

  • Adopted a Cloud Computing approach using AWS to address these challenges
  • Leveraged Infrastructure as a Service (IAAS) for a pay-as-you-go model, ensuring flexibility, ease of management, and automation
Vprofile Login page
Vprofile Home page

🔧 Key Components Used:

  • Utilized EC2 instances for Tomcat, RabbitMQ, Memcache, and MySQL
  • Replaced Nginx Load Balancer with Elastic Load Balancer (ELB)
  • Implemented Auto Scaling Groups for VM scaling automation
  • Employed S3 for shared storage of artifacts
  • Integrated Route53 private DNS service for seamless domain resolution
  • Ensured SSL encryption with ACM for secure communication

🛠️ Artifact Deployment:

  • First, I built the artifacts locally using Maven
  • Uploaded the artifacts to S3 shared storage, allowing Tomcat instances to seamlessly access them
  • Created an I am role and attached to the instance for S3 full access

🚀 How It Works:

  • The Elastic Load Balancer (ELB), Tomcat instances, and Backend services are each placed in separate Security Groups, each having distinct inbound rules
  • This ensure control over the network traffic to and from these components, enhancing security and facilitating proper communication
  • Users access the website through a URL linked to my Domain (ksprateek.me)
  • The URL directs to the ELB endpoint specified in DNS settings
    Browsers connect to ELB using HTTPS, with the SSL certificate managed by ACM
  • ELB, configured in a security group, allows only HTTPS traffic
    Requests are routed to Tomcat instances on EC2 through port 8080
  • Apache Tomcat instances are managed by Auto Scaling Groups
    Backend services (MySQL, RabbitMQ, Memcache) run on separate EC2 instances
  • Route53 DNS Private Zones store information about backend services
RabbitMQ initialization
Vprofile users list
User data from Database and inserted in Cache
User data from Cache

🎉 Results Achieved:

  • Achieved improved scalability, flexibility, and ease of management
    Successfully eliminated upfront costs and reduced manual intervention
  • Automated processes for scaling, ensuring efficiency and cost-effectiveness

👉 Conclusion:

Leveraging AWS for “Lift and Shift” not only resolved existing challenges but also paved the way for a more scalable, automated, and cost-efficient infrastructure 💻☁️

If you’ve found this helpful, make sure to like and follow for more content like this.

--

--

K S Prateek

👨‍💻 Tech enthusiast and student at the University of Digital Dilemmas, where DevOps is just a fancy way of saying "I swear it worked on my machine." 📚