AWS Certified Solutions Architect – Associate (SAA-C02) — Question 488
A company runs an application on a large fleet of Amazon EC2 instances. The application reads and write entries into an Amazon DynamoDB table. The size of the DynamoDB table continuously grows, but the application needs only data from the last 30 days. The company needs a solution that minimizes cost and development effort.
Which solution meets these requirements?
Answer options
- A. Use an AWS CloudFormation template to deploy the complete solution. Redeploy the CloudFormation stack every 30 days, and delete the original stack.
- B. Use an EC2 instance that runs a monitoring application from AWS Marketplace. Configure the monitoring application to use Amazon DynamoDB Streams to store the timestamp when a new item is created in the table. Use a script that runs on the EC2 instance to delete items that have a timestamp that is older than 30 days.
- C. Configure Amazon DynamoDB Streams to invoke an AWS Lambda function when a new item is created in the table. Configure the Lambda function to delete items in the table that are older than 30 days.
- D. Extend the application to add an attribute that has a value of the current timestamp plus 30 days to each new item that is created in the table. Configure DynamoDB to use the attribute as the TTL attribute.
Correct answer: D
Explanation
DynamoDB Time to Live (TTL) is a native, cost-free feature that automatically deletes expired items from tables, minimizing both development effort and operational costs. Options B and C require extra compute resources (EC2 or Lambda) and custom code, which increases costs and maintenance. Option A is not viable because recreating the CloudFormation stack every 30 days would delete all current data and cause application downtime.