Question #856
A company is migrating its on-premises e-commerce platform to AWS. The application's database manages structured user profile data and temporary shopping cart data. The company needs to decouple the user profiles from the shopping cart data and 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 for user profiles and shopping cart data. Configure a read replica for the DB instance in another Region.
Create an Amazon RDS DB instance to host the user profile data. Configure a read replica for the DB instance in another Region. Create a global datastore in Amazon ElastiCache for Memcached to host the shopping cart data.
Create two Amazon DynamoDB global tables. Use one global table for user profiles and the other for shopping cart data. Use DynamoDB Accelerator (DAX) for caching.
Create an Amazon RDS DB instance to host the user profile data. Configure a read replica for the DB instance in another Region. Create an Amazon DynamoDB global table to host the shopping cart data.
Explanation
Answer D is correct because:
1. User Profiles: Structured data is best managed by Amazon RDS, which supports ACID transactions and schema enforcement. Cross-region read replicas enable disaster recovery with asynchronous replication.
2. Shopping Cart Data: Temporary, high-velocity session data is ideal for DynamoDB, which offers seamless scalability and low-latency access. DynamoDB global tables provide automatic multi-region replication with synchronous updates, ensuring high availability.
Why other options are incorrect:
- A: Using RDS for both datasets does not decouple them, and cross-region read replicas introduce replication lag, reducing performance for shopping carts.
- B: ElastiCache for Memcached lacks persistence and built-in cross-region replication, making it unsuitable for critical shopping cart data.
- C: DynamoDB is suboptimal for structured user profiles if the application relies on complex SQL queries or transactions. DAX adds unnecessary caching complexity if the data access patterns don’t require it.
Key Points:
- Decouple data types by choosing purpose-built databases (RDS for structured, DynamoDB for transient).
- Use DynamoDB global tables for automatic multi-region replication of NoSQL data.
- RDS read replicas provide disaster recovery for relational data but are asynchronous.
Answer
The correct answer is: D