IoT Central は、IoT のシナリオを迅速に評価できるようにするための既製の環境です。 このサービスは、アプリケーション・プラットフォーム・アズ・ア・サービス(aPaaS)のIoTソリューションであり、その主要なインターフェースはウェブUIです。 REST APIを使用すると、プログラムを通じてアプリケーションとやり取りすることができます。
この記事では、IoT Central ソリューション アーキテクチャの主要要素の概要を説明します。
IoT Central アプリケーションにおける主要な機能には次が含まれます:
デバイスを管理する
IoT Centralは、あなたのソリューションにデータを送信するIoTデバイスの群を管理することができます。 例えば、あなたは次のことができます:
- あなたのアプリケーションに接続できるデバイスと、その認証方法を制御します。
- アプリケーションに接続できるデバイスの種類を定義するために、デバイステンプレートを使用します。
- 接続されたデバイスに対してプロパティを設定したり、コマンドを実行したりしてデバイスを管理します。 例えば、サーモスタットデバイスの目標温度プロパティを設定したり、デバイスのファームウェアを更新させるためにコマンドを呼び出したりします。 プロパティを設定し、以下でコマンドを呼び出すことができます。
- 顧客の住所や最終サービス日などのデバイスメタデータを保持します。
データを表示して分析する
IoT Central アプリケーションでは、個々のデバイスまたは複数のデバイスからの集約データの確認と分析ができます。
- マッピングを使用し、複雑なデバイス テレメトリを IoT Central 内部の構造化データに変換します。
- デバイステンプレートを使用して、特定タイプの個々のデバイス向けにcustom viewsを定義します。 たとえば、個別のサーモスタットの温度を時間ごとにプロットしたり、配送トラックの現在の位置を表示したりすることができます。
- 内蔵のアナリティクスを使用して、複数のデバイスの集計データを表示します。 たとえば、複数の小売店にわたる総占有率を確認したり、最も高いまたは低い占有率を持つ店舗を特定したりすることができます。
- カスタムダッシュボードを作成して、デバイス管理を支援します。 たとえば、デバイスのテレメトリーを表示するために、地図、タイル、チャートを追加することができます。
あなたのソリューションを確保する
IoT Centralでは、以下の領域でセキュリティを構成および管理できます。
- アプリケーションへのユーザーアクセス。
- アプリケーションへのデバイスアクセス。
- アプリケーションへのプログラムによるアクセス
- アプリケーションから他のサービスへの認証。
- 監査ログはアプリケーション内の活動を追跡します。
詳細については、IoT Central セキュリティ ガイド をご覧ください。
デバイス
デバイスはセンサーからデータを収集し、IoT Centralアプリケーションにテレメトリのストリームとして送信します。 例えば、冷凍ユニットは温度値のストリームを送信し、配送トラックはその位置情報をストリーミングします。
デバイスはプロパティを使用して状態を報告することができ、たとえばバルブが開いているか閉じているかを示します。 IoT Central アプリケーションは、デバイスの状態を設定するためにプロパティを使用することもできます。たとえば、サーモスタットの目標温度を設定することができます。
IoT Centralは、デバイス上のコマンドを呼び出すことで、デバイスを制御することもできます。 たとえば、デバイスにファームウェア更新をダウンロードしてインストールするように指示することです。
デバイスが実装するテレメトリ、プロパティ、コマンドは、総称してデバイスの機能と呼ばれます。 デバイスとIoT Centralアプリケーションが共有するモデルでこれらの機能を定義します。 IoT Centralでは、このモデルは特定のタイプのデバイスを定義するデバイステンプレートの一部です。 詳細については、デバイスをデバイステンプレートに割り当てるを参照してください。
デバイスの実装は、IoTプラグアンドプレイの規約に従って行う必要があり、IoT Centralと通信できるようにするべきです。 詳細については、さまざまな言語のSDKやサンプルを参照してください。
デバイスは、対応しているプロトコルのいずれかを使用して IoT Central に接続します: MQTT、AMQP、または HTTP。
ゲートウェイ
ローカルゲートウェイデバイスは、次のようなさまざまなシナリオで有用です。
- デバイスはインターネットに接続できないため、IoT Central に直接接続することができません。 例えば、Bluetooth対応の占有センサーが複数あり、それらをゲートウェイデバイスを介して接続する必要がある場合があります。
- あなたのデバイスによって生成されるデータの量は多いです。 コストを削減するには、ローカル ゲートウェイ内でデータを結合または集計してから、IoT Central アプリケーションへ送信します。
- あなたのソリューションはデータの異常に迅速に対応することが求められます。 あなたのIoT Centralアプリケーションにデータを送信する必要なしに、ゲートウェイデバイス上で異常を検出しローカルでアクションを実行できるルールを実行できます。
ゲートウェイデバイスは通常、スタンドアロンデバイスよりも多くの処理能力を必要とします。 ゲートウェイデバイスを実装する1つの方法は、Azure IoT Edgeを使用して、標準的なIoT Edgeゲートウェイパターンの1つを適用することです。 また、適切なデバイスで独自のカスタムゲートウェイコードを実行することもできます。
データのエクスポート
IoT Central には内蔵の分析機能がありますが、データを他のサービスやアプリケーションにエクスポートすることもできます。
IoT Central データ エクスポート定義を変換すると、デバイス データの形式と構造を操作してエクスポートできるようになります。
データをエクスポートする理由として、以下が挙げられます。
ストレージと分析
長期的な保存およびアーカイブと保管ポリシーの管理のために、データを他の保存先に継続的にエクスポートすることができます。 IoT Centralの外部にある別のストレージサービスを利用することで、他の分析ツールを使用してソリューション内のデータから洞察を得ることができます。
業務自動化
IoT Central のルールは、IoT Central 内の条件に応じて、メールを送信したりイベントを発生させたりする外部アクションをトリガーできます。 例えば、デバイスの周囲温度がある基準値に達した場合、エンジニアに通知することができます。
追加の計算
データをIoT Centralまたは他のサービスで使用する前に、データを変換したり計算処理をしたりする必要があるかもしれません。 例えば、配送トラックが報告する位置データに地域の天気情報を追加することができます。
拡張するためのREST APIを使用する
他のアプリケーションやサービスがあなたのアプリケーションを管理できるようにする統合を構築します。 例えば、プログラムによってアプリケーション内のデバイスを管理したり、ユーザー情報を外部システムと同期化したりします。
スケーラビリティ
IoT Central アプリケーションは、Azure IoT Hub や Device Provisioning Service (DPS) などの複数の Azure サービスを内部的に使用します。 これらの基になるサービスの多くはマルチテナント型です。 顧客データの完全な隔離を確保するために、IoT CentralはシングルテナントのIoTハブを使用します。
IoT Central は、アプリケーションの読み込みプロファイルに基づいて IoT ハブを自動的にスケーリングします。 IoT Centralは、個々のIoTハブのスケールアップを行い、アプリケーション内のIoTハブの数をスケールアウトできます。 IoT Centralは他の基盤サービスも自動的にスケーリングします。
データエクスポート
IoT Central アプリケーションは多くの場合、他のユーザーが構成したサービスを使用します。 たとえば、IoT Centralアプリケーションを設定して、Azure Event HubsやAzure Blob Storageのようなサービスにデータを継続的にエクスポートすることができます。
設定されたデータエクスポートがその宛先に書き込めない場合、IoT Central は最大 15 分間データの再送信を試み、その後、宛先を失敗としてマークします。 失敗した送信先は、書き込み可能かどうか定期的に検証されます。
IoT Central のデータエクスポートを無効化して再度有効化することで、失敗したエクスポートを再開させることができます。
使用しているデータエクスポート先サービスの高可用性とスケーラビリティのベストプラクティスを確認してください。
- Azure Blob Storage: Azure ストレージの冗長化とBlob ストレージのパフォーマンスとスケーラビリティのチェックリスト
- Azure Event Hubs: Event Hubsの可用性と一貫性とEvent Hubsを用いたスケーリング
- Azure Service Bus: サービスバスの停止や災害からアプリケーションを保護するためのベストプラクティスおよびAzure Service Bus ネームスペースのメッセージングユニットを自動的に更新する
高可用性と災害復旧
IoT Central アプリケーションが作成された時期によって HADR の機能が異なります。
2021 年 4 月より前に作成されたアプリケーション
2021 年 4 月より前に作成された一部のアプリケーションでは、IoT ハブを 1 つ使用します。 これらのアプリケーションについては、IoT Central はHADR機能を提供しません。 IoTハブが利用できなくなると、アプリケーションも利用できなくなります。
`アプリケーションがまだ単一のIoTハブを使用しているかどうかを確認するには、az iot central device manual-failover
コマンドを使用します。` このコマンドは、アプリケーションが単一のIoTハブを持っている場合、エラーを返します。
2021年4月以降、2023年4月以前に作成されたアプリケーション
高度な可用性のあるデバイス接続のために、IoT Central アプリケーションは常に少なくとも2つのIoTハブを持っています。 IoT Centralが負荷プロファイルの変化に応じてアプリケーションをスケールすることで、ハブの数は増加したり減少したりする可能性があります。
IoT Centralは、利用するさまざまなサービスを高可用性にするために、アベイラビリティゾーンも利用しています。
ディザスター リカバリーが必要になるインシデントは、一部のサービスが使用できなくなるものから、リージョン全体が使用できなくなるものまで、広い範囲に及ぶ可能性があります。 IoT Central は、インシデントの性質と規模に応じて、異なる復旧プロセスを採用します。 例えば、甚大な障害の影響でAzureリージョン全体が利用できなくなった場合、災害復旧プロセスにより、同じ地理的区域内の別のリージョンへアプリケーションがフェイルオーバーされます。
2023 年 4 月以降に作成されたアプリケーション
2023年4月以降に作成されたIoT Centralアプリケーションには、最初に1つのIoTハブがあります。 IoTハブが利用できなくなると、アプリケーションも利用できなくなります。 IoT Central は、接続デバイスが 10,000 台増えるごとにアプリケーションを自動的にスケールし、新しい IoT ハブを追加します。 アプリケーションに 10,000 台未満のデバイスが含まれており、複数の IoT ハブが必要な場合は、IoT Central カスタマーサポートにリクエストを提出してください。
az iot central device manual-failover
コマンドを使用して、アプリケーションが現在単一のIoTハブを使用しているかどうかを確認します。 そのアプリケーションの IoT ハブが現在 1 つの場合、このコマンドはエラーを返します。