You work as a machine learning specialist for a home automation company that produces home automation devices such as automated door locks, security cameras, and alarm systems.
Your machine learning team is building a new data repository for a device that your company will soon launch as a new product.
The new device will generate large streams of IoT data using the MQTT protocol.
You need to create a data repository for use in your machine learning models that will be used to produce future device usage predictions.
Your management team will use these device usage predictions to inform their marketing campaigns.
Which option is the most cost-effective configuration of AWS services to build your data repository? (Select TWO)
Click on the arrows to vote for the correct answer
A. B. C. D. E.Correct Answers: B and C.
Option A is incorrect.
You can use a Kinesis Data Streams producer application to transform your MQTT messages and then send the transformed MQTT messages to a Kinesis Data Stream.
You cannot, however, write your MQTT message data directly to S3 from Kinesis Data Streams.
You would need to create a Kinesis Data Streams consumer application to retrieve the transformed MQTT messages from the Kinesis Data Streams partition and then write the transformed MQTT messages to your S3 bucket.
So this option does not include all of the work you would need to create your data repository.
Option B is correct.
The Apache Kafka IoT Core action allows you to send your MQTT message data directly to Amazon MSK to transform your MQTT data in near real-time.
Amazon MSK has an Msk-to-s3-feeder application that you can use to write your transformed MQTT data directly to your S3 bucket.
Option C is correct.
The Kinesis Data Firehose IoT Core action allows you to use Kinesis Data Firehose to transform your MQTT message data in near real-time.
Kinesis Data Firehose can then write your transformed MQTT data directly to your S3 bucket.
Option D is incorrect.
You can use an S3 IoT Core action to write your MQTT messages directly to an S3 bucket.
However, you cannot transform your messages without writing a lambda function (as an example, but there are other ways to do this) to trigger on the S3 create action to transform your MQTT message data.
So this option does not include all of the work you would need to create your data repository.
Option E is incorrect.
You can use an HTTPS IoT Core action to send your MQTT messages to an HTTPS endpoint.
However, you cannot transform your messages using your HTTPS endpoint without writing an HTTPS service to process your MQTT message data and write it to S3
So this option does not include all of the work you would need to create your data repository.
References:
Please see the Amazon Kinesis Data Streams developer guide titled Kinesis Data Streams Consumers (https://docs.aws.amazon.com/streams/latest/dev/amazon-kinesis-consumers.html),
The AWS announcement titled AWS IoT Core adds the ability to deliver data to Apache Kafka clusters (https://aws.amazon.com/about-aws/whats-new/2020/12/aws-iot-core-adds-the-ability-to-deliver-data-to-apache-kafka-clusters/),
The AWS IoT Core developer guide titled Apache Kafka (https://docs.aws.amazon.com/iot/latest/developerguide/apache-kafka-rule-action.html),
The AWS IoT Core developer guide titled Kinesis Data Firehose (https://docs.aws.amazon.com/iot/latest/developerguide/kinesis-firehose-rule-action.html),
The AWS IoT Core developer guide titled HTTPS (https://docs.aws.amazon.com/iot/latest/developerguide/https-rule-action.html),
The AWS IoT Core developer guide titled What is AWS IoT? (https://docs.aws.amazon.com/iot/latest/developerguide/what-is-aws-iot.html),
The AWS IoT Core developer guide titled Connecting to AWS IoT Core (https://docs.aws.amazon.com/iot/latest/developerguide/connect-to-iot.html),
The Amazon Managed Streaming for Apache Kafka developer guide titled What Is Amazon MSK? (https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html)
The most cost-effective configuration of AWS services to build a data repository for a device that generates large streams of IoT data using the MQTT protocol depends on various factors such as scalability, real-time processing, and cost-effectiveness. In this scenario, the primary goal is to create a data repository for use in machine learning models that will be used to produce future device usage predictions. The management team will use these device usage predictions to inform their marketing campaigns. We need to select two options from the given five options that meet the requirements.
Option A: Receive the MQTT messages using a Kinesis Producer Library (KPL) application to transform your MQTT message data near real-time and write the MQTT messages to a Kinesis Data Streams partition. Configure your Kinesis Data Stream to write your transformed MQTT data directly to your S3 bucket that will be the data source of your machine learning model.
This option uses Kinesis Producer Library (KPL) to transform MQTT message data in near real-time and writes it to a Kinesis Data Streams partition. It then configures the Kinesis Data Stream to write the transformed MQTT data directly to the S3 bucket, which will be the data source of the machine learning model. This option provides real-time processing of data, and Kinesis Data Streams is a scalable and durable service, but it requires additional services such as Kinesis Producer Library and Apache Flink to transform the data, which may increase the overall cost.
Option B: Receive your MQTT messages into IoT Core. Use an Apache Kafka IoT Core action to send your MQTT messages directly to Amazon Managed Streaming for Apache Kafka (Amazon MSK) to transform your MQTT data in near real-time. Then use an Msk-to-s3-feeder application to write your transformed MQTT data directly to your S3 bucket that will be the data source of your machine learning model.
This option uses IoT Core to receive MQTT messages and an Apache Kafka IoT Core action to send the MQTT messages directly to Amazon MSK for near real-time transformation. An Msk-to-s3-feeder application is used to write the transformed MQTT data directly to the S3 bucket, which will be the data source of the machine learning model. This option provides real-time processing of data and scalability, but it requires additional services such as Apache Kafka and Msk-to-s3-feeder application, which may increase the overall cost.
Option C: Receive your MQTT messages into IoT Core. Use a Kinesis Data Firehose IoT Core action to send your MQTT messages directly to a Kinesis Data Firehose to transform your MQTT data near real-time and write your transformed MQTT data directly to your S3 bucket that will be the data source of your machine learning model.
This option uses IoT Core to receive MQTT messages and a Kinesis Data Firehose IoT Core action to send MQTT messages directly to a Kinesis Data Firehose for near real-time transformation. The transformed MQTT data is then written directly to the S3 bucket, which will be the data source of the machine learning model. This option provides real-time processing of data and scalability, and Kinesis Data Firehose automatically manages the underlying resources and automatically scales to match the volume and throughput of the data.
Option D: Receive your MQTT messages into IoT Core. Use an S3 IoT Core action to transform your MQTT message data and send the transformed MQTT messages directly to your S3 bucket that will be the data source of your machine learning model.
This option uses IoT Core to receive MQTT messages and an S3 IoT Core action to transform the MQTT message data and send the transformed MQTT messages directly to the S3 bucket, which will be the data source of the machine learning model. This option does not provide real-time processing of data and requires additional services to transform the data, which may increase the overall cost.
Option E: