AWS Certified Solutions Architect – Professional — Question 821
A Solutions Architect is designing a system that will collect and store data from 2,000 internet-connected sensors. Each sensor produces 1 KB of data every second. The data must be available for analysis within a few seconds of it being sent to the system and stored for analysis indefinitely.
Which is the MOST cost-effective solution for collecting and storing the data?
Answer options
- A. Put each record in Amazon Kinesis Data Streams. Use an AWS Lambda function to write each record to an object in Amazon S3 with a prefix that organizes the records by hour and hashes the record's key. Analyze recent data from Kinesis Data Streams and historical data from Amazon S3.
- B. Put each record in Amazon Kinesis Data Streams. Set up Amazon Kinesis Data Firehouse to read records from the stream and group them into objects in Amazon S3. Analyze recent data from Kinesis Data Streams and historical data from Amazon S3.
- C. Put each record into an Amazon DynamoDB table. Analyze the recent data by querying the table. Use an AWS Lambda function connected to a DynamoDB stream to group records together, write them into objects in Amazon S3, and then delete the record from the DynamoDB table. Analyze recent data from the DynamoDB table and historical data from Amazon S3
- D. Put each record into an object in Amazon S3 with a prefix what organizes the records by hour and hashes the record's key. Use S3 lifecycle management to transition objects to S3 infrequent access storage to reduce storage costs. Analyze recent and historical data by accessing the data in Amazon S3
Correct answer: B
Explanation
Using Amazon Kinesis Data Streams combined with Amazon Kinesis Data Firehose is the most cost-effective solution because Firehose automatically batches streaming data before saving it to Amazon S3, minimizing S3 API request costs. Option A is inefficient because triggering an AWS Lambda function for every 1 KB record (2,000 requests per second) would incur extremely high execution and S3 PUT request costs. Option C introduces unnecessary operational complexity and costs through DynamoDB write/delete operations, while Option D would result in high S3 PUT request charges for 2,000 individual writes per second.