Real Estate Information and News on AWS Platform

Migrate Your On-Premises Website to AWS for High Availability

Prev Question Next Question

Question

A large IT company has an on-premises website that provides real-estate information such as rent, house prices, and the latest news to users.

The website has a Java backend and a NoSQL MongoDB database used to store subscribers' data.

You are a cloud analyst and need to migrate the whole application to the AWS platform.

Your manager requires that a similar structure should be deployed in AWS for high availability.

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D. E.

Correct Answer - A, C, D.

As this case needs to migrate the on-premises system to AWS using a similar structure, DocumentDB is more appropriate than RDS Aurora.

DocumentDB is also a NoSQL database compatible with MongoDB.

Besides, AWS X-Ray is a service that collects data about requests that your application serves and provides tools you can use to view, filter, and gain insights into that data to identify issues and opportunities for optimization.

Reference for AWS X-Ray is at https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html.

Option A is CORRECT because autoscaling would provide high availability.

Option Bis incorrect because RDS Aurora is a SQL database that is inappropriate in this scenario and brings extra unnecessary efforts.

Option C is CORRECT because Amazon DocumentDB is a fully managed NoSQL database service that provides fast and predictable performance with seamless scalability and compatible with MongoDB.Option D is CORRECT because AWS X-Ray is suitable to work as a tracing framework.

It can monitor the requests from the frontend and requests to the DocumentDB database.

Below is a graph that AWS X-Ray can provide.

Note: Please read "DynamoDB" as "DocumentDB" instead in the diagram given below.

Please refer to the below link for "DocumentDB"

https://docs.aws.amazon.com/documentdb/latest/developerguide/developerguide.pdf

Option E is incorrect: Theoretically, CloudWatch can be used to trace the incoming and outgoing requests, although it may bring extra efforts.

However, the service should be CloudWatch Logs rather than CloudWatch Events.

Amazon CloudWatch Events describe changes in Amazon Web Services (AWS) resources.

avg. 99ms

0.2 tmin avg. 460ms
0.4 tmin
scorekeep-user
SNS

AWS::DynamoDB:Table

Web app Resources
& __— avg. 20m
7 0.2tmin
Clients
Scorekeep scorekeep-move ka -
AWS: ElesticBeanstelk::Environment AWS:OynamoD8:-Table Scorekeep-game

AWS::DynamoDB::Table

API

scorekeep-state e

AWS:D OB:T scorekeep-session
AWS::DynamoDB::Table

To migrate the on-premises real estate website with a Java backend and NoSQL MongoDB database to AWS platform, we need to ensure high availability. Here are the possible solutions:

A. Deploy an Auto Scaling group of Java backend servers to provide high availability.

Auto Scaling group is a group of instances that automatically scale based on the traffic load. By deploying an Auto Scaling group of Java backend servers, we can ensure high availability by adding more instances when the traffic increases and removing instances when the traffic decreases. This approach also provides load balancing by distributing traffic evenly among all the instances in the group.

However, deploying only an Auto Scaling group does not solve the issue of database high availability.

B. Use RDS Aurora as the database for the subscriber data because it is highly available and can scale up to 15 Read Replicas.

RDS Aurora is a high-performance, scalable, and highly available relational database service provided by AWS. Aurora provides automatic replication, automatic failover, and automatic backups to ensure high availability. Aurora also provides up to 15 read replicas that can be used to offload read traffic from the primary database instance. Using Aurora as the database for subscriber data ensures high availability and scalability, and it integrates well with other AWS services.

C. Create a DocumentDB database to hold subscriber data. Set up an Auto Scaling policy for the read/write throughput.

DocumentDB is a fully managed, highly available, and scalable NoSQL document database service provided by AWS. DocumentDB is compatible with MongoDB, which makes it easy to migrate MongoDB workloads to DocumentDB. DocumentDB provides automatic backups, point-in-time recovery, and automatic failover to ensure high availability. By setting up an Auto Scaling policy for the read/write throughput, we can ensure that the database can handle increased traffic load.

D. Use AWS X-Ray SDK to record data about incoming and outgoing requests. View the statistics graph in the X-Ray console.

AWS X-Ray is a service that provides end-to-end visibility of applications running on AWS. By using the X-Ray SDK, we can record data about incoming and outgoing requests, such as the time taken by each service and any errors that occur. This information can be viewed in the X-Ray console, which provides a statistics graph of the application's performance. However, using X-Ray alone does not provide high availability for the application.

E. Trace the requests using AWS JAVA SDK and send logs to AWS CloudWatch Events. Create a CloudWatch dashboard to view the statistics.

AWS CloudWatch is a service that provides monitoring and logging capabilities for AWS resources and applications. By using the AWS Java SDK, we can trace requests and send logs to CloudWatch Events. We can create a CloudWatch dashboard to view statistics such as request latency, errors, and traffic load. However, using CloudWatch alone does not provide high availability for the application.

Conclusion:

The best solution for ensuring high availability for the real estate website with a Java backend and NoSQL MongoDB database would be to use RDS Aurora as the database for the subscriber data because it provides automatic replication, automatic failover, and automatic backups to ensure high availability. Additionally, deploying an Auto Scaling group of Java backend servers can help provide load balancing and ensure high availability for the application layer.