Question 39
Domain 3: Continuous Improvement for Existing SolutionsA solutions architect needs to reduce costs for a big data application. The application environment consists of hundreds of devices that send events to Amazon Kinesis Data Streams. The device ID is used as the partition key, so each device gets a separate shard. Each device sends between 50 KB and 450 KB of data each second. An AWS Lambda function polls the shards, processes the data, and stores the result in Amazon S3. Every hour, another Lambda function runs an Amazon Athena query against the result data to identify outliers. This Lambda function places the outliers in an Amazon Simple Queue Service (Amazon SQS) queue. An Amazon EC2 Auto Scaling group of two EC2 instances monitors the queue and runs a 30second process to address the outliers. The devices submit an average of 10 outlying values every hour. Which combination of changes to the application will MOST reduce costs? (Select TWO.)
Correct answer: C
Explanation
Kinesis shard costs scale with throughput, and the devices send "between 50 KB and 450 KB of data each second," so reducing shard count by changing the partitioning strategy lowers streaming cost. The workload also has only "an average of 10 outlying values every hour," so replacing the always-on "Amazon EC2 Auto Scaling group of two EC2 instances" with event-driven processing and using SQS/Lambda for the 30-second task reduces idle compute spend.
Why each option is right or wrong
A. Replace the Auto Scaling group with a Lambda function that is invoked when messages arrive in the queue.
Replacing idle EC2 with Lambda helps, but alone misses the larger shard overprovisioning savings.
B. Reconfigure the devices and data stream to set a ratio of 2 devices to 1 data stream shard.
Shard consolidation reduces stream cost, but alone leaves always-on EC2 running for infrequent outliers.
C. All of the above
Each of the listed options is a valid answer; all are needed.