EMQX Fleets
EMQX Fleetsは、EMQX Cloud上のフルマネージドIoTデバイス管理サービスです。EMQX ブローカーを基盤に構築されており、メッセージブローカーを完全なデバイスフリート管理プラットフォームに変えるアプリケーション層を追加しています。これにより、デバイスレジストリ、状態同期、リモートコマンド、バッチジョブの配信をカバーします。
なぜEMQX Fleetsなのか?
MQTTブローカーはメッセージの輸送問題を解決しますが、どのデバイスがオンラインか、各デバイスの状態はどうか、設定変更をどのようにプッシュしてデバイスが適用したことを確認するか、あるいは数百台のデバイスに対するファームウェアの展開をどのように追跡するかといった問題には答えません。
Fleetsがない場合、EMQX Cloud上で構築する各チームはこれらの層を自分たちで作る必要があります。つまり、自分たちのデータベースにデバイスレジストリを作り、MQTTの上に状態同期プロトコルを実装し、デバイスごとの追跡が可能なジョブスケジューリングシステムを構築します。Fleetsはこれらをマネージドサービスとして提供するため、アプリケーションに専念できます。
主な機能
デバイスレジストリ:Thing Typesでデバイススキーマを定義し、個々のデバイスをThingsとして登録、タグを使ってThing Groupsに整理できます。
デバイスシャドウ:報告状態(reported)、望ましい状態(desired)、差分(delta)の3状態モデルで、クラウドの意図とデバイスの現実を切断時も含めて同期します。クラウドは望ましい状態を書き込み、デバイスはそれに収束し報告します。
デバイスクエリ:SQLに似たクエリ言語でフリート全体を検索可能。接続状態、シャドウのプロパティ値、タグ、グループでフィルタリングできます。
コマンド:個々のデバイスにリアルタイムのリクエスト-レスポンスコマンド(例:ロック、アンロック、温度設定)を送信し、実行状況を追跡します。
ジョブ:デバイスグループに対してバッチ操作を配信し、各デバイスの実行進捗(キューイング、進行中、成功、失敗、タイムアウト)をライフサイクル全体で追跡します。
動作概要
デバイスはMQTT経由でEMQX ブローカーに接続するか、HTTPSでデータを送信します。EMQXのルールエンジンがデバイスのメッセージをFleetsバックエンドにルーティングします。Fleetsサービスはデバイスのメタデータと最新のシャドウ状態をPostgreSQLに保存し、時系列データ(イベント、シャドウ履歴)をEMQX Tablesに保存します。クラウドからデバイスへの通信(シャドウ更新、コマンド、ジョブ通知)はEMQX ブローカー経由で配信されます。
Device <──MQTT──> EMQX Broker <──> Fleets Backend
│ │ │
└──HTTPS──────────────┘ PostgreSQL
EMQX TablesFleetsはMQTTトピックを直接サブスクライブしません。すべてのダウンリンク通信はEMQX v5 REST APIを使用します。
各Fleetsデプロイメントは1つのEMQX ブローカーのデプロイメントに紐づきます。両者は同じプロジェクト内である必要があります。
EMQX Fleetsを使うべきケース
EMQX Fleetsはメッセージ輸送以上の機能を必要とするIoTアプリケーション開発者向けに設計されています。以下のような場合にFleetsを検討してください。
- スキーマベースのデバイスモデルを持つ永続的なデバイスレジストリが必要な場合
- デバイスが断続的に接続される場合も含め、クラウドとデバイス間で設定や状態を確実に同期したい場合
- デバイスにコマンドを送信し、実行結果を確認したい場合
- フリートに対してファームウェア更新や設定変更を展開し、デバイスごとの進捗を追跡したい場合
- ステータスやプロパティ、タグでデバイスフリートを検索・フィルタリングしたい場合
主なユースケース
- スマートハードウェア管理:どのデバイスがオンラインかを追跡し、設定更新をプッシュし、デバイスが適用したことを確認する。
- 産業用IoT:遠隔で機器の状態を監視し、制御コマンドを送信し、コンプライアンスや診断のためにイベントを記録する。
- ビルオートメーション:サーモスタット、ドアロック、センサーを大規模に管理し、信頼性の高い状態同期とコマンドのアックを実現する。
- ファームウェア展開:ジョブを使ってデバイスグループにファームウェア更新を配信し、デバイスごとの成功・失敗を監視する。
EMQX Fleetsと他のEMQX Cloud製品の比較
| EMQX ブローカー | EMQX Tables | EMQX Fleets | |
|---|---|---|---|
| 主な機能 | MQTTメッセージ輸送 | 時系列データストレージ | IoTデバイス管理 |
| 管理対象 | メッセージルーティング | テレメトリと時系列データ | デバイスID、状態、コマンド、ジョブ |
| 典型的なユーザー | MQTTを使う全ユーザー | データエンジニア、分析チーム | IoTアプリケーション開発者 |
プランと料金
EMQX Fleetsはプライベートベータ期間中、スタータープランで利用可能です。ベータ期間中はデプロイメントは無料で、コンソールにはインスタンスおよびイーグレスの参考価格が表示されます。
| 仕様 | 内容 |
|---|---|
| ベータ価格 | プライベートベータ期間中は無料 |
| クラウドプラットフォーム | Google Cloud |
| リージョン | アイオワ(us-central1)、オレゴン(us-west1) |
| 最大デバイス数 | 10,000〜100,000 |
| ティア増分 | 10,000デバイス単位 |
| ティア変更 | デプロイメント作成後は不可 |
詳細はEMQX FleetsプランおよびEMQX Fleets料金をご覧ください。