How to transfer expired DynamoDB items to S3 with least operational overhead?

DVA-C02 By islever Editorial Last updated

Short answer

B Configure DynamoDB Streams to invoke an AWS Lambda function. Program the Lambda function to process the items and to store the expired items in Amazon S3.

Question

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?
  1. Configure DynamoDB Accelerator (DAX) to query for expired items based on the TTL. Save the results to Amazon S3.
  2. Configure DynamoDB Streams to invoke an AWS Lambda function. Program the Lambda function to process the items and to store the expired items in Amazon S3. Correct Answer
  3. Deploy a custom application on an Amazon Elastic Container Service (Amazon ECS) cluster on Amazon EC2 instances. Program the custom application to process the items and to store the expired items in Amazon S3.
  4. Create an Amazon EventBridge rule to invoke an AWS Lambda function. Program the Lambda function to process the items and to store the expired items in Amazon S3.

Key Takeaways

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.

Common mistake: 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.

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.
As community members confirmed, this is a textbook event-driven pattern on AWS. One user even cited the official documentation on TTL and Streams integration.

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

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/time-to-live-ttl-streams.html

This link opens the official vendor documentation in a new tab.

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.

Community Votes

B
75%
A
25%

75% of anonymous learners picked answer B. Votes are pick records left by other test-takers — they are not the verified answer.

Discussion 7 contributions

Compiled from public community threads and reader submissions, lightly edited for clarity. Handles and vote tallies are shown as recorded, and comments reflect the views of individual contributors.

From public community threads 7

  1. 0bdf3af 👍 1 Answered B
    https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/time-to-live-ttl-streams.html
  2. 7368e4a 👍 4 Answered B
    B looks good to me
  3. Mo_1981 👍 3 Answered A
    Answer is B
  4. catoteja 👍 3 Answered B
    It's B
  5. Saurabh04 👍 2
    Correct answer is B
Show 2 more comments
  1. lpennington 👍 1
    B is correct
  2. piipo 👍 1 Answered B
    B is best

Reader comments & corrections

No reader corrections yet — spotted an error or have a note? Share it below.

Log in to comment, report an error, or add a note about this question.

Submitted for moderation before publishing. Keep it helpful and respectful.

Practice All DVA-C02 Questions

Access 100 questions with complete answers and detailed explanations.

View Full DVA-C02 Practice Test →

← Back to DVA-C02 Study Guide