What do you someone breaks something? I post the solution here...

Kubernetes (K8s/K3d) / Terraform / Ansible / Linux / AWS / Docker / Bash / Python / ELK / CI/CD / Java / Traefik / Nginx / CentOs / Ubuntu


Given Scenario: For monolithic java application stack. Apache Web Server, Apache Tomcat application server with Active MQ and Oracle and MongoDB backend. Propose a solution to migrate this application stack to AWS. Mention all the AWS services you would use and how you would maintain HA and Load Balancing (consider app to be stateless). Mention rationale for each design decision.

Solution:

AWS services used for Migration:

 Route 53: Amazon Route 53 is a highly available and scalable cloud Domain Name System (DNS) web service. It is designed to give developers and businesses an extremely reliable and cost effective way to route end users to Internet applications by translating names like www.CompanyACloud.com
 ELB (Elastic Load Balancing): Elastic Load Balancing offers two types of load balancers that both feature high availability, automatic scaling, and robust security. Here we are implementing ELB for High availability.
 EC2 (Elastic Cloud Compute): It provides you with complete control of your computing resources and lets you run on Amazon’s proven computing environment. Amazon EC2 reduces the time required to obtain and boot new server instances to minutes, allowing you to quickly scale capacity, both up and down, as your computing requirements change.
 S3 (Simple storage service): Amazon S3 has a simple web services interface that you can use to store and retrieve any amount of data, at any time, from anywhere on the web. It gives any developer access to the same highly scalable, reliable, fast, inexpensive data storage infrastructure that Amazon
uses to run its own global network of web sites. Here we are using S3 for taking Backup of both the DB instance (Oracle DB and Mongo DB).
 CloudFront: Amazon CloudFront is a global content delivery network (CDN) service that accelerates delivery of your websites, APIs, video content or other web assets. It integrates with other Amazon Web Services products to give developers and businesses an easy way to accelerate content to end users with no minimum usage commitments. Here we are using CloudFront for high volume edge content caching purpose.
 EBS (Elastic Block Storage): Amazon Elastic Block Store (Amazon EBS) provides persistent block storage volumes for use with Amazon EC2 instances in the AWS Cloud. Each Amazon EBS volume is automatically replicated within its Availability Zone to protect you from component failure, offering high availability and durability. Amazon EBS volumes offer the consistent and low-latency performance needed to run your workloads.
 VPC (Virtual Private Cloud): Amazon Virtual Private Cloud (Amazon VPC) lets you provision a logically isolated section of the Amazon Web Services (AWS) cloud where you can launch AWS resources in a virtual network that you define. You have complete control over your virtual networking environment, including selection of your own IP address range, creation of subnets, and configuration of route tables and network gateways.
 RDS (Relational database service): Amazon Relational Database Service (Amazon RDS) makes it easy to set up, operate, and scale a relational database in the cloud. It provides cost-efficient and resizable capacity while managing time-consuming database administration tasks, freeing you up to focus on your applications and business. Here we are using RDS for Oracle database.
Note: This Oracle RDS instance must be launched in Multi-AZ. It must have Fixed amount of backup window for maintenance.
 Cloud Formation: Create your own templates to describe the AWS resources, and any associated dependencies or runtime parameters, required to run your application. You don’t need to figure out the order for provisioning AWS services or the subtleties of making those dependencies work. We are using Cloud formation for creating custom template for Mongo DB as we don’t have any RDS instance for Mongo db. The custom template also take care of high availability and replication.
 IAM (Identity and access management): AWS Identity and Access Management (IAM) enables you to securely control access to AWS services and resources for your users. Using IAM, you can create and manage AWS users and groups, and use permissions to allow and deny their access to AWS resources.



The Low level Architecture of the given scenario and AWS migration is as given below:


7 comments:

sumit said...

Thnx man..thats so helpful :)

Ajinkya said...

thank you. this is very useful.

Sagy said...

ur welcome

Sagy said...

Thanks Ajinkya... I Hope you can migrate your monolithic app using above solution.

Shailesh Thakur said...

oh yaa

aws jobs in hyderabad said...

I get a lot of great information here and this is what I am searching for. Thank you for your sharing. I have bookmark this page for my future reference. Search aws jobs in hyderabad.

Sharma said...

Thanks you for sharing this unique useful information content with us. Really awesome work. keep on blogging.
AWS Online Training
AWS Certification Training
AWS Certification Course Online
AWS Training
AWS Online Course

Powered by Blogger.