AWS Certified Solutions Architect – Associate (SAA-C03) — Question 774
A company’s application is receiving data from multiple data sources. The size of the data varies and is expected to increase over time. The current maximum size is 700 KB. The data volume and data size continue to grow as more data sources are added.
The company decides to use Amazon DynamoDB as the primary database for the application. A solutions architect needs to identify a solution that handles the large data sizes.
Which solution will meet these requirements in the MOST operationally efficient way?
Answer options
- A. Create an AWS Lambda function to filter the data that exceeds DynamoDB item size limits. Store the larger data in an Amazon DocumentDB (with MongoDB compatibility) database.
- B. Store the large data as objects in an Amazon S3 bucket. In a DynamoDB table, create an item that has an attribute that points to the S3 URL of the data.
- C. Split all incoming large data into a collection of items that have the same partition key. Write the data to a DynamoDB table in a single operation by using the BatchWriteItem API operation.
- D. Create an AWS Lambda function that uses gzip compression to compress the large objects as they are written to a DynamoDB table.
Correct answer: B
Explanation
Amazon DynamoDB has a strict limit of 400 KB per item, meaning the 700 KB payloads cannot be stored directly in the database. The industry-standard and most operationally efficient design pattern for handling oversized DynamoDB items is to store the payload in Amazon S3 and save the S3 object reference URL in the DynamoDB table. Other solutions, such as compressing the data or splitting it into multiple items, add unnecessary operational complexity and may still fail if the data continues to grow.