Which solution will meet these requirements?
Use AWS Application Auto Scaling to increase capacity during the peak period. Purchase reserved RCUs and WCUs to match the average load.
Configure on-demand capacity mode for the table.
Configure DynamoDB Accelerator (DAX) in front of the table. Reduce the provisioned read capacity to match the new peak load on the table.
Configure DynamoDB Accelerator (DAX) in front of the table. Configure on-demand capacity mode for the table.
Explanations:
This is the most cost-effective approach. Using Application Auto Scaling allows you to dynamically adjust the provisioned RCUs and WCUs based on demand. Purchasing reserved capacity for the average load ensures that you have a base level of capacity at a discounted rate. Auto Scaling then handles the scaling up to meet the peak load, avoiding the cost of over-provisioning for the entire week. This is best when you have predictable spikes in traffic.
On-demand capacity mode charges you for reads and writes as you perform them. While it eliminates the need to provision capacity, it is generally more expensive than provisioned capacity with auto scaling when you have predictable traffic patterns, especially with a write-heavy workload. Since the peak is predictable and double the average, it is more cost effective to provision for the average and scale to the peak.
DAX is a caching service for DynamoDB that improves read performance. Since the workload is write-heavy, DAX will not provide significant cost savings. Reducing the provisioned read capacity based on the new peak load makes the table even less able to handle reads during peak periods.
Using DAX with on-demand capacity mode is also not cost-effective. DAX is for read-heavy workloads, and on-demand mode is more expensive for predictable traffic patterns. This combination would add unnecessary cost without providing significant benefit for a write-heavy workload.