この概要では、Azure IoT ソリューションのスケーラビリティ、高可用性、ディザスター リカバリーのオプションに関する主要な概念について説明します。 各セクションには、追加の詳細とガイダンスを提供するコンテンツへのリンクが含まれています。
次の図は、一般的な エッジベースの IoT ソリューションのコンポーネントの概要を示しています。 この記事では、エッジベースの IoT ソリューションにおけるスケーラビリティ、高可用性、ディザスター リカバリーに関連する領域について説明します。
スケーラビリティ
IoT ソリューションでは、何百万もの接続された資産とデバイスをサポートする必要がある場合があります。 ソリューション内のコンポーネントがニーズに合わせてスケーリングできることを確認する必要があります。
マルチノード クラスターに Azure IoT Operations をデプロイして、増加するトラフィックやワークロードの需要を確実に処理できるようにします。 Azure IoT Operations をマルチノード クラスターで実行すると、より多くのデータを処理し、Kubernetes のスケーラビリティと高可用性の機能を利用できます。
フロントエンド レプリカとバックエンド パーティションを追加することで、Azure IoT Operations の MQTT ブローカーを水平方向にスケーリングできます。 フロントエンド レプリカは、クライアントからの MQTT 接続を受け入れ、バックエンド パーティションに転送する役割を担います。 バックエンド パーティションは、メッセージを格納してクライアントに配信する役割を担います。 フロントエンド ポッドは、バックエンド ポッド間でメッセージ トラフィックを分散します。 バックエンドの冗長係数によって、クラスター内のノード障害に対する回復性を提供するデータ コピーの数が決まります。 詳細については、「高可用性、 スケーリング、およびメモリ使用量のためのブローカー設定の構成」を参照してください。
Azure Device Registry は、資産のクラウドとエッジ管理を可能にするバックエンド サービスです。 デバイス レジストリには、エッジ環境で定義された資産がクラウド上の Azure リソースとして投影されます。 それによって単一の統合レジストリが提供されるため、資産を操作するすべてのアプリとサービスが 1 つのソースに接続できます。 Device Registry では、クラウド内の資産とエッジ上の Kubernetes のカスタム リソースとしての資産間の同期も管理されるため、ソリューションを何百万もの接続された資産にスケーリングできます。
データ フロー プロファイルをスケーリングして、データ フローを実行するインスタンスの数を調整できます。 インスタンス数を増やすと、データを処理する複数のクライアントを作成して、データ フローのスループットを向上させることができます。 クライアントあたりのレート制限があるクラウド サービスでデータ フローを使用するときは、インスタンス数を増やすと、レート制限内に留めるのに役立ちます。 スケーリングでは、障害が発生した場合の冗長性を提供することで、データ フローの回復性を向上させることもできます。 詳細については、「 データ フロー プロファイルのスケーリング」を参照してください。
高可用性とディザスター リカバリー
多くの場合、IoT ソリューションはビジネスに不可欠です。 障害が発生した場合にソリューションが動作し続けられるようにする必要があります。 また、障害の後でソリューションを復旧できるようにする必要もあります。
Azure IoT Operations は、エンタープライズ グレードで標準に準拠した MQTT ブローカーを備えています。 MQTT ブローカーはスケーラブルで可用性が高く、Kubernetes ネイティブです。 IoT Operations 用のメッセージング プレーンを提供し、双方向のエッジ/クラウド通信を可能にし、エッジではイベント ドリブン アプリケーションをサポートします。 デプロイのアップグレード時にデータ損失ゼロを確保し、高可用性を維持するために、MQTT ブローカーはポッド間でローリング更新を実装します。
状態ストアは、Azure IoT Operations の一部として配置される分散ストレージ システムです。 状態ストアを使用すると、アプリケーションはキーと値のペアを取得、設定、削除できます。Redis などのサービスをさらにインストールする必要はありません。 また、状態ストアには、データのバージョン管理と、高可用性アプリケーションに最適な分散ロックを構築するためのプリミティブも用意されています。 詳細については、「 状態ストアでのデータの永続化」を参照してください。
少なくとも 3 つのノードを持つマルチノード クラスターでは、Azure IoT Operations のデプロイ時に Azure Arc で有効化された Azure コンテナー ストレージを使用してストレージのフォールト トレランスを有効化するオプションがあります。
Dapr は MQTT ブローカーの一部として提供され、MQTT セッション管理、メッセージ QoS と受信確認、組み込みのキー値ストアの詳細を抽象化するため、高可用性アプリケーションを開発するための実用的な選択肢となります。
Azure IoT Operations SDK (プレビュー) は、Azure IoT Operations の高可用性アプリケーションの開発を支援するために設計された複数の言語にわたるツールとライブラリのスイートです。
Azure Device Registry の可用性ゾーンとリージョン間の高可用性については、「 Azure Device Registry の信頼性」を参照してください。