Azure IoT 参照アーキテクチャ

Blob Storage
関数
IoT Hub
IoT デバイス プロビジョニング サービス
Logic Apps
Stream Analytics

この記事では、Azure PaaS (サービスとしてのプラットフォーム) コンポーネントを使用する IoT アプリケーションの推奨アーキテクチャについて説明します。 次の図は、IoT ソリューションの設計に使用できるさまざまな Azure コンポーネントを示しています。 図に示すように、一般に使用されるサービスのほとんどが強調表示されていますが、それらのすべてが必要になるソリューションはありません。 Azure IoT を使い始めたばかりの場合、または最初の概念実証ソリューションを構築することを検討している場合は、ここから開始してください。

アーキテクチャの図

この参照アーキテクチャでは、Azure PaaS (サービスとしてのプラットフォーム) コンポーネントを使用します。 Microsoft では、aPaaS (サービスとしてのアプリケーション プラットフォーム) の IoT ソリューションプラットフォームである Azure IoT Central の使用を開始することを推奨しています。 これは、この参照アーキテクチャで説明されているのと同じ PaaS サービスの多くをプリアセンブル、スケーリング、管理して、IoT ソリューションのアセンブリと運用を簡素化および加速するように設計されています。 その結果、デバイスのフリートの大規模な接続、管理、運用に必要な機能を完備し、そのまますぐに使用できる UX と API サーフェスの領域が完成します。 ソリューションのニーズに基づいて、IoT Central (aPaaS) と Azure PaaS ソリューションのアプローチを比較する方法については、こちらで詳しく説明しています。

Azure IoT ソリューションには、データを生成する モノ (通常は デバイス)、データに関する 分析情報、分析情報に基づいて実行する アクション が含まれます。 温度データを送信するモーターを考えてみましょう。 このデータは、モーターが期待どおりの性能を発揮しているかどうかを評価するために使用されます。 この性能に関する分析情報を使用すれば、モーターのメンテナンス スケジュールの優先順位を設定できます。

デバイス

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

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

洞察

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

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

アクション

データについて収集された分析情報を使用して、環境を管理および制御できます。 ビジネス統合のアクションには、情報メッセージの保存、アラームの発生、電子メールまたは SMS メッセージの送信、CRM や ERP などのビジネス アプリケーションとの統合などがあります。 管理とビジネスの統合には、次のサービスを使用できます。

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

また、IoT ソリューション全体を監視して、セキュリティを確保できるように、いくつかのサービスが Azure から提供されています。 診断サービスには、Azure Monitor が含まれます。 Azure Active DirectoryAzure Defender for IoT などのセキュリティ サービスでは、セキュリティ設定、脅威の検出と対応が可能です。

Digital Twins

お客様は、接続された環境を制御および監視するためのメカニズムとして、Digital Twins について調べています。 デジタル ツインとは、ビジネス システムおよび IoT デバイスからのデータに基づいた実際の環境の仮想モデルです。 これを使用すれば、ビジネスまたは組織について分析し、その情報に基づいてアクションを実行できます。 開発者と設計者は、次のようなインテリジェントで接続された環境を実現するソリューションとして、デジタル ツインを検討しています。

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

大規模なデプロイ

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

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

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

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

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

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

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

セキュリティ

このセクションでは、安全なソリューションを構築するための考慮事項について説明します。

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

ゼロ トラストとは、侵害の発生を想定し、すべてのアクセス試行がオープン ネットワークからのものであるかのように処理するセキュリティ モデルです。 ゼロ トラストでは、ID の保護やアクセスの制限などの基本を実装していることを前提としています。 これには、ユーザーの明示的な検証、デバイスの可視化、リアルタイムのリスク検出を使用した動的アクセスの決定が含まれます。 基本を満たしている場合、IoT ソリューションの次のゼロ トラストの要件に焦点を当てることができます。

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

詳細については、モノのインターネットのゼロ トラストサイバーセキュリティに関するホワイトペーパーを参照してください。

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

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

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

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

物理的な改ざん防止

セキュリティの整合性とシステム全体の信頼性を確保するため、デバイスの設計に物理操作の試行を防御する機能を組み込むことを強くお勧めします。

次に例を示します。

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

セキュリティに関するその他の考慮事項については、「モノのインターネット (IoT) のセキュリティ アーキテクチャ」を参照してください。

信頼性とパフォーマンス

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

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

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

Azure ビジネス継続性テクニカル ガイダンス に関する記事では、ビジネス継続性とディザスター リカバリーについて考慮する際に役立つ一般的なフレームワークについて説明しています。 「 Azure アプリケーションのバックアップとディザスター リカバリー 」では、高可用性 (HA) とディザスター リカバリー (DR) を実現するための Azure アプリケーションの戦略に関するアーキテクチャ設計のガイダンスを確認できます。

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

コストに関する考慮事項

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

次の手順

ソリューション アーキテクチャの個々の部分の詳細については、次のトピックを参照してください。