シナリオ 4: デバイスセンサーのリアルタイム異常検出と通知
ABC4Logistics 社は、ガソリン、液体プロパン (LPG)、ナフサなどの可燃性の高い石油製品を港から各都市に輸送しています。位置、エンジン温度、コンテナ内の温度、走行速度、駐車場所、道路状況などをモニタリングするために複数のセンサーが搭載された車両が数百台あります。ABC4Logistics の要件の 1 つは、エンジンとコンテナの温度をリアルタイムでモニタリングし、異常が発生した場合にドライバーとフリートモニタリングチームに警告することです。このような状況を検出し、リアルタイムでアラートを生成するために、ABC4Logistics は次のアーキテクチャを AWS に実装しました。

ABC4Logistics のデバイスセンサーのリアルタイム異常検出および通知アーキテクチャ
デバイスセンサーからのデータは AWS IoT Gateway によって取り込まれ、AWS IoT ルールエンジンによってストリーミングデータが Amazon Kinesis Data Streams で利用可能になります。ABC4Logistics は、Kinesis Data Analytics を使用して、Kinesis Data Streams 内のストリーミングデータに対してリアルタイム分析を実行できます。
ABC4Logistics は、Kinesis Data Analytics を使用して、センサーからの温度測定値が 10 秒間にわたって通常の測定値から逸脱しているかどうかを検出し、そのレコードを別の Kinesis Data Streams インスタンスに取り込み、異常なレコードを特定できます。Amazon Kinesis Data Streams は Lambda 関数を呼び出し、Amazon SNS を介してドライバーとフリートモニタリングチームにアラートを送信できます。
Kinesis Data Streams 内のデータも Amazon Kinesis Data Firehose にプッシュダウンされます。Amazon Kinesis Data Firehose はこのデータを Simple Storage Service (Amazon S3) に保持するため、ABC4Logistics はセンサーデータに対してバッチまたはほぼリアルタイムの分析を実行できます。ABC4Logistics では、Amazon Athena
次に、このアーキテクチャの重要なコンポーネントについて詳しく説明します。
Amazon Kinesis Data Analytics
Amazon Kinesis Data Analytics
Amazon Kinesis Data Analytics を使用すると、複数のオプション (スタンダード SQL、Java、Python、Scala の Apache Flink アプリケーションを含む) を使用してインタラクティブにストリーミングデータをクエリしたり、Java を使用して Apache Beam アプリケーションを構築してデータストリームを分析したりできます。
これらのオプションにより、ストリーミングアプリケーションとソース/ターゲットのサポートの複雑度に応じて、特定のアプローチを柔軟に使用できます。次のセクションでは、Flink アプリケーション用 Kinesis Data Analytics オプションについて説明します。
Amazon Kinesis Data Analytics for Apache Flink アプリケーション
Apache Flink
Amazon Kinesis Data Analytics for Apache Flink を使用すると、複雑な分散型 Apache Flink 環境を管理しなくても、ストリーミングソースに対してコードを作成して実行し、時系列分析の実行、リアルタイムダッシュボードのフィード、リアルタイムのメトリクスの作成を行うことができます。高レベルの Flink プログラミング機能は、自分で Flink インフラストラクチャをホストする場合と同じ方法で使用できます。
Apache Flink 用 Kinesis Data Analytics を使用すると、Java、Scala、Python、または SQL でアプリケーションを作成して、ストリーミングデータを処理および分析できます。典型的な Flink アプリケーションは、入力ストリームまたはデータロケーションまたはソースからデータを読み取り、演算子または関数を使用してデータを変換/フィルターまたは結合し、データを出力ストリームまたはデータロケーション、またはシンクに保存します。
以下のアーキテクチャ図表は、Kinesis Data Analytics Flink アプリケーションでサポートされているソースとシンクの一部を示しています。ソース/シンク用にあらかじめバンドルされたコネクタに加えて、Kinesis Data Analytics の Flink アプリケーション用のさまざまなソース/シンクにカスタムコネクタを取り込むこともできます。

リアルタイムストリーミング処理のための Kinesis Data Analytics 上の Apache Flink アプリケーション
デベロッパーは、お好みの IDE を使用して Flink アプリケーションを開発し、AWS Management Console
Amazon Kinesis Data Analytics Studio
Kinesis Data Analytics Studio
Studio ノートブックを使用すると、ノートブック環境で Flink アプリケーションコードを開発し、コードの結果をリアルタイムで表示して、ノートブック内で可視化できます。Apache Zeppelin と Apache Flink を搭載した Studio ノートブックは、Kinesis Data Streams と Amazon MSK コンソールからワンクリックで作成することも、Kinesis Data Analytics コンソールから起動することもできます。
Kinesis Data Analytics Studio の一部としてコードを反復的に開発したら、ノートブックを Kinesis Data Analytics アプリケーションとしてデプロイし、ストリーミングモードでの継続的な実行、ソースからのデータの読み取り、送信先への書き込み、長時間実行されるアプリケーションの状態の維持、ソースストリームのスループットに基づいて自動的なスケーリングを行うことができます。以前、お客様は AWS でのリアルタイムストリーミングデータのインタラクティブな分析に Kinesis Data Analytics for SQL アプリケーションを使用していました。
Kinesis Data Analytics for SQL アプリケーションは引き続き使用できますが、新しいプロジェクトでは、新しい Kinesis Data Analytics Studio
Kinesis Data Analytics Flink アプリケーションに耐障害性を備えるには、「Kinesis Data Analytics for Apache Flink での耐障害性の実装」で説明されているように、チェックポイントとスナップショットを利用できます。
Kinesis Data Analytics Flink アプリケーションは、データ処理でexactly-one セマンティクス
Flink アプリケーションでストリーミングデータを処理した後、Amazon Kinesis Data Streams、Amazon Kinesis Data Firehose、Amazon DynamoDB、Amazon OpenSearch Service、Amazon Timestream、Simple Storage Service (Amazon S3) など、さまざまなシンクまたは送信先にデータを永続化できます。Kinesis Data Analytics Flink アプリケーションでは、1 秒未満のパフォーマンス保証も提供されます。
Kinesis Data Analytics 向け Apache Beam アプリケーション
Apache Beam
Kinesis Data Analytics アプリケーションで Apache Beam フレームワークを使用して、ストリーミングデータを処理できます。Apache Beam を使用する Kinesis Data Analytics アプリケーションは、 Apache Flink ランナー
概要
AWS ストリーミングサービスである Amazon Kinesis Data Streams、Amazon Kinesis Data Analytics、および Amazon Kinesis Data Firehose を利用することで、
ABC4Logistics は、温度測定値の異常なパターンを検出し、ドライバーと車両管理チームにリアルタイムで通知して、車両の完全な故障や火災などの重大な事故を防止できます。