Happy to Announce Our New Discussion Forum | Join Now

AWS IoT real-time alert


A large oil and gas company needs to provide near real-time alerts when peak thresholds are exceeded in its pipeline system. The company has developed a system to capture pipeline metrics such as flow rate, pressure, and temperature using millions of sensors. The sensors deliver to AWS IoT.
What is a cost-effective way to provide near real-time alerts on the pipeline metrics?

A. Create an AWS IoT rule to generate an Amazon SNS notification.
B. Store the data points in an Amazon DynamoDB table and poll if for peak metrics data from an Amazon EC2 application.
C. Create an Amazon Machine Learning model and invoke it with AWS Lambda.
D. Use Amazon Kinesis Streams and a KCL-based application deployed on AWS Elastic Beanstalk.


Tricky question .
As per my understanding, option D would be appropriate. IOT rule can be configured to send data to Kinesis Streams . KCL deployed on Elastic Beanstalk in auto scaling mode can analyze the metrics stored in Kinesis streams and then be used to trigger alarms when peak threshold is reached.
P. S : Second thoughts pointing to Option B.
Kinesis Data Analytics and IoT analytics would have been good services to achieve use case mentioned, however they are not part of the options


@Sushant_Choudary Why C is not on your list?


Didn’t prefer C because ML model computation may take more than 5 mins and lambda would timeout . I am not sure whether we really need ML model in this use case. Feel free to let me know your thoughts. We can definitely come to common answer after sharing of thoughts


In case AWS Lambda recently just got extended timeout to 15 minutes, what else could against C?


This is very recent update, I don’t think exam questions have been updated taking this into consideration. Typically Model Invoke from Lambda should be async call rather than synchronous , however option does not mention anything about polling the status of ML model (asyn call).

ML model computation may take lot of time depending upon data


Thanks for clarify. I appreciated.


Hello dudes, I want to jump into this wonderful question and here my insights and trends. The question requires based on consummation triggers an alert about the exceeds risen by the station (I suppose). Then I picture all these sensors are already set with a reliable connection to AWS transmitting information.

Well , I want to first highlight the ones that perhaps wouldn’t be my answer right. So, first of all the option A will just create a notification but there is not the notion of domain subs/producer so this is probably not an option because previous trigger a notification I need to measure some how whats the status.

The option C is for machine learning predictions and here this is an alert trigger based on current real status on place, not model prediction executions.

The option D uses Kinesis and somehow IoT is already replacing Kinesis in the sense that all the data is being already dumped to IoT and perhaps and internal engine rule store this payload somewhere.

So finally my option should be the B , why ? well I picture the IoT working with a rule to store data into DynamoDB where an application or even a Lambda function might query constantly and react to a certain status. In this case my app in BeansTalk may hit the DynamoDB table recurrently and check if the tresholds was exceed.

thanks for feedback.


my answer is A, IoT rule can use SQL statement to filter the data


A as IOT support filter the message from the MQTT by using sql statement, which could be the most cost-effective way.