Question #783
A logistics company stores shipment tracking data in an Amazon DynamoDB table configured with on-demand capacity mode. Each night, several million new shipment records are batch-loaded into the table. Throughout the day, applications query the table sporadically with high frequency on a small subset of tracking IDs. The company wants to optimize DynamoDB-related expenses without compromising performance.
Deploy an Amazon ElastiCache cluster in front of the DynamoDB table. Configure DynamoDB auto scaling. Purchase Savings Plans in Cost Explorer.
Use provisioned capacity mode. Purchase Savings Plans in Cost Explorer.
Deploy DynamoDB Accelerator (DAX). Continue using on-demand capacity mode. Purchase Savings Plans in Cost Explorer.
Deploy DynamoDB Accelerator (DAX). Use provisioned capacity mode. Configure DynamoDB auto scaling. Purchase Savings Plans in Cost Explorer.
Explanation
Option D is correct because:
1. DynamoDB Accelerator (DAX) caches frequent read queries on a small subset of tracking IDs, reducing read costs and improving performance.
2. Provisioned capacity mode is more cost-effective than on-demand for predictable workloads (e.g., nightly batch writes).
3. Auto scaling adjusts write capacity for nightly batch loads and scales down during low-usage periods, optimizing costs.
4. Savings Plans provide discounts on provisioned capacity.
Other options are suboptimal:
- A: ElastiCache is less efficient than DAX for DynamoDB-specific caching. On-demand mode does not support auto scaling.
- B: Provisioned mode alone lacks caching, leading to higher read costs for frequent queries.
- C: On-demand mode is expensive for predictable nightly writes, whereas provisioned mode with auto scaling is more cost-effective.
Key Points: Use DAX for read-heavy patterns, provisioned mode with auto scaling for predictable workloads, and Savings Plans for discounts.
Answer
The correct answer is: D