EMQX Fleets
EMQX Fleetsは、EMQX Cloud上のフルマネージドIoTデバイス管理サービスです。EMQX ブローカーを基盤として構築されており、メッセージブローカーを完全なデバイスフリート管理プラットフォームに変えるアプリケーションレイヤーを追加しています。これにより、デバイスレジストリ、状態同期、リモートコマンド、バッチジョブのディスパッチをカバーします。
なぜEMQX Fleetsなのか?
MQTTブローカーはメッセージの輸送問題を解決しますが、どのデバイスがオンラインか、各デバイスの状態はどうか、設定変更をどのようにプッシュして適用を確認するか、数百台のデバイスにわたるファームウェア展開をどのように追跡するかといった問題には答えません。
Fleetsがなければ、EMQX Cloud上で構築する各チームはこれらのレイヤーを自分たちで作る必要があります。独自のデータベースにデバイスレジストリを作り、MQTT上に状態同期プロトコルを実装し、デバイスごとの追跡が可能なジョブスケジューリングシステムを構築します。Fleetsはこれらをマネージドサービスとして提供するため、アプリケーション開発に集中できます。
主な機能
デバイスレジストリ:Thing Typesでデバイススキーマを定義し、個々のデバイスをThingsとして登録、タグを使ってThing Groupsに整理できます。
デバイスシャドウ:クラウドの意図とデバイスの実際の状態を同期させる3状態モデル(reported、desired、delta)を採用し、切断時も同期を維持します。クラウドがdesired状態を書き込み、デバイスはそれに収束しつつ報告します。
デバイスクエリ: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はパブリックベータ期間中、スタータープランで利用可能です。サポートチケットを提出せずにコンソールからFleets作成ページにアクセスできます。
パブリックベータ期間中はFleetsインスタンス料金およびFleetsのアウトバウンドトラフィック料金は請求されません。コンソールには各ティアの参考インスタンス料金とアウトバウンドトラフィック料金が表示されます。
これまでにFleetsのトライアルデプロイメントを作成していない場合、最低ティアの10,000 Devicesで14日間の無料トライアルを1回利用できます。トライアルティアは変更できません。トライアル以外のデプロイメントは、10,000 Devicesから100,000 Devicesまでの任意のティアを選択でき、商用作成フロー完了には支払い方法の登録が必要です。
| 仕様 | 内容 |
|---|---|
| ベータ提供状況 | パブリックベータ |
| ベータ料金 | パブリックベータ期間中はインスタンス・アウトバウンド料金は請求されません |
| クラウドプラットフォーム | Google Cloud |
| リージョン | Iowa (us-central1)、Oregon (us-west1) |
| 最大デバイス数 | 10,000〜100,000 |
| ティア増分 | 10,000デバイス単位 |
| トライアル対象 | アカウントごとに1回、14日間の無料トライアル |
| トライアルティア | 10,000 Devicesのみ |
| ティア変更 | デプロイ作成後は非対応 |
詳細はEMQX Fleets プランおよびEMQX Fleets 料金をご参照ください。