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デバイス管理 |
| 管理対象 | メッセージルーティング | テレメトリおよび時系列データ | デバイス識別、状態、コマンド、ジョブ |
| 主なユーザー | MQTTを使う全ユーザー | データエンジニア、分析チーム | IoTアプリケーション開発者 |
プランと料金
EMQX Fleetsはパブリックベータ期間中、スタータープランで利用可能です。サポートチケットを提出せずにコンソールからFleets作成ページを開けます。
パブリックベータ期間中は、Fleetsインスタンス料金およびFleetsのアウトバウンドトラフィック料金は請求されません。コンソールには各ティアの参考インスタンス料金とアウトバウンドトラフィック料金が表示されます。
これまでにFleetsのトライアルデプロイメントを作成していない場合、最低ティアの10,000 Devicesで14日間の無料トライアルを1回利用できます。トライアルティアは変更できません。トライアル以外のデプロイメントは、10,000 Devicesから100,000 Devicesまでの任意のティアを選択でき、作成完了には支払い方法の登録が必要です。
| 仕様 | 値 |
|---|---|
| ベータ提供 | パブリックベータ |
| ベータ料金 | パブリックベータ期間中はFleetsインスタンスおよびアウトバウンドトラフィック料金は請求されません |
| クラウドプラットフォーム | Google Cloud |
| リージョン | Iowa (us-central1), Oregon (us-west1) |
| 最大デバイス数 | 10,000〜100,000 |
| ティア増分 | 10,000デバイス単位 |
| トライアル資格 | アカウントごとに14日間の無料トライアル1回 |
| トライアルティア | 10,000 Devicesのみ |
| ティア変更 | デプロイメント作成後は非対応 |
詳細はEMQX FleetsプランおよびEMQX Fleets料金をご覧ください。