Question 11
Domain 3: Continuous Improvement for Existing SolutionsA company has more than 10.000 sensors that send data to an on-premises Apache Kafka server by using the Message Queuing Telemetry Transport (MQTT) protocol. The on-premises Kafka server transforms the data and then stores the results as objects in an Amazon S3 bucket. Recently, the Kafka server crashed. The company lost sensor data while the server was being restored. A solutions architect must create a new design on AWS that is highly available and scalable to prevent a similar occurrence. Which solution will meet these requirements?
Correct answer: C
Explanation
AWS IoT Core is a managed, highly available MQTT endpoint that can receive data from “more than 10,000 sensors” without relying on a single on-premises Kafka server. Kinesis Data Firehose provides scalable delivery to Amazon S3, and AWS Lambda can perform the required transformation before storage, removing the crash point that caused data loss.
Why each option is right or wrong
A. Launch two Amazon EC2 instances to host the Kafka server in an active/standby configuration across two Availability Zones. Create a domain name in Amazon Route 53. Create a Route 53 failover policy. Route the sensors to send the data to the domain name.
EC2 failover still relies on self-managed Kafka infrastructure and adds operational complexity for MQTT ingestion.
B. Migrate the on-premises Kafka server to Amazon Managed Streaming for Apache Kafka (Amazon MSK). Create a Network Load Balancer (NLB) that points to the Amazon MSK broker Enable NL8 health checks. Route the sensors to send the data to the NLB.
MSK is for Kafka clients, not generally the direct managed endpoint for MQTT-speaking sensors.
C. Deploy AWS loT Core, and connect it to an Amazon Kinesis Data Firehose delivery stream. Use an AWS Lambda function to handle data transformation. Route the sensors to send the data to AWS loT Core.
AWS IoT Core is the managed MQTT ingestion service for device telemetry and is designed to scale to millions of connected devices with built-in high availability, so it removes the single on-premises Kafka failure point that caused the loss. Kinesis Data Firehose can buffer and deliver the stream to Amazon S3 without the company operating brokers, and an AWS Lambda transform can process records inline before delivery, preserving the required transformation step while avoiding downtime during server restoration.
D. Deploy AWS loT Core, and launch an Amazon EC2 instance to host the Kafka server. Configure AWS loT Core to send the data to the EC2 instance. Route the sensors to send the data to AWS loT Core.
Adding IoT Core helps ingestion, but a single EC2-hosted Kafka server remains a scalability and availability risk.