Q51 — AWS SAP-C02 Ch.3
Question 51 of 75 | ← Chapter 3
Q276. A 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?
- A. Launch two Amazon EC2instances 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
- 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 NLB health checks. Route the sensors to send the data to the NLB
- C. Deploy AWS IoT 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 IoT Core. ✓
- D. Deploy AWS IoT Core, and launch an Amazon EC2 instance to host the Kafka server. Configure AWS IoT Core to send the data to the EC2 instance. Route the sensors to send the data to AWS IoT Core
Correct Answer: C. Deploy AWS IoT 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 IoT Core.
Explanation
C. Deploy AWS IoT 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 IoT Core. This solution involves deploying AWS IoT Core and using Kinesis Data Firehose to store the data in S3 after being transformed by an AWS Lambda function. AWS IoT Core provides high availability and scalability, ensuring that sensor data is not lost in case of a failure. Additionally, this approach can improve security by enabling direct device-to-cloud communication and adding authentication and authorization layers. A, B, and D are not valid solutions: 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. This solution involves launching two EC2 instances to host the Kafka server in an active/standby configuration across two Availability Zones. While this approach provides redundancy, it does not provide automatic scaling based on load. Additionally, it requires manual intervention to switch between the active and standby instances in case of a failure. This approach also does not address the issue of data loss that occurred when the on-premises Kafka server crashed. 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 NLB health checks. Route the sensors to send the data to the NLB. This solution involves migrating an on-premises Kafka server to Amazon MSK and configuring NLB to distribute traffic to the brokers. While Amazon MSK provides high availability and scalability, this solution does not address the issue of data loss that occurred when the on-premises Kafka server crashed. Additionally, it adds complexity to the architecture and may increase costs. D. Deploy AWS IoT Core, and launch an Amazon EC2 instance to host the Kafka server. Configure AWS IoT Core to send the data to the EC2 instance. Route the sensors to send the data to AWS IoT Core. This solution involves deploying AWS IoT Core and launching an EC2 instance to host the Kafka server. However, this approach does not provide automatic scaling based on load or high availability. Additionally, it requires manual intervention to manage the Kafka brokers if there is a failure, and it does not address the issue of data loss that occurred when the on-premises Kafka server crashed.