ある大手製造業が、全世界の工場センサーデータ(1秒あたり500万イベント)をリアルタイムで分析し、異常を検知した場合は5秒以内に保全チームへアラートを送信するシステムを設計している。同時に、過去データは長期保管してトレンド分析に使いたい。最小限の運用負荷で両要件を満たす最も適切なアーキテクチャはどれか。
- A. Azure Cosmos DB にイベントをリアルタイム書き込み → Change Feed で Azure Functions を起動 → 集計ロジックを Functions 内に実装してアラート送信
- B. Azure IoT Hub でイベントを受信 → Azure Blob Storage にバッファリング → 5分ごとに Azure Databricks ジョブで異常検知バッチ処理
- C. Azure Event Hubs でイベントを受信 → Azure Stream Analytics でウィンドウ集計・異常検知 → アラートは Logic Apps で送信、同時に Azure Data Lake Storage Gen2 にアーカイブ
- D. Azure Service Bus でイベントを受信 → Azure Functions で1秒ごとに集計処理 → 結果を Azure SQL Database に書き込み、保全チームはクエリで確認
解答と解説を見る
正解: C
毎秒500万イベントのリアルタイム処理と5秒以内の異常検知アラートには、高スループットイベント取り込みの Event Hubs、ウィンドウ集計・閾値ベース異常検知を SQL ライクなクエリで宣言的に定義できる Stream Analytics、ワークフロー自動化の Logic Apps、そして長期保管の ADLS Gen2 を組み合わせるアーキテクチャが最も適切で運用負荷も低い。選択肢 D の Azure Service Bus は高スループットのイベントストリームより低レイテンシメッセージキュー向けであり、500万/秒のスループットには Event Hubs が推奨される。また Functions でのカスタム集計実装は開発・運用コストが高くなる。選択肢 B は5分ごとのバッチ処理であり、5秒以内のリアルタイムアラート要件を満たせない。選択肢 A の Cosmos DB + Change Feed は書き込み中心のユースケースに有効だが、500万/秒の大量イベント取り込みと時系列ウィンドウ集計に適した設計ではなく、コストと複雑性が増大する。
📚 関連サービスの解説: Azure Stream Analytics