This project entails migrating a multi-tier web application from a local data center to the Amazon Web Services (AWS) cloud using the "Lift and Shift" strategy. The goal is to deploy the application for production, taking advantage of AWS's Infrastructure as a Service (IaaS) offerings.
Project scope:
This project involves migrating a multi-tier web application stack to AWS, consisting of various components like Tomcat, RabbitMQ, MySQL, and Memcache.
AWS services used include EC2 instances, Load Balancer (ELB), Auto Scaling, S3 for storing software artifacts, EFS storage, Route 53 for DNS zones, Amazon Certificate Manager (ACM) for HTTPS, IAM, EBS, and Security Groups.
The migration process will include setting up security groups, key pairs, launching instances with user data scripts, configuring Route 53 for DNS, building the application, and deploying it on AWS.
Project Tasks:
1. Environment Setup:
Log in to the AWS account.
Create necessary security groups for ELB, Tomcat servers, and backend services (MySQL, Memcache, RabbitMQ).
Generate key pairs for secure access.
2. Launch Instances:
Create EC2 instances for Tomcat (app01), RabbitMQ (rmq01), MySQL (db01), and Memcache (mc01) using user data scripts.
Configure these instances to run the required services.
3. DNS Configuration:
Set up Route 53 for DNS zones and add records for the backend servers (db01, mc01, rmq01).
4. Artifact Management:
Build the application from source code locally using Maven.
Upload the artifacts to an S3 bucket.
Download the artifact to the Tomcat EC2 instance.
5. Load Balancer and SSL Configuration:
Set up an Elastic Load Balancer (ELB) to manage traffic.
Configure HTTPS with SSL certificates from ACM.
Map the ELB endpoint to the website's domain in GoDaddy DNS.
6. Auto Scaling:
Create an Amazon Machine Image (AMI) for the Tomcat server.
Develop a launch template and create an Auto Scaling group.
Configure the Auto Scaling group to handle traffic fluctuations.