MQTTとは
MQTT(Message Queuing Telemetry Transport)は、IoTデバイス向けに設計された軽量なメッセージングプロトコルです。IBM原案で開発され、現在はOASIS標準(ISO/IEC 20922)です。低帯域幅・低消費電力環境でのデバイス間通信に最適化されており、スマートホーム・産業用センサー・自動車等のIoTシステムで広く使われます。
MQTTの基本的な仕組み
MQTTはPublish-Subscribe(パブサブ)モデルを採用しています。
- Broker:メッセージを仲介するサーバー(Mosquitto、AWS IoT、EMQX等)
- Publisher:トピックに対してメッセージを送信するデバイス(センサー等)
- Subscriber:特定トピックのメッセージを受信するデバイス(サーバー・アプリ等)
- Topic:メッセージのカテゴリ(例:/sensors/temperature/room1)
MQTTのQoSレベル
- QoS 0:最大1回送信(送達確認なし)→ 最軽量・高速
- QoS 1:最低1回送信(受信確認あり・重複の可能性)→ 一般的
- QoS 2:正確に1回送信(4方向ハンドシェイク)→ 最確実・最重い
2025年の最新動向
- MQTT 5.0:MQTT 3.1.1からの最新バージョン。セッション有効期限・理由コード・サブスクリプションオプション等が追加
- MQTT over WebSocket:ブラウザからのMQTT接続が一般化
- AWS IoT Core:MQTT対応のマネージドIoTプラットフォームが普及
よくある質問(FAQ)
Q. MQTTとは何ですか?
MQTTはIoTデバイス向けの軽量メッセージングプロトコルです。Publish-Subscribeモデルで、低帯域幅・低消費電力環境でのデバイス通信に最適化されています。スマートホーム・センサーネットワーク・自動車IoT等で広く使われます。
Q. MQTTとHTTPはどう違いますか?
HTTPはクライアントがサーバーにリクエストするリクエスト-レスポンス型で、頻繁な通信にはオーバーヘッドが大きいです。MQTTはブローカーを介したPublish-Subscribe型で、デバイスが常時接続して超軽量なメッセージを送受信します。IoTデバイスの常時監視・センサーデータ送信にはMQTTが適しています。
Q. MQTTブローカーには何を使えばよいですか?
オープンソースではEclipse Mosquitto(最も一般的・軽量)、EMQX(大規模・高性能)が人気です。クラウドマネージドサービスではAWS IoT Core、Azure IoT Hub、HiveMQがMQTTをサポートします。開発・テストにはHiveMQ Cloud無料プランが便利です。
