Azure IoT 参照アーキテクチャ

Azure Functions
Azure IoT Hub
Azure Stream Analytics
Azure Digital Twins

この記事の概要に従って Azure PaaS (サービスとしてのプラットフォーム) コンポーネントを組み立てることで、カスタムの IoT ソリューションを作成できます。 この記事とこの図では、IoT ソリューションによって一般的に使用される Azure コンポーネントとサービスについて説明します。ただし、これらのコンポーネントをすべて使用するソリューションは 1 つもありません。

アーキテクチャ

Diagram showing architecture for IoT applications using Azure PaaS components.

このアーキテクチャの Visio ファイルをダウンロードします。

ワークフロー

Azure IoT ソリューションには次が含まれます。

  • モノ (通常はデータを生成するデバイス)。
  • データに関連して形成する分析情報
  • 分析情報に基づいて実行するアクション

たとえば、モーターは温度データを送信します。 このデータを使用して、モーターが期待どおりの性能を発揮しているかどうかを評価します。 モーターのパフォーマンスに関する分析情報を使用して、メンテナンス スケジュールに優先順位を付けます。

デバイス

Azure IoT では、Azure RTOS と Azure Sphere を実行しているマイクロコントローラーから、MX Chip や Raspberry Pi などの開発者向けのボードまで、さまざまなデバイスをサポートしています。 Azure IoT では、カスタム コードを実行できるスマートサーバー ゲートウェイもサポートされています。 デバイスでは、Azure IoT Edge などのサービスを介して一部のローカル処理を実行したり、Azure に直接接続して、IoT ソリューションとの間でデータを送受信したりできます。

デバイスがクラウドに接続されている場合、データの取り込みを支援するサービスがいくつかあります。 Azure IoT Hub は、デバイスに安全に接続して管理できるクラウド ゲートウェイ サービスです。 Azure IoT Hub Device Provisioning Service (DPS) では、セキュリティで保護されたスケーラブルな方法で多数のデバイスを登録できる、ゼロタッチの Just-In-Time プロビジョニングが可能です。 Azure Digital Twins では、現実世界のシステムの仮想モデルを実現できます。

洞察

デバイスがクラウドに接続されたら、そのデータを処理して探索し、環境に関するカスタマイズされた分析情報を得ることができます。 データの処理方法には、大まかに言って、ホット パス、ウォーム パス、コールド パスの 3 種類があります。 それらのパスは、待機時間とデータ アクセスの要件が異なります。

  • ホット パスは、データが到着すると、ほぼリアルタイムでそのデータを分析します。 ホット パスのテレメトリには、非常に低遅延の処理が必要です。 ホット パスは通常、ストリーム処理エンジンを使用します。 Azure Stream AnalyticsAzure HDInsight などのサービスを使用することを検討してください。 出力でアラートをトリガーすることも、構造化された形式に書き込んで、それに対して分析ツールでクエリを実行することもできます。
  • ウォーム パスでは、詳細な処理の大幅な遅延に対応できるデータを分析します。 大量のデータを格納して分析するには、Azure Data Explorer を検討してください。
  • コールド パスは、より長い間隔 (毎時や毎日など) でバッチ処理を実行します。 コールド パスは通常、大量のデータに対して使用します。これは Azure Data Lake Storage に格納できます。 結果は、ホット パスやウォーム パスほどタイムリーである必要はありません。 コールド データを分析するには、Azure Machine Learningまたは Azure Databricks の使用を検討してください。

アクション

データについて収集された分析情報を使用して、環境を管理および制御できます。 ビジネス統合アクションには、次のものが含まれる場合があります。

  • 情報メッセージを格納する。
  • アラームを発生させる。
  • メールまたは SMS メッセージを送信する。
  • 顧客関係管理 (CRM) やエンタープライズ リソース プランニング (ERP) などのビジネス アプリケーションと統合する。

次のサービスを使用して、管理とビジネスを統合できます。

  • Power BI では、データに接続してモデル化し、視覚化します。 Power BI により、データについて共同作業し、人工知能を使用して、データに基づいた意思決定を行うことができます。
  • Azure Maps では、地理空間 API、SDK、および検索、マップ、ルーティング、追跡、トラフィックなどのサービスを使用して、場所に対応する Web およびモバイル アプリケーションを作成します。
  • Azure Cognitive Search では、さまざまな種類のコンテンツの検索サービスを提供します。 Cognitive Search には、インデックス作成、AI エンリッチメント、クエリの機能が含まれます。
  • Azure API Management では、すべての API を一元管理できます。
  • Azure App Service では、組織に合わせてスケーリングできる Web アプリケーションをデプロイします。
  • Azure Mobile Apps では、iOS、Android、Windows、Mac 用のクロス プラットフォーム アプリとネイティブ アプリを構築できます。
  • Dynamics 365 では、クラウド内の CRM と ERP を結合します。
  • Microsoft Power Automate (Microsoft Flow) は、アプリケーションやその他の SaaS サービス間でワークフローを自動化するための SaaS オファリングです。
  • Azure Logic Apps では、アプリ、データ、サービス、システムを統合するワークフローを作成して自動化します。

Azure はまた、IoT ソリューション全体を監視して、セキュリティを確保するための、いくつかのサービスも提供しています。 診断サービスには、Azure Monitor が含まれます。 Microsoft Entra IDMicrosoft Defender for IoT などのセキュリティ サービスでは、セキュリティ設定、脅威の検出、およびその応答を制御、表示、管理することができます。

コンポーネント

考慮事項

以降の考慮事項には、ワークロードの品質向上に使用できる一連の基本原則である Azure "Well-Architected Framework" の要素が組み込まれています。 詳細については、「Microsoft Azure Well-Architected Framework」を参照してください。

管理の容易性

Azure Digital Twins を使用して、接続されている環境を制御および監視できます。 デジタル ツインとは、ビジネス システムおよび IoT デバイスからのデータに基づいた実際の環境の仮想モデルです。 企業や組織は、デジタル ツインを使用して分析情報とアクションを有効にします。 開発者とアーキテクトは、デジタル ツイン ソリューションを使用すると、インテリジェントな、接続されている環境を実装するために役立ちます。以下にその例を示します。

  • 製造業における予測メンテナンス。
  • サプライ チェーンの可視性。
  • リアルタイム インベントリのスマート シェルフ。
  • 接続された自宅とスマート施設。

[信頼性]

信頼性により、顧客に確約したことをアプリケーションで確実に満たせるようにします。 詳細については、「信頼性の重要な要素の概要」を参照してください。

回復性がある IoT ソリューションで考慮すべき主な領域は、事業継続とディザスター リカバリーです。 高可用性 (HA) とディザスター リカバリー (DR) を設計すると、お客様のソリューションに必要なアップタイム目標を定義し、達成するのに役立ちます。

Azure サービスによって、冗長性とフェールオーバーに関するさまざまなオプションが提供され、ビジネス目標に最適なアップタイム目標を達成するのに役立ちます。 こうした HA/DR の代替方法のいずれかを IoT ソリューションに組み込むには、以下の条件間のトレードオフを慎重に評価する必要があります。

  • 必要な回復性のレベル。
  • 実装とメンテナンスの複雑さ。
  • 売却済商品の原価 (COGS) の影響。

サービス固有のパフォーマンス情報は、Azure IoT サービスの各ドキュメントで確認できます。

セキュリティ

セキュリティは、重要なデータやシステムの意図的な攻撃や悪用に対する保証を提供します。 詳細については、「セキュリティの重要な要素の概要」を参照してください。 このセクションでは、安全なソリューションを構築するための考慮事項について説明します。

ゼロ トラスト セキュリティ モデル

ゼロ トラストとは、侵害の発生を想定し、すべてのアクセス試行がオープン ネットワークからのものであるかのように処理するセキュリティ モデルです。 ゼロ トラストでは、ID の保護やアクセスの制限などの基本を実装していることを前提としています。

基本的なセキュリティの実装には、ユーザーの明示的な検証、デバイスの可視化、リアルタイムのリスク検出を使用した動的アクセスの決定が含まれます。 基本を実施した後に、IoT ソリューションの次のゼロ トラストの要件に焦点を当てることができます。

  • 強力な ID を使用してデバイスを認証します。
  • 最小限の特権アクセスを使用して、爆発半径を抑えます。
  • デバイスの正常性を監視し、修復のためにデバイスにアクセスしたり、デバイスにフラグを付けたりします。
  • 更新プログラムを実行して、デバイスを正常な状態に保ちます。
  • 新たな脅威を検出して対応できるように監視します。

信頼できるセキュリティで保護された通信

デバイスと送受信するすべての情報は、信頼できる必要があります。 デバイスで次の暗号化機能をサポートできないのであれば、そのデバイスをローカル ネットワークに制限し、すべてのネットワーク間通信をフィールド ゲートウェイを経由して行う必要があります。

  • 証明可能な安全性を備え、公的に分析され、広く実装されている対称キー暗号化アルゴリズムを使用したデータの暗号化とデジタル署名。
  • TCP またはその他のストリーム ベースの通信パス向けの TLS 1.2、またはデータグラム ベースの通信パス向けの DTLS 1.2 のいずれかのサポート。 X.509 証明書処理のサポートはオプションです。 X.509 証明書の処理は、より計算効率が高く転送効率の高い TLS の事前共有キー モードで置き換えることができます。このモードは、AES および SHA-2 のアルゴリズムをサポートするために実装できます。
  • 更新可能なキー ストアとデバイスごとのキー。 各デバイスには、システムに対して認証を行う一意のキー マテリアルまたはトークンが必要です。 デバイスは、(セキュリティで保護されたキー ストアを使用するなどして) キーを安全に保存する必要があります。 デバイスは、キーまたはトークンを定期的、またはシステムのセキュリティ侵害などの緊急の状況では事後的に更新できる必要があります。
  • デバイスのファームウェアとアプリケーション ソフトウェアは、更新プログラムが検出されたセキュリティの脆弱性を修復できるようする必要があります。

多くのデバイスでは、制約が多すぎてこれらの要件をサポートできません。 その場合は、フィールド ゲートウェイを使用する必要があります。 デバイスは、ローカル エリア ネットワーク経由でフィールド ゲートウェイに安全に接続し、ゲートウェイはクラウドへのセキュリティで保護された通信を有効にします。

物理的な改ざん防止

推奨されるデバイスの設計には、セキュリティ、整合性、システム全体の信頼性を確保するために、物理操作の試行を防御する機能が組み込まれています。

次に例を示します。

  • セキュリティで保護されたストレージを備え、トラステッド プラットフォーム モジュール (TPM) の統合などの暗号化キー マテリアルを使用する、マイクロコントローラー/マイクロプロセッサまたは補助ハードウェアを選択します。
  • セキュリティで保護されたブート ローダーとセキュリティで保護されたソフトウェアの読み込みを TPM で支えます。
  • センサーを使用して、侵入の試みや、アラートを生成したりデバイスの "デジタル自己破壊" を引き起こしたりするおそれがあるデバイス環境の操作を検出します。

コストの最適化

コストの最適化とは、不要な費用を削減し、運用効率を向上させる方法を検討することです。 詳しくは、コスト最適化の柱の概要に関する記事をご覧ください。

一般的に、コストを見積もるには、Azure 料金計算ツールを使用します。 その他の考慮事項については、Microsoft Azure Well-Architected Framework のコストに関するセクションに説明されています。

パフォーマンス効率

パフォーマンス効率とは、ユーザーによって行われた要求に合わせて効率的な方法でワークロードをスケーリングできることです。 詳細については、「パフォーマンス効率の柱の概要」を参照してください。

グローバルなスケールでデプロイするソリューションを構築します。 最適なスケーラビリティを実現するには、個々に拡張できる個別のサービスによって IoT アプリケーションを構築します。 このセクションでは、いくつかの Azure サービスのスケーラビリティに関する考慮事項について説明します。

IoT Hub

各 IoT Hub は、特定の価格とスケール階層で特定のレベルのユニット数でプロビジョニングされます。 レベルとユニット数により、デバイスがハブに送信できるメッセージの 1 日あたりの最大クォータが決定されます。 詳細については、IoT Hub のクォータと調整に関するページを参照してください。 既存の操作を中断することなく、ハブをスケール アップすることができます。

IoT Hub については、次のスケール係数を検討してください。

  • IoT Hub に送信されるメッセージの日単位の最大クォータ
  • IoT Hub インスタンスで接続されたデバイスのクォータ。
  • インジェストのスループット: IoT Hub がメッセージを取り込むことができる速度。
  • 処理スループット: 受信メッセージの処理速度。

デバイス ID に基づいて、IoT Hub によりデバイス メッセージが自動的にパーティション分割されます。 特定のデバイスからのメッセージはすべて、常に同じパーティションに送信されますが、1 つのパーティションが複数のデバイスからのメッセージを受け取ります。 そのため、並列処理の単位はパーティション ID です。

Azure Functions

Azure FunctionsAzure Event Hubs エンドポイントから読み取る場合、イベント ハブ パーティションあたりの関数インスタンスには最大数が存在します。 最大処理レートは、1 つの関数インスタンスが 1 つのパーティションからイベントを処理できる速度によって決まります。 この関数は、メッセージをバッチで処理する必要があります。

Stream Analytics

Stream Analytics ジョブは、クエリへの入力から出力まで、Stream Analytics パイプラインのすべてのポイントで並列化されると最適にスケーリングされます。 完全な並列ジョブにより、Stream Analytics は複数のコンピューティング ノード間で作業を分割することができます。 詳細については、「Azure Stream Analytics でのクエリの並列処理の活用」を参照してください。

共同作成者

この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。

プリンシパル作成者:

  • Matthew Cosner | プリンシパル ソフトウェア エンジニアリング マネージャー

その他の共同作成者:

パブリックでない LinkedIn プロファイルを表示するには、LinkedIn にサインインします。

次の手順