Your company runs a popular map service as a SaaS platform.
Your dynamic multi-page application users are spread across the world, but not all of them heavily use the system.
So the load is high in some of the regions but not all.
The application uses the NoSQL database and runs it on a cluster of EC2 machines and using the custom tools to replicate the data across different regions.
The current database size is around 10PB.
As the popularity of the application grows, the database is also growing rapidly.
Now the application is serving millions of requests from your SaaS platform.
The management has decided to develop a plan to re-design the architecture dynamically, both from the application availability and infrastructure cost perspective.
Please suggest the necessary changes.
Select 3 Options.
Click on the arrows to vote for the correct answer
A. B. C. D. E.Correct Answer: A, C, D.
Option A is CORRECT because the AWS Route53 Latency-based routing will redirect the lowest latency region's request to help serve the application faster.
Option B is INCORRECT because the AWS S3 can only be used for Static Website Hosting or Single Page Applications.
However, in the current case, the application is a SaaS platform and the question mentions that the multi-page application is dynamic.
CloudFront is suitable to serve requests from different regions.
But as S3 is incorrect, this option is wrong.
Option C is CORRECT because the DynamoDB global tables provide replication capabilities.
With global tables, you can have a fully managed, multi-region, and multi-master database that provides fast, local, read and write performance for massively scaled, global applications.
Option D is CORRECT because, in the current case, the size of the database is into petabytes.
We can use ElasticCache to provide secure and fast performance.
Option E is INCORRECT because AWS RDS is a relational database service, and the application in the context is using the NoSQL database.
It would require a significant engineering effort to re-design the application to fit the relational database and scale for such a huge amount of data.
To re-design the architecture dynamically from both application availability and infrastructure cost perspective, the following three options can be selected:
Option A: Route53 with Latency-Based Routing Policy
By using Route53 with the Latency-Based Routing Policy, the application can be deployed in the regions where the heavy load is being generated. This policy will redirect the users to the lowest latency region from their location, ensuring that they have the best possible experience. This option helps to improve application availability by providing users with low latency and reducing the load on other regions.
Option C: Use DynamoDB Global Tables
DynamoDB Global Tables can be used to replicate the data into multiple regions. This option provides high availability and low latency by replicating data across different regions. The application can read and write data to any of the replicas, and DynamoDB will automatically synchronize the data between the replicas, ensuring that the data is always consistent.
Option E: Use RDS with Read Replicas
Using RDS with Read Replicas into multiple regions can help improve availability and reduce the load on the primary database. The read replicas can be used to serve traffic, and the primary database can be used to handle writes. This option provides lower latency for read operations and helps improve application availability.
Options B and D are not suitable for the given scenario. Migrating the application to S3 and using CloudFront edge locations will not work for a dynamic multi-page application that uses a NoSQL database. And deploying ElastiCache to cache requests to the DynamoDB table may not be useful in regions with low traffic.
Therefore, options A, C, and E are the most suitable options for re-designing the architecture dynamically from both application availability and infrastructure cost perspective.