MLS-C01 Data Engineering Practice Question
A financial services company uses Amazon Kinesis Data Streams with 50 shards to ingest real-time stock trade data. The data is consumed by a custom Java application running on Amazon EC2 instances. Recently, the application has been experiencing high latency, and CloudWatch metrics show that the average iterator age is increasing. The application uses the Kinesis Client Library (KCL) with DynamoDB for lease tracking. The EC2 instances are in an Auto Scaling group with a minimum of 2 and maximum of 10 instances, and the current CPU utilization is below 50%. The team wants to reduce latency without increasing costs significantly. What should they do?
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
Increase the maximum size of the Auto Scaling group and set a scaling policy based on iterator age
Increasing the number of consumers (EC2 instances) by raising the Auto Scaling group maximum and setting a scaling policy based on iterator age allows more shards to be processed concurrently, reducing the iterator age. Option A is incorrect because the DynamoDB lease table is not the bottleneck; lease operations are lightweight and the current read capacity is sufficient. Option B is incorrect because enhanced fan-out is designed for multiple consumer applications to get dedicated throughput, but here there is a single consumer group; it would not reduce latency for the existing consumer and would add cost. Option C is incorrect because increasing shards would increase the stream's throughput capacity but also cost, whereas the current issue is consumer-side capacity, not stream capacity.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Increase the provisioned read capacity of the DynamoDB lease table
Why it's wrong here
Increasing the provisioned read capacity of the DynamoDB lease table is unnecessary because the lease table is not the bottleneck; lease operations consume minimal capacity and iterator age is driven by consumer processing speed.
- ✗
Enable enhanced fan-out on the Kinesis stream
Why it's wrong here
Enhanced fan-out is designed for multiple consumer applications to have dedicated 2 MB/second per shard throughput, but this scenario involves a single consumer group; it would not reduce latency for the existing consumer and would increase costs.
- ✗
Increase the number of shards in the Kinesis stream
Why it's wrong here
Increasing the number of shards would increase the stream's throughput capacity but also cost, and the current issue is that consumers cannot keep up with the existing shards; adding more shards would worsen the problem without improving consumer performance.
- ✓
Increase the maximum size of the Auto Scaling group and set a scaling policy based on iterator age
Why this is correct
Increasing the maximum size of the Auto Scaling group and setting a scaling policy based on iterator age allows more EC2 instances to be added dynamically, increasing the number of consumers processing shards in parallel, which directly reduces iterator age without significant cost increase.
Go deeper
Related to this question
About these practice questions
One of 1,672 original MLS-C01 practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This MLS-C01 practice question is part of Courseiva's free Amazon Web Services certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the MLS-C01 exam.