次の方法で共有


Azure IoT Hub のアーキテクチャのベスト プラクティス

Azure IoT Hub は、IoT アプリケーションとその接続されたデバイス間の通信用の中央メッセージ ハブとして機能する、マネージド クラウド ベースのサービスです。 ほぼすべてのデバイスとそのバックエンド ソリューションを大規模な IoT ハブに確実に接続できます。

この記事では、アーキテクトとして、 IoT ソリューションの作成に使用できるテクノロジとサービス を確認し、ワークロードの Azure IoT プラットフォーム サービスとして IoT Hub を選択したことを前提としています。 この記事のガイダンスでは、Well-Architected Framework の柱の原則にマップされるアーキテクチャに関する推奨事項を示します。

Technology scope

このレビューでは、次の Azure リソースに関する相互に関連する決定に焦点を当てます。

  • Azure IoT Hub
  • Azure IoT Hub Device Provisioning Service (DPS)
  • Azure Device Update for IoT Hub
  • Azure IoT Edge
  • Azure Digital Twins
  • Azure Sphere
  • Microsoft Defender for IoT

Reliability

信頼性の柱の目的は、十分な回復性と障害から迅速に回復する機能を構築 、継続的な機能を提供することです。

信頼性設計の原則、個々のコンポーネント、システム フロー、およびシステム全体に適用される高度な設計戦略を提供します。

ワークロード設計チェックリスト

信頼性 設計レビュー チェックリストに基づいて、設計戦略を開始します。 IoT Hub のパフォーマンスを考慮しながら、ビジネス要件との関連性を判断します。 必要に応じて、より多くのアプローチを含むように戦略を拡張します。

  • 回復性のためにデバイスを設計する。 エンド ツー エンド ソリューションのアップタイムと可用性の要件を満たすようにデバイスを設計します。 IoT デバイスがクラウドへの断続的な接続で効率的に動作できることを確認します。

  • ビジネス要件の設計。 サービス レベル アグリーメントを満たすためにアーキテクチャの変更を導入した場合のコストへの影響を考慮してください。 たとえば、信頼性と高可用性を高めるために、リージョン間の冗長性と自動スケール システムを実装できます。 トレードオフを慎重に検討してください。

  • 安全で簡単な更新手順を実装します。 オペレーターがエンタープライズ IoT ソリューションでデバイスを管理するための戦略を作成します。 IoT オペレーターには、シンプルで信頼性の高い更新ツールとプラクティスが必要です。

  • アプリケーションの正常性を確認します。 可観測性に基づいて、サービス レベル インジケーター (SLI) とサービス レベル目標 (SLO) を定義します。 IoT Hub に含まれるプロセスに加えて、監査、監視、アラートのプロセスを追加します。

  • 重要なコンポーネントの高可用性とディザスター リカバリーを実装します。 リージョン間の冗長性など、冗長性を高める回復性のあるハードウェアおよびソフトウェア コンポーネントを計画します。

  • 容量を計画します。 サービス クォータとスロットルを計画し、検出とアクションの間に発生する待機時間を考慮します。 中断されないデータ フローをサポートするために、運用スケールでベンチマークを確立します。

Configuration recommendations

Recommendation Benefit
1 日あたりのメッセージ数やその他の制限など、必要な IoT Hub 容量を計算します。 ワークロードに変動する容量要件がある場合は、需要に基づいて容量を増減できるように自動スケール メカニズムを実装します。 詳細については、「 ソリューションに適した IoT Hub レベルとサイズを選択する」を参照してください 動的スケーリングは、リソースの使用を最適化するのに役立ちます。 リソースをオーバープロビジョニングすることなく、ソリューションの応答性と信頼性を維持するのに役立ちます。
デバイスの再接続戦略を IoT Hub に追加して、回復性の高いアプリケーションを設計します。 詳細については、「デバイスの 再接続の管理」を参照してください。 IoT デバイスは、多くの場合、断続的または不安定なネットワーク接続に依存します。 再接続戦略を使用すると、ユーザーの介入なしにワークロードを復旧できるため、可用性が向上します。
IoT Hub のさまざまな 高可用性オプションとディザスター リカバリー オプション のトレードオフを評価します。 IoT ソリューションのアップタイムの目標に応じて、ビジネス目標に最も適したオプションを決定します。 Choose between Microsoft-initiated failover, manual failover, and cross-region high availability. フェールオーバー戦略は、ワークロードをバックアップ インスタンスにすばやく切り替えるのに役立ちます。これにより、ユーザーとビジネス操作への影響を最小限に抑えることができます。
Use DPS to provision your devices and assign them to an IoT hub. DPS は、人の介入を必要とせずに、ゼロタッチの Just-In-Time プロビジョニングを可能にするヘルパー サービスです。 DPS を使用すると、非常に安全でスケーラブルな方法で何百万ものデバイスをプロビジョニングできます。
Device Update for IoT Hub を使用して、IoT デバイスの Over-the-air 更新を管理します。 更新戦略に、段階的なロールアウト、回復性の高い A/B 更新プログラム、詳細な管理、レポート ツールが含まれていることを確認します。 このアプローチにより、IoT デバイスの安全で安全で信頼性の高い更新プログラムが保証され、ダウンタイムが短縮され、運用効率が向上します。 デバイスのコンプライアンスを維持し、更新プログラムの障害をすばやく特定して解決し、システム全体の信頼性を高めます。
継続的インテグレーションと継続的デプロイ (CI/CD)、監視、自動更新など、IoT ソリューションを管理するための DevOps プラクティスを実装します。

- DevOps を使用して、IoT Edge アプリケーションをビルドしてリリースします
- Azure Monitor を使用して、IoT Hub によって収集されたデータを監視し、アラートを取得します
- IoT Hub の自動デバイス管理を使用して、デバイスの大規模な管理を自動化します
DevOps プラクティスにより、IoT ソリューションの信頼性と効率が向上します。 迅速なデプロイ、継続的な監視、および自動更新が可能になります。 これらの機能により、ダウンタイムが短縮され、システムのパフォーマンスが向上し、更新プログラムと変更が安全かつ一貫してデプロイされます。

セキュリティ

セキュリティの柱の目的は、ワークロードに対して機密性、整合性、可用性を保証することです。

セキュリティ設計の原則は、IoT Hub の技術的な設計にアプローチを適用することで、これらの目標を達成するための高度な設計戦略を提供します。

ワークロード設計チェックリスト

セキュリティ 設計レビュー チェックリストに基づいて設計戦略を開始し、セキュリティ体制を改善するための脆弱性と制御を特定します。 必要に応じて、より多くのアプローチを含むように戦略を拡張します。

  • 強力な ID を使ってデバイスとユーザーを認証します。 セキュリティを強化するためのプラクティスを実装します。 たとえば、次の手順を実行する必要があります。

    • 信頼された ID の信頼のハードウェア ルートを持っている。
    • Register devices.
    • 更新可能な資格情報を発行します。
    • パスワードレス認証または多要素認証 (MFA) を使用します。
  • 最小限の特権を持つアクセス制御を自動化して使用します。 侵害されたデバイスまたは ID、または未承認のワークロードの影響を制限します。

  • デバイスの正常性を評価します。 デバイスの正常性を評価してアクセスを制御するか、修復のためにデバイスを識別します。 セキュリティ構成を確認し、脆弱性と安全でないパスワードを評価し、脅威と異常を監視し、継続的なリスク プロファイルを構築します。

  • デバイスの更新プログラムを実装します。 継続的な更新を実装して、デバイスを正常に保ちます。 一元化された構成とコンプライアンス管理ソリューションと堅牢な更新メカニズムを使用して、デバイスが up-toして正常であることを確認します。

  • システムのセキュリティを監視し、インシデント対応を計画します。 未承認または侵害されたデバイスを事前に監視し、新たな脅威に対応します。

  • 安全性の高い接続を確保します。 IoT デバイスと IoT クラウド サービスの間で送信されるすべてのデータが機密で改ざんされないようにします。

Configuration recommendations

Recommendation Benefit
デバイスにゼロ トラスト条件を適用します。 IoT Hub に接続するデバイスでは、次のことが必要です。
- 強力な ID 用の ハードウェア セキュリティ モジュール が含まれています。
- Use renewable credentials.
- 最小特権アクセス制御を適用します。
- 条件付きアクセス用の適切な正常性シグナルを出力します。
- 侵害された場合に IoT Hub からデバイスを取り消すようオペレーターに警告します。

デバイスには次のものが含まれている必要があります。
- セキュリティ更新プログラムのエージェントを更新します。
- クラウド駆動型の構成と自動セキュリティ対応のためのデバイス管理機能。
- 物理的な攻撃フットプリントを最小限に抑えるために有効になっている必要な機能のみ。
- 標準の暗号化アルゴリズムによる保存データ保護
IoT Hub に接続するデバイスのゼロ トラスト条件により、セキュリティと信頼性が向上します。

ハードウェア セキュリティ モジュール、更新可能な資格情報、最小特権のアクセス制御により、未承認のアクセスと侵害されたデバイスを最小限に抑えます。

条件付きアクセスおよび更新エージェントの正常性シグナルは、デバイスがセキュリティで保護され、準拠していることを確認するのに役立ちます。 クラウド主導のデバイス管理と自動セキュリティ対応とセキュリティ エージェントにより、セキュリティ体制が強化されます。

物理的な攻撃フットプリントが小さく、保存時のデータ保護によって機密情報が保護され、システムの整合性を維持するのに役立ちます。
X.509 証明書を使用して、IoT Hub に対してデバイスを認証します。 詳しくは、「X.509 証明書を使用して ID を認証する」をご覧ください。 運用環境での X.509 ベースの認証では、セキュリティ トークンと比較してセキュリティが強化されます。
IoT デバイスの最小特権アクセスをレイヤー化します。 Use network segmentation to group IoT devices. この方法により、侵害の可能性がある影響が軽減されます。

たとえば、プリンター、VoIP 電話、スマート テレビなどのデバイスの "IoT ネットワーク" に IoT デバイスを接続できます。 この IoT ネットワークは、従業員がアクセスする他の組織リソースとは別に保持します。

ネットワークマイクロセグメント化を使用して、専用の運用技術環境を企業の情報技術ネットワークから論理的に分離します。 この分離を作成するには、ファイアウォールを含む境界ネットワーク アーキテクチャを使用します。 成熟した組織は、通常は次世代ファイアウォールを使用して、Purdue モデルの複数のレイヤーでマイクロセグメント化ポリシーを実装することもできます。
ネットワーク セグメント化では IoT デバイスがグループ化され、侵害の影響を軽減できます。

ネットワークマイクロセグメント化は、ゲートウェイの背後または個別のネットワーク セグメント上のネットワーク層で、能力の低いデバイスを分離します。
Azure でリソースを保護するために、防御の最前線として Microsoft Defender for IoT を使用します。

Defender for IoT は、IoT デバイスの継続的な資産検出、脆弱性管理、脅威検出を提供する、エージェントレスのネットワーク層セキュリティ プラットフォームです。
Defender for IoT は、承認されていないデバイスまたは侵害されたデバイスをすばやく特定するための継続的な監視と脅威検出を提供します。 IoT ネットワークの全体的なセキュリティと回復性が強化されます。
Use IoT Hub with Azure Sphere as a guardian module to help secure other devices, including existing legacy systems that you can't rely on for trusted connectivity.

Azure Sphere ガーディアン モジュールは、アプリケーションと共にデプロイし、イーサネット、シリアル、または Bluetooth Low Energy (BLE) を介して既存のデバイスとインターフェイスします。 デバイスがインターネットに直接接続されているわけではありません。
Azure Sphere ガーディアン モジュールは、これらのデバイスをインターネットに公開することなく、既存のデバイスに高度にセキュリティで保護された接続を実装する方法を提供します。 この保護には、暗号化されたデータ転送、高度にセキュリティで保護された OS とアプリケーションの更新、および信頼されたホストとの通信のみを保証する認証が含まれます。
IoT Edge ゲートウェイを使用して、能力の低いデバイスに強力な ID パターンを適用します。

IoT Edge は、IoT Hub へのエッジ ランタイム接続を提供し、強力なデバイス ID として証明書をサポートします。 IoT Edge では、トラステッド プラットフォーム モジュール (TPM) またはハードウェア セキュリティ モジュール上のデバイス製造 ID とその他のシークレットに対する PKCS#11 標準がサポートされています。
IoT Edge ゲートウェイは、認証されたデバイスと承認されたデバイスのみがネットワーク内で通信できるように、強力な ID パターンを適用するのに役立ちます。 この機能により、IoT エコシステムのセキュリティと整合性が強化されます。

Cost Optimization

コストの最適化では、支出パターンの検出 、重要な領域への投資の優先順位付け、ビジネス要件を満たしながら組織の予算を満たすために他の での最適化に重点を置いています。

コスト最適化の設計原則は、IoT Hub とその環境に関連する技術設計において、これらの目標を達成し、必要に応じてトレードオフを行う高度な設計戦略を提供します。

ワークロード設計チェックリスト

投資のコスト最適化 設計レビュー チェックリストに基づいて、設計戦略を開始します。 ワークロードの設計を、そのワークロードに割り当てられた予算に合わせて微調整します。 設計では、適切な Azure 機能を使用し、投資を監視し、時間の経過と同時に最適化する機会を見つける必要があります。

  • コスト管理規範を開発する。 総保有コスト (TCO) を理解するには、プランの機能コストと非機能コストの両方を考慮します。

  • 業界標準の戦略とアプローチを使用します。 製造などの IoT 固有の業界では、 業界標準の戦略とアプローチ を使用して、構造、IoT システム、スマート シティ、またはエネルギー グリッドを構築します。 このアプローチは、コストを最適化するのに役立ちます。

  • IoT ソリューションを保護するためのコストについて理解します。 IoT は、ハードウェアからクラウド サービスまでのプロセス全体をカバーするため、すべての段階でセキュリティ関連の費用が発生します。 たとえば、マイクロプロセッサ ユニット (MTU)、デバイス、通信、クラウド テクノロジ、運用テクノロジのコストが発生する可能性があります。

  • レート最適化の設計。 コストを最適化するために、 IoT ソリューション全体の懸念事項 ごとに実装計画を定義します。

  • 時間の経過に伴う監視と最適化。 IoT Hub のコストを継続的に監視して最適化します。 ソリューションを実装した後、継続的なコスト最適化アクティビティを実行します。

  • 現実的なコストを見積もります。 IoT ソリューションの開発フェーズと運用フェーズに適した IoT Hub レベルとサイズ を選択します。

  • 1 回限りのコストと定期的なコストを評価します。 1 回限りのコストと繰り返しのコストのコストメリットを考慮してください。 たとえば、ハッキング手法は継続的に進化するため、信頼性の高い商用オペレーティング システムや Azure Sphere などのモジュールを使用できます。 1 回限りのお支払いの場合、このようなサービスでは、毎月のデバイス セキュリティ パッチが継続的に提供されます。

  • リソースの使用を最適化する。 Implement autoscaling mechanisms to adjust the IoT Hub capacity based on demand. このアプローチは、リソースの効率的な使用とコスト管理を保証するのに役立ちます。

  • 予約容量を使用します。 メッセージ ペイロードのサイズと頻度を評価して、IoT Hub のサイズが適切に設定され、スケーリングの準備が整っていることを確認します。

  • コストアラートと予算を実装します。 Microsoft Cost Management でコスト アラートと予算を設定して、支出を効果的に追跡および制御します。 Use cost management APIs for IoT Hub and DPS.

Configuration recommendations

Recommendation Benefit
IoT Hub のクォータと調整の制限、およびソリューションが運用環境で大規模に実行される場合の TCO への影響について説明します。

コスト モデルは、運用環境で大規模なデバイス、インフラストラクチャ、運用、監視を考慮する必要があります。
各サービスには、独自のクォータと調整制限のセットがあります。 コストを最適化するために、IoT Hub でのこれらの制限を理解します。
デバイス エコシステムと、ハードウェアの製造元、アプリ開発者、計画のためのオペレーターなど、関連するさまざまな役割について説明します。 デバイスの範囲は、デスクトップ コンピューターにあるような、小型の 8 ビット MCU から高度な x86 CPU までです。 詳細については、「 IoT ソリューション内のデバイス構成のベスト プラクティス」を参照してください。

選択するハードウェアは、多くの変数によって異なります。 コストを削減するために、IoT デバイスの 主要なハードウェアの差別化要因 について理解します。
デバイスの範囲と主要なハードウェアの差別化要因を理解すると、リソースをより効果的に割り当てることができます。 これにより、適切なタスクに適切なデバイスを使用することが保証され、パフォーマンスとコスト効率が向上します。
IoT プラグ アンド プレイを使用して、ハードウェア開発とオンボード時間を短縮します。 デジタル ツイン定義言語 (DTDL) 業界のオントロジを採用します。これは、デバイスがその機能を IoT プラグ アンド プレイ対応アプリケーションにアドバタイズするために使用するモデルです。 ソリューション ビルダーは、IoT プラグ アンド プレイを使用して、IoT デバイスを手動で構成せずに IoT Hub と統合できます。
Device Update for IoT Hub を使用して、オンプレミスの更新プログラムを配信し、デバイスをリモートで管理します。 デバイスのファームウェアまたはソフトウェアをリモートで更新するソリューションは、長期的な手動労働コストを削減するのに役立ちます。
Power Apps、Power Automate、Azure Logic Apps などの Azure サービス用のコネクタを使用します。

IoT Hub and Azure Event Grid together provide connectors to implement your requirements within Logic Apps and Power Automate.
コネクタを使用すると、IoT デバイスとさまざまな Azure サービス間のシームレスな統合が可能になり、自動化されたワークフローと強化されたデータ処理機能が可能になります。
Use device simulators and set up a load testing environment to test the solution at production scale and understand the solution cost.

Azure IoT デバイス テレメトリ シミュレーターなどのシミュレーション コード サンプルは、さまざまなパラメーターを使用して大規模なコストのテストと見積もりを行うのに役立ちます。
デバイス シミュレーターは、シナリオの結果をモデル化、テスト、およびシミュレートするために、大規模なコストを節約するのに役立ちます。
伝送サイズとコストを削減するには:
- IoT デバイスに適したプロトコルを選択します。
- エッジでテレメトリを圧縮します。
- Batch messages on the device.
- デバイスが起動したときに接続を維持するか、再接続するかを選択します。
- コストが重要な場合は、 デバイス ツイン機能 を使用して状態情報を非同期的に交換します。

バッテリ駆動の IoT デバイスの場合は、デバイスが起動したときに接続を維持するか再接続するかを選択できます。 キープアライブ メッセージ (ハートビート メッセージ) を使用してデバイスの状態を確認しますが、送信の余分なネットワーク コストを考慮してください。

再接続では、約 6 KB のデータを使用して TLS 接続を確立し、デバイスを認証し、デバイス ツインを取得します。 ただし、デバイスが 1 日に 1 回または 2 回だけウェイクアップすると、バッテリ容量が節約されます。
シナリオに最適なプロトコルにより、デバイスは転送層の伝送サイズとコストを削減できます。
Understand how to use hot, warm, and cold path analytics for IoT data, and apply the lambda architecture. Use the built-in message routing feature in IoT Hub. IoT ソリューションでは、大量のデータを格納できます。 ストレージ コストは、ソリューション全体のコストの大部分を占めます。 ビジネス シナリオに基づいて、適切な処理とストレージプランを選択します。

Operational Excellence

オペレーショナル エクセレンスは主に、開発プラクティス、可観測性、リリース管理の手順に重点を置いています。

オペレーショナル エクセレンス設計原則、ワークロードの運用要件に対してこれらの目標を達成するための高度な設計戦略を提供します。

ワークロード設計チェックリスト

IoT Hub に関連する監視、テスト、デプロイのプロセスを定義するための オペレーショナル エクセレンスの設計レビュー チェックリスト に基づいて、設計戦略を開始します。

  • 継続的な運用とスケーリングを採用する。 IoT ソリューションで次のことができることを確認します。

    • 自動デバイス プロビジョニングを正常に管理します。
    • 他のバックエンド システムと統合します。
    • ソリューション開発者、ソリューション管理者、オペレーターなど、さまざまなロールをサポートします。
    • 新しくデプロイされた IoT デバイスやより高いインジェスト スループットなど、オンデマンドの変更に効率的に適応してスケーリングします。
  • ビルドとリリースのプロセスを最適化します。 エンタープライズ IoT ソリューションを成功させるには、デバイスまたはデバイスの構成のフリートを確立して更新する戦略が必要です。 デバイスの構成には、デバイスのプロパティ、接続設定、リレーションシップ、ファームウェアが含まれます。 IoT オペレーターには、デバイスの有効期間中の任意の時点でデバイスまたはデバイスのフリートの構成を更新するためのシンプルで信頼性の高いツールが必要です。

  • 運用の正常性を理解する。 IoT ソリューションのログ記録、監視、およびアラート システムを使用して、ソリューションが期待どおりに機能しているかどうかを判断し、ソリューションのライフサイクル全体の問題のトラブルシューティングに役立ちます。

  • 自動化と DevOps を使用します。 IoT デバイスは基本的に、特殊なハードウェアとソフトウェアを備えた小さなコンピューターです。 多くの場合、IoT デバイスはハードウェアで制約されます。 たとえば、メモリやコンピューティング容量が制限されている可能性があります。 自動化と DevOps は、OS とソフトウェアを IoT デバイスとゲートウェイに適切にアップロードしてデプロイし、運用上のダウンタイムを最小限に抑えるのに役立ちます。 自動化と DevOps を使用して、IoT デバイスのライフサイクルを監視および管理します。

Configuration recommendations

Recommendation Benefit
IoT Hub 自動デバイス管理または IoT Edge 自動デプロイを使用して、既存または新しいデバイス、および IoT Edge デバイス構成 (プロパティ、アプリケーション固有の設定、リレーションシップなど) への継続的な更新を実装します。

1 回限りのスケジュールまたは定期的なスケジュールに基づいて既存のデバイスまたは IoT Edge デバイス構成を更新するには、 IoT Hub のスケジュールされたジョブを使用します。

既存のデバイスまたは IoT Edge デバイスのファームウェア、アプリケーション、またはパッケージの更新プログラムを一通り更新するには、 Device Update for IoT Hub を使用します。

IoT デバイスの手動更新方法を使用する。 ルート証明書の変更や接続の問題により、ローカル コンピューターに物理的に接続するか、BLE などのローカル接続プロトコルを使用して、デバイスを手動で更新することが必要になる場合があります。
IoT Hub の自動デバイス管理と IoT Edge 自動デプロイは、フリートまたは特定のデバイス グループの構成デプロイを自動化する、非常に効率的で安全で信頼性の高い方法を提供します。 デバイスに指定された構成があることを確認するために、サービスはタグに基づいて、新規および既存のターゲット デバイスとその構成を継続的に監視します。

IoT Hub のスケジュールされたジョブは、スケジュールされた時刻にフリートまたは特定のデバイス グループの構成を更新するための最適な方法を提供します。

Device Update for IoT Hub は、フリートまたは特定のデバイス グループを効率的に更新します。
予想される予期しない容量のニーズを効率的に処理するように、IoT クラウド ソリューションのインジェストとその他のバックエンド レイヤーを構成します。 ソリューションが接続された製品にリンクされている場合は、IoT Hub と関連するバックエンド レイヤー内の予想される負荷の変動を処理できることを確認します。 販売やプロモーションなどのマーケティングイニシアチブや、休日などの季節イベントは、負荷のピークを生み出す可能性があります。 ソリューションをスケーリングしてピークを処理できるようにするには、予想されるイベントと予期しないイベントの負荷のバリエーションをテストします。
IoT Hub REST API で公開されている REST API を使用して一元管理 UI を構築し、運用チームがデバイス フリートを管理できるようにします。 一元化されたデバイス管理ソリューションにより、IoT デバイスの管理、監視、運用が効率化され、IoT ソリューション全体で効率的なライフサイクル管理と一貫性のある構成が保証されます。 統合 UI は、運用チームがデバイスフリートを効果的に管理するのにも役立ちます。これにより、運用の複雑さが軽減され、システム全体の信頼性が向上します。
マネージド ID を作成するには、 Microsoft Entra ID などの一元化された ID プロバイダーを使用 します。 新しいデバイスの作成とプロビジョニング、フィールド内のハードウェアへのコマンドの送信、更新プログラムの展開、ユーザーのアクセス許可の変更など、これらのロールの適切なユーザーのみが管理または操作アクティビティを実行できるようにします。 認証用の Microsoft Entra ID は、従来のセキュリティ トークンと比較して、セキュリティと使いやすさが向上します。 Microsoft Entra ID で Azure ロールベースのアクセス制御 (RBAC) を使用して、IoT Hub へのアクセスを制御できます。
IoT Hub ベースのソリューションでは、Microsoft Entra ID を使用して、デバイス ID の作成やダイレクト メソッドの呼び出しなどの IoT Hub サービス API への要求を認証できます。 ソリューションオペレーターと管理者向けのカスタム管理 UI を開発できます。 この UI は、Microsoft Entra ID に対してユーザーを認証し、代わりに API 要求を IoT ソリューション バックエンドに送信します。 カスタム管理 UI では、RBAC やその他のセキュリティ対策を組み込むことでセキュリティが向上します。 また、複雑なタスクを簡略化する直感的なインターフェイスを提供することで、ユーザー エクスペリエンスを向上させます。
IoT Hub のログ記録、監視、アラート システムを使用して、ソリューションが期待どおりに機能しているかどうかを判断し、問題のトラブルシューティングと軽減に役立ちます。 IoT Hub によって作成されるメトリックとログの詳細については、 IoT Hub 監視データのリファレンスを参照してください 監視とログ記録は、デバイスまたはシステムでエラーが発生しているかどうかを判断し、正しく構成し、正確なデータを生成し、定義済みの SLO を満たすのに役立ちます。
CI/CD DevOps の原則とプロセスを使用して生産性を向上させ、シームレスな迅速な開発サイクルを作成します。 Azure Pipelines の組み込みの IoT Edge タスクを使用して、IoT Edge アプリケーションに DevOps を採用します。 詳細については、「 IOT Edge デバイスへの CI/CD」を参照してください。 IoT Hub と IoT Edge の DevOps ツールとプロセスは、エッジ ソフトウェアライフサイクルの自動化に役立ちます。
IoT デバイスの再プロビジョニングとプロビジョニング解除を行うプロセスを定義します。 詳しくは、次の情報をご参照ください。 IoT Hub デバイスの再プロビジョニングの概念を参照してください。 IoT デバイスのライフサイクルには、既存のデバイスを他の場所または目的に再プロビジョニングする手順を定義し、必要に応じて安全にプロビジョニング解除することが含まれます。 IoT デバイスの再プロビジョニングとプロビジョニング解除プロセスは、そのライフサイクルを管理するのに役立ちます。 これらのプロセスは、IoT ハブ間でデバイスの状態情報と構成を移行するときに、操作の継続性を維持するのに役立ちます。 この方法は、移動後もデバイスが正常に機能し続けるのに役立ちます。
高可用性を確保するために、 IoT Hub のフェールオーバーとフェールバック をテストします。 Document recovery steps for Microsoft-initiated failover and manual failover.

障害発生時にアプリケーションをセカンダリ Azure リージョンに復旧またはフェールオーバーするために必要な手順を体系化して自動化します。 このプラクティスは、障害に効果的に対応し、影響を最小限に抑えるのに役立ちます。 同様に、問題に対処した後、アプリケーションをプライマリ リージョンにフェールバックする手順を体系化して自動化します。
フェールオーバーとフェールバックの手順テストは、IoT ソリューションが障害を処理し、高可用性を維持できることを確認し、障害の影響を最小限に抑えるのに役立ちます。

Microsoft が開始するフェールオーバーと手動フェールオーバーの両方に関する文書化された復旧手順は、フェールオーバー シナリオを処理するための明確で構造化されたアプローチを提供します。これにより、チーム メンバーは手順を認識し、効率的に実装できます。
Bicep テンプレートや Azure Resource Manager テンプレート (ARM テンプレート) などのコードとしてのインフラストラクチャ (IaC) 言語を使用して 、すべての IoT Hub、DPS、バックエンド インフラストラクチャ構成を定義して格納します。 環境間で一貫してリソースを自動的にデプロイできるように、インフラストラクチャ全体を IaC として定義します。

ID とアクセス管理 (IAM) またはガバナンス ツール (Azure RBAC や Azure Policy など) を使用して、インフラストラクチャへの書き込みアクセスを制御します。

構成設定またはインフラストラクチャの更新を自動化されたパイプラインに制限します。 この方法を使用すると、環境でどのような変更が行われるかを確認できます。
IoT Hub や DPS などの IoT ソリューション リソースをプロビジョニングおよび構成するための反復可能で予測可能なプロセスは、エラーとダウンタイムを減らすのに役立ちます。

Azure DevOps や GitHub などの DevOps ツールは、構成、IaC、ファームウェアのバージョンを追跡するのに役立ちます。 バージョン追跡は、各環境のファームウェア、構成、および IaC のバージョンを識別するのに役立ちます。
運用環境と同じファームウェア、構成設定、および IaC を使用するテスト環境を作成します。 これらの環境を簡単に作成するには、IaC を使用し、可能な限りプロセスを自動化します。 テスト環境と運用環境の照合は、新機能とホットフィックスの開発とテストを簡素化するのに役立ちます。

Performance Efficiency

パフォーマンス効率とは、容量の管理により、負荷が増加してもユーザー エクスペリエンスを維持することです。 この戦略には、リソースのスケーリング、潜在的なボトルネックの特定と最適化、ピーク パフォーマンスの最適化が含まれます。

パフォーマンス効率設計の原則、予想される使用に対してこれらの容量目標を達成するための高度な設計戦略を提供します。

ワークロード設計チェックリスト

IoT Hub の主要業績評価指標に基づいてベースラインを定義するための パフォーマンス効率の設計レビュー チェックリスト に基づいて、設計戦略を開始します。

  • 水平スケーリングの設計。 IoT ソリューションは、数百のデバイスまたはメッセージから始まり、1 分あたり数百万のデバイスとメッセージにまで拡大できます。 IoT Hub と関連するクラウド サービスは、負荷の増加に簡単に対処できますが、IoT デバイスとゲートウェイは複雑になります。 ソリューションを完成する前に、IoT デバイスを設計してデプロイできます。 産業用 IoT のような業界には、数年(多くの場合数十年)続くデバイスがあります。 デバイスを更新容量に置き換えると、大幅なコストが発生する可能性があるため、事前に計画する必要があります。

  • パフォーマンスを早期にテストします。 早期にテストし、頻繁にテストして問題をすばやく特定します。 通信の特性、速度、信頼性が異なる地理的に異なる場所にあるセンサー、デバイス、ゲートウェイなど、複雑さを生み出す可能性がある変数について理解します。 テストでこの複雑さを計画します。 ネットワーク切断などの障害シナリオをテストします。 IoT Hub と関連するクラウド サービス内のすべてのデバイス、エッジ、クラウド コンポーネントのストレステストとロード テストを行います。

  • 運用環境のパフォーマンスを継続的に監視します。 複数の地理的リージョンのさまざまな種類のデバイスを監視するには、分散監視ソリューションを使用します。 メモリとパフォーマンスのコストと、監視してクラウドに送信する情報の量とのバランスを取ります。 診断シナリオの伝送を調整し、複数のレベルとレイヤーで監視します。 産業用ソリューションまたはゲートウェイ対応ソリューションのゲートウェイ メトリックを公開します。

Configuration recommendations

Recommendation Benefit
ハードウェア機能を最適化します。 ハードウェアのアップグレードと交換により、コストと時間が増加する可能性があります。 必要な容量と機能に合わせて IoT デバイスのサイズを事前に設定します。

To optimize existing hardware capabilities, use efficient languages and frameworks like Embedded C and Rust Embedded. 制約付きデバイス用に開発する場合、またはほとんどのセキュリティと通信スタックがデバイスで使用できる場合は、 Azure IoT Embedded C SDK を使用します。
特定のハードウェアで実行されるコンピューティングタスクと入出力集中型タスクは、パフォーマンスを大幅に向上させることができます。 たとえば、ローカル GPU で実行される機械学習アルゴリズムは、中央プロセッサから処理をオフロードできるため、より高速で効率的な計算が作成されます。

効率的な言語とフレームワークを使用すると、パフォーマンスを向上させ、リソースの消費量を削減できます。

Azure IoT device SDK for C では、クラウド ゲートウェイに接続できるように、必要なすべてのコンポーネントが効率的に管理されます。 Azure IoT デバイス SDK は、回復性のある接続に必要なメッセージ変換、エラー処理、再試行メカニズムを処理し、既存のハードウェア機能の使用を最適化します。
ネットワーク スループットや待機時間などのシステム制約に応じて、エッジで一部のワークロードを実行することを検討してください。 エッジのワークロードは、生成された場所に近い場所でデータを処理するため、待機時間を短縮し、応答性を向上させます。 この方法により、一定のクラウド接続の必要性が最小限に抑えられます。これにより、ネットワーク アクセスが断続的または制限されるシナリオにメリットがあります。 また、クラウドから処理をオフロードするのにも役立ちます。これにより、帯域幅の使用量と関連するコストが削減されます。
地域の停電の後など、すべてのデバイスを一度に接続しないでください。 再試行を行う場合は、ジッターを発生する切り捨てられた指数バックオフを使用します。 この方法では、再接続の試行が時間の経過と同時に分散されるため、ネットワークの輻輳とサーバーの過負荷を防ぐことができます。 これにより、より安定した信頼性の高い再接続プロセスが作成され、他の障害やパフォーマンスの低下のリスクが軽減されます。 適切に管理された再接続の試行は、IoT Hub の全体的な正常性とパフォーマンスを維持するのに役立ちます。
オフライン シナリオを最適化します。 クラウド接続なしで動作し、データをローカルに格納して切断や再起動から回復できるように、デバイスに十分な情報とコンテキストを提供します。 デバイス ツインとモジュール ツインを使用して、IoT Hub への断続的な接続を持つデバイスのデバイスとクラウドの間で状態情報を非同期的に同期します。

期限切れのデータが自動的に削除されるように、データに Time to Live (TTL) を設定します。 この方法により、手動による介入の必要性が軽減されます。

エッジ デバイス ストレージが容量に達した場合は、キャッシュ削除戦略 (先入れ先出し、先入れ先出し、優先順位ベースの戦略など) を使用して、ストレージを効率的に管理します。 ストレージが少ない場合でもデバイス ランタイムまたはアプリケーションが引き続き動作できるように、別のディスクまたはディスク コントローラーを使用してデータを格納することを検討してください。
接続されていないときに、優先順位に従ってログやキャッシュされたテレメトリなど、データをローカルに格納できるデバイスは、切断中に機能を維持するのに役立ちます。 デバイスが接続されていない場合は、重要度の低いデータを破棄して、デバイスが再接続するときのローカル ストレージ要件と同期時間を短縮します。

データを格納する別のディスクまたはディスク コントローラーは、ストレージの制限によって重要な操作が中断されないようにするのに役立ちます。
メッセージングの効率を最適化します。 IoT Hub では、4 KB のメッセージ サイズに基づいて 、毎日のクォータ メッセージ数が計算されます。 小さいメッセージを送信すると、容量が未使用のままになります。 使用を最適化するには、4 KB に近いメッセージ サイズを目指します。 メッセージの合計数を減らすには、小さいデバイスからクラウドへのメッセージをより大きなメッセージにグループ化します。 ただし、メッセージを結合するときに発生する待機時間に注意してください。

アプリケーション レベルのバッチ処理を実装するには、ダウンストリーム デバイスで複数の小さいメッセージを結合し、より大きなメッセージをエッジ ゲートウェイに送信します。

ユーザーが指定したタイムアウトの直後に成功または失敗する可能性がある要求/応答操作には、ダイレクト メソッドを使用します。この方法は、デバイスが応答したかどうかによってアクションの経過が異なるシナリオに使用します。

メタデータや構成など、デバイスの状態情報にはデバイス ツインを使用します。 IoT Hub では、接続するデバイスごとにデバイス ツインが保持されます。
デバイスからクラウドへのメッセージの数とサイズは、IoT ソリューションのパフォーマンス効率にとって重要なパラメーターです。 IoT Hub では、レベルごとのメッセージ制限が定義されており、ソリューションのパフォーマンスとコストに影響します。

バッチ処理は、メッセージのオーバーヘッドを制限し、ローカル エッジ ディスク ストレージへの書き込みを減らすのに役立ちます。
メッセージング クォータと調整について説明します。 IoT Hub レベルでは、クラウド ゲートウェイ ユニットごとに制限が設定されます。 メッセージング クォータは、階層の持続的スループットと持続送信レートを定義します。 IoT Hub では、これらのクォータを超える負荷を短時間処理して、バーストや負荷のオーバーシュートを回復力のある方法で処理できます。

もう 1 つの重要な制限は、時間単位または毎日のサービス負荷またはスロットル制限です。 スロットル制限により、長時間にわたって IoT ハブが過剰な負荷から保護されます。
IoT ソリューションが定義された制限内で動作することを保証するために役立つメッセージング クォータと調整について説明します。 この方法では、オーバーロードを防ぎ、パフォーマンスを維持します。 システムの全体的な安定性に影響を与えずにバーストと負荷オーバーシュートを処理できるように、負荷を効果的に管理します。

このアプローチは、信頼性が高く効率的な IoT ソリューションを維持するのに役立ち、過剰な負荷が原因でサービスが中断される可能性を防ぎます。
メッセージ処理を最適化します。 クラウドにデータを送信するために使用する形式を最適化します。 データ形式を最適化し、帯域幅コストと比較してクラウド処理を削減する利点を比較検討します。 IoT Hub メッセージ エンリッチメントを使用して、デバイス メッセージにコンテキストを追加することを検討してください。

未処理のデータを格納したり、複雑なクエリでデータを取得する必要が生じたりするのではなく、取り込まれたデータに対してタイム クリティカルなイベント処理を行います。 タイム クリティカルなイベント処理の場合は、遅延データの到着とウィンドウ化の影響を考慮してください。 重要なアラームの処理やメッセージのエンリッチなど、ユース ケースに基づいてアプローチを評価します。

ソリューションの要件に基づいて、Basic または Standard IoT Hub レベルを選択します。 Basic レベルでサポートされていない機能について説明します。

発行/サブスクライブ イベント ルーティングに Event Grid を使用することを検討してください。 詳細については、「 Event Grid を使用した IoT Hub イベントへの対応」を参照してアクションをトリガー し、 メッセージ ルーティングと Event Grid for IoT Hub を比較します
ストレージの前に、デバイスまたはゲートウェイからのメッセージの変換、処理、または強化が必要になる場合があります。 この手順には時間がかかる場合があるため、パフォーマンスへの影響を評価する必要があります。

一部の推奨事項は競合します。たとえば、データ転送を最適化するための圧縮の使用や、メッセージの暗号化解除でのクラウド処理の回避などです。 これらの推奨事項を他のアーキテクチャの柱やソリューション要件とバランスを取って評価します。
IoT Edge 優先度キューを使用して、IoT Hub に送信する重要なデータに優先順位を付けます。 IoT Edge は、接続がない場合にメッセージをバッファーします。 接続が復元されると、バッファー内のすべてのメッセージが最初に優先順位で送信され、その後に新しいメッセージが送信されます。

IoT Hub メッセージ ルーティングを使用して、ユース ケースに応じて異なるデータ優先度のルートを分離します。 IoT Hub メッセージ ルーティングにより、待機時間が増加します。

Save and send low-priority data at longer intervals, or use batch or file uploads. アップロードされたファイルに対するマルウェア検出により、待機時間が長くなります。

時間の制約に基づいてメッセージを分離します。 たとえば、時間制約がある場合は IoT Hub に直接メッセージを送信し、時間制約がない場合は IoT Hub 経由のファイル アップロードや Azure Data Factory などのバッチ データ転送を使用します。 ファイルのアップロードには、 IoT Edge モジュールの Azure Blob Storage を使用できます。
デバイスがクラウドに送信する一部のデータは、他のデータよりも重要な場合があります。 優先順位に基づいてデータを分類して処理し、パフォーマンス効率を向上させます。 たとえば、サーモスタット センサーは温度、湿度、その他のテレメトリを送信しますが、温度が定義された範囲から逸脱した場合にもアラートを送信します。 システムは、アラーム メッセージを高優先度として分類し、温度テレメトリとは異なる方法で処理します。
プロビジョニング中、IoT Hub 接続が使用できない場合、またはデバイスの再起動中に、DPS を使用して IoT ハブへの接続を設定します。

均等に重み付けされた分散ポリシーを使用して、ユース ケースに基づいてプロビジョニングの重みを調整します。 このアプローチでは、リソースの割り当てが最適化されます。
DPS は、デバイスが安全かつ効率的にプロビジョニングされるようにするのに役立ちます。 デバイスを一定期間または小規模なバッチでプロビジョニングすると、DPS の負荷とクォータのバランスを取ることができます。これにより、スムーズなオンボード プロセスが保証されます。

待機時間に基づいて異なるリージョンの IoT Hub にデバイスを割り当てると、パフォーマンスが向上し、接続時間が短縮されます。 DPS 接続文字列のキャッシュ戦略を実装すると、再接続操作が減り、システム全体の効率が向上します。
エッジとクラウドの処理を最適化します。 ローカル コンピューティングを使用して、リアルタイムでほぼリアルタイムのワークロードを実行するか、デバイスまたはエッジで時間の制約がある小さな最適化された低待機時間の処理を実行します。 大規模なワークロード、または追加の外部データまたはコンピューティングの依存関係を必要とするワークロードの場合は、クラウド リソースを使用します。

たとえば、エッジで機械学習アルゴリズムを実行して、ビデオ ストリーム内のユーザーをカウントし、その数を含むイベントをクラウドに送信できます。 このアプローチでは、ローカルでの迅速な処理と効率的なクラウドベースの傾向分析が提供されます。

Azure Stream Analytics IoT Edge モジュールを使用して、異常検出などの分析ワークロードをエッジで実行します。 このプラクティスは、検出された異常を含むイベントをクラウドに送信する前にラベル付けするのに役立ちます。これにより、システム全体の効率が向上します。

多数の接続されたダウンストリーム デバイスを含むエッジ ワークロードのオーバーヘッドについて説明します。 エッジ ノードは、すべてのメッセージを転送または処理し、断続的なクラウド接続がある場合は、すべてのデータをキャッシュする必要があります。

ソリューションに対するパフォーマンスの影響を評価するには、各エッジ ノードで予想される最大ダウンストリーム デバイスとメッセージを使用してソリューションをテストします。 また、メッセージ変換またはエンリッチメントがエッジ、IoT Hub、またはクラウド イベント処理に与えるパフォーマンスの影響についても理解します。 システムの効率を維持するために、それに応じて計画します。
エッジでリアルタイムでほぼリアルタイムのワークロードを実行すると、待機時間の短い処理と即時の応答時間が提供されます。これは、時間の影響を受けやすいアプリケーションにとって非常に重要です。

ダウンストリーム デバイスとメッセージの予想される最大値を使用してテストすることで、エッジ ノードが負荷を処理し、パフォーマンスを維持できます。
大量のクラウド データのパフォーマンス効率を最適化するには、IoT Hub と Azure Data Lake Storage や Azure Data Explorer などのデータ変換先の間に組み込みのサービス統合を使用します。 これらのサービスは、高パフォーマンススループット用に最適化されています。

Event Hubs SDK を使用して、IoT ハブからカスタム インジェストを開発します。 SDK には、デバイスとホストを再調整できるイベント プロセッサが含まれています。 同時データ リーダーの数と必要なスループットには、適切な数の IoT Hub パーティションとコンシューマー グループを使用します。

データ インジェストとイベント処理に必要なストレージと、レポートと統合に必要なストレージを分離します。 必要なスループット、サイズ、保有期間、データ ボリューム、CRUD 要件、リージョン レプリケーションに基づいて、ニーズに合ったデータ ストレージを使用します。 ストレージの例としては、Data Lake Storage、Azure Data Explorer、Azure SQL、Azure Cosmos DB などがあります。 詳細については、「 アプリケーションの Azure データ ストアを選択する」を参照してください
大量のクラウド データのパフォーマンス効率を最適化することで、IoT ソリューションで大量のデータを効率的に処理できます。 組み込みのサービス統合と Event Hubs SDK は、データインジェストと処理を効率化するのに役立ちます。

さまざまな目的で IoT Hub パーティションとコンシューマー グループと個別のストレージを適切に構成すると、データ管理が向上します。 特定のニーズに基づく適切なデータ ストレージは、IoT ソリューションのパフォーマンス、スケーラビリティ、信頼性を維持するのに役立ちます。
IoT ソリューション インジェスト パイプラインを統合処理から分離します。 複雑なクエリまたは読み込みが IoT Hub のデータ インジェストのパフォーマンスに影響しないことを確認します。 デバイス ツイン、モジュール ツイン、ジョブ、メッセージ ルーティングに関する IoT Hub 情報にアクセスするには、適切に定義されたバージョン管理された API を使用します。 エンド ユーザーが IoT Hub ストレージに対してユーザー定義クエリを作成できないようにします。 統合とレポートに個別のデータ ストアを使用することを検討してください。 IoT ソリューション インジェスト パイプラインと統合処理を分離することで、統合レイヤーからの複雑なクエリや読み込みがデータ インジェストのパフォーマンスに影響を与えないようにします。 このアプローチにより、IoT Hub の効率と信頼性が維持されます。
Azure Monitor を使用して IoT Hub メトリックを収集し、重要なメトリックのアラートを送信します。 1 秒あたりに送信されるデバイスからクラウドへのメッセージなど、スケール制限に基づいて Azure Monitor アラートを設定します。 事前に通知するために、アラートを制限の割合 (75%など) に設定します。 調整エラーの数など、ログとメトリックの Azure Monitor アラートを設定します。 IoT Hub の状態が変化したときに通知をトリガーするように Azure Service Health サービスアラートを設定します。 重要なメトリックの IoT Hub メトリックとアラートにより、IoT ソリューションのプロアクティブな監視と管理が保証されます。 スケール制限とそれらの制限の割合に基づくアラートは、スケーラビリティの制限に達する前に通知を受け取り、タイムリーに調整できるようにします。 調整エラーなどのログとメトリックのアラートは、問題を特定して迅速に対処するのに役立ちます。 IoT Hub の状態が変化した場合のアラートは、潜在的な中断を認識し、IoT ソリューションの信頼性とパフォーマンスを維持するために必要なアクションを実行できるようにします。

Azure policies

Azure には、IoT Hub とその依存関係に関連する広範な組み込みポリシー セットが用意されています。 上記の推奨事項の一部は、Azure Policy を使用して監査できます。 たとえば、次のことを確認できます。

  • IoT Hub には、サービス API のローカル認証方法が無効になっています。
  • パブリック インターネット経由でアクセスできないように、IoT Hub デバイス プロビジョニング インスタンスのパブリック ネットワーク アクセスは無効になっています。
  • IoT Hub には、プライベート エンドポイントからのみアクセスできます。
  • IoT Hub のリソース ログが有効になっています。 これらのログは、セキュリティ インシデントまたはネットワーク侵害の後の調査に役立つアクティビティ 証跡を再作成します。

包括的なガバナンスについては、IoT ソリューションのセキュリティに影響する可能性がある モノのインターネットやその他のポリシーに関する Azure Policy の組み込み定義 を確認します。

Azure Advisor の推奨事項

Azure Advisor は、Azure デプロイを最適化するためのベスト プラクティスに従うのに役立つ、パーソナライズされたクラウド コンサルタントです。 Advisor の推奨事項は、Well-Architected Framework の柱に沿っています。

For more information, see the recommendations in Azure Advisor.

Next step

IoT Hub のドキュメント