Question #327
A company wants to migrate its on-premises application to AWS. The database for the application stores structured product data and temporary user session data. The company needs to decouple the product data from the user session data. The company also needs to implement replication in another AWS Region for disaster recovery.
Which solution will meet these requirements with the HIGHEST performance?
Create an Amazon RDS DB instance with separate schemas to host the product data and the user session data. Configure a read replica for the DB instance in another Region.
Create an Amazon RDS DB instance to host the product data. Configure a read replica for the DB instance in another Region. Create a global datastore in Amazon ElastiCache for Memcached to host the user session data.
Create two Amazon DynamoDB global tables. Use one global table to host the product data. Use the other global table to host the user session data. Use DynamoDB Accelerator (DAX) for caching.
Create an Amazon RDS DB instance to host the product data. Configure a read replica for the DB instance in another Region. Create an Amazon DynamoDB global table to host the user session data.
Explanation
Option D is the best answer because it effectively decouples the structured product data and temporary user session data, which is one of the primary requirements of the question. By using Amazon RDS to host the product data and configuring a read replica in another region, the company ensures high availability and disaster recovery. At the same time, by utilizing Amazon DynamoDB for the user session data, which is inherently designed for high throughput and low latency, the solution achieves excellent performance.
All other options have shortcomings:
- Option A: It does decouple data, but using separate schemas in RDS can lead to less flexibility and may not achieve optimal performance as DynamoDB would for session data.
- Option B: This includes ElastiCache for caching, but might not efficiently manage session state in a distributed context, and does not take full advantage of DynamoDB's performance for session data.
- Option C: While DynamoDB is excellent for both data types, creating two separate global tables is not necessary, and the requirement for structured data is better fulfilled by RDS.
In summary, Option D is the most balanced solution for meeting performance, separation of data types, and disaster recovery needs.
Answer
The correct answer is: D