How to transfer expired DynamoDB items to S3 with least operational overhead?
A developer is creating an application that must transfer expired items from Amazon DynamoDB to Amazon S3. The developer sets up the DynamoDB table to automatically delete items after a specific TTL. The application must process the items in DynamoDB and then must store the expired items in Amazon S3. The entire process, including item processing and storage in Amazon S3, will take 5 minutes. Which solution will meet these requirements with the LEAST operational overhead?
Community Votes
75% of anonymous learners picked answer B. Votes are pick records left by other test-takers — they are not the verified answer.
Community Insight
The question tests understanding that DynamoDB TTL deletions generate REMOVE records in DynamoDB Streams, enabling a fully managed, event-driven pipeline with the least operational overhead.
This question tests the ability to react to DynamoDB TTL expirations using DynamoDB Streams and AWS Lambda for serverless, low-overhead processing. Community consensus strongly favors configuring DynamoDB Streams to invoke a Lambda function that processes and archives expired items to Amazon S3.
Candidates often choose Option A (DAX) because they misunderstand DAX as a querying mechanism for TTL, when in reality DAX is an in-memory cache and does not help archive expired items to S3.
Community Discussion (7 comments)
Comments & Corrections
No comments yet — spotted an error or have a note? Share it below.
Expert Analysis
Understanding DynamoDB TTL and Streams Integration
When DynamoDB Time to Live (TTL) is enabled, items that pass their expiration timestamp are automatically deleted by a background process. Crucially, these deletions generate REMOVE records in DynamoDB Streams, which allows downstream consumers to react to expired items in real time.
Why Option B is Correct
Option B — configuring DynamoDB Streams to invoke an AWS Lambda function — is the correct answer because:
- DynamoDB Streams natively captures TTL-driven deletions as REMOVE events.
- AWS Lambda is a fully managed compute service, meaning zero server provisioning, zero patching, and automatic scaling.
- The 5-minute processing window is well within Lambda's maximum execution time (15 minutes).
- This approach delivers the least operational overhead among all options.
Why the Other Options Are Wrong
- Option A (DAX): DynamoDB Accelerator (DAX) is an in-memory cache designed to reduce read latency. It cannot be "configured to query for expired items based on TTL" in a meaningful way for archival, and it certainly does not push data to S3. This is a distractor.
- Option C (ECS on EC2): Running a custom application on Amazon ECS with EC2 instances requires managing underlying EC2 infrastructure, container orchestration, scaling policies, and patching. This introduces significant operational overhead, directly contradicting the requirement.
- Option D (EventBridge rule): Amazon EventBridge can schedule Lambda invocations, but it does not receive DynamoDB TTL expiration events directly. You would need a custom polling mechanism or a scheduled scan, which is far less efficient and more operationally complex than using DynamoDB Streams.
Key Takeaway
Always pair DynamoDB TTL with DynamoDB Streams + Lambda when you need to react to item expirations. This pattern is serverless, event-driven, and minimizes operational overhead.
Official Reference
Exam Strategy
When the question emphasizes 'least operational overhead,' immediately eliminate options involving managed EC2 instances or custom polling. Favor fully managed, event-driven services like Lambda triggered by native streams.
Related Analysis
Practice All DVA-C02 Questions
Access 100 questions with complete answers and detailed explanations.
View Full DVA-C02 Practice Test →