Microsoft Azureコラム
Writer:手戸 蒼唯(てど あおい)
MQTTとは?IoTシステムに最適な通信プロトコルの特徴とユースケース
IoTシステムの構築において、通信プロトコルの選択とても重要です。近年特に注目を集めているのが、軽量で柔軟性の高いMQTT(Message Queuing Telemetry Transport)です。センサーデータの収集から設備監視まで、幅広い用途で活用されているMQTTの特徴と、具体的な導入メリットについて解説します。IoTプロジェクトの計画段階にある方は、ぜひ参考にしてください。
関連資料

MQTTの基礎知識:IoTに最適な通信プロトコル
MQTTとは?
MQTT(Message Queuing Telemetry Transport)は、IoTデバイス向けの軽量な通信プロトコルです。IBMとArcom Control Systems(のちにEurotechが買収)によって開発されたもので、軽量なIoT向けのプロトコルとして標準化されました。TCP/IP上で動作し、低リソース環境に適しています。省電力かつCPU負荷も軽いことから、2014年にOASISにより正式に標準規格となりました。
その最大の特徴は、最小限のネットワーク帯域幅とデバイスリソースで、信頼性の高い双方向通信を実現できる点です。MQTTは、接続が途切れやすいネットワーク(例:モバイル環境やエッジデバイス)向けに、軽量かつ再接続に強い設計がされています。
Publish/Subscribeモデルの仕組み
MQTTは、従来のクライアント・サーバーモデルとは異なる、Publish/Subscribe(発行/購読)モデルを採用しています。このモデルでは、データを送信する側(Publisher)と受信する側(Subscriber)が、トピックと呼ばれる論理的なチャネルを介して通信を行います。
例えば、工場の温度センサーシステムでは、以下のような構成となります。
- 温度センサー(Publisher)が「factory/area1/temperature」というトピックにデータを発行
- 監視システム(Subscriber)が同じトピックを購読して、データを受信
- 複数のSubscriberが同じトピックを購読可能
- トピックは階層構造を持ち、柔軟なデータ管理が可能
このモデルにより、送信者と受信者が互いを意識することなく、効率的なデータ配信が可能になります。
MQTTのPublish/Subscribeモデルの仕組み

MQTTブローカーの役割と重要性
MQTTブローカーは、PublisherとSubscriber間の通信を仲介する中心的な役割を果たします。具体的には以下のような機能を提供します。
- メッセージの配信管理:適切なSubscriberへのメッセージ配信
- QoS(Quality of Service)の保証:通信の信頼性確保
- セッション管理:クライアントの接続状態の監視
- セキュリティ制御:認証・認可の実施
これらの機能により、IoTシステムに必要な信頼性とセキュリティを確保しながら、スケーラブルな通信基盤を実現できます。
MQTTが必要とされる背景
IoTの普及により、製造現場で収集すべきデータは急増しています。このデータ収集のために以下のような課題が発生しました。
- 大量のセンサーデバイスからの同時通信
- 不安定なネットワーク環境での信頼性確保
- 多様なデバイスへの対応
- リアルタイム性の要求
特に製造業のDX推進において、現場の様々なデータをリアルタイムで収集・分析する必要性が高まっています。また、エッジコンピューティングの台頭により、クラウドとエッジデバイス間の効率的な通信手段が求められるようになりました。こうした課題解決のため、軽量で柔軟性が高く、信頼性のある通信プロトコルとしてMQTTが注目を集めているのです。
なおデータ連携に関しては、以下の図のようにMicrosoft Fabricなどのクラウド型データ基盤と組み合わせることで、より効果的に実現できます。

「部門別ベストプラクティス 製造プロセスの見える化」では、従来の製造プロセスの課題やMicrosoft Fabricを活用した解決概要などを紹介しています。こちらもぜひご覧ください。
MQTTが選ばれる5つの理由
低帯域幅での安定した通信
MQTTは、ヘッダーサイズを最小限に抑えた軽量なプロトコルです。標準的なTCP/IPヘッダーに加えて、MQTTヘッダーはわずか2バイトから始まります。これにより、携帯電話網やサテライト通信など、帯域幅が制限された環境でも効率的な通信が可能です。
3段階のQoSレベル
MQTTでは、用途に応じて3段階のQoSレベルを選択できます。
QoS 0(最大1回配信): メッセージを1回だけ送信し、配信確認を行いません。センサーの温度データなど、多少の欠落が許容される用途に適しています。
QoS 1(最低1回配信): メッセージは最低1回送信されますが、重複する可能性があります。例えば、ネットワークの遅延が発生した場合に再送される可能性があります。
QoS 2(正確に1回配信): 厳密な配信制御を行い、重複のない正確な配信を保証します。金融取引データなど、高い信頼性が求められる場合に使用します。
スケーラビリティの高さ
MQTTは、多くのデバイスを同時に接続できる高いスケーラビリティを持っています。この特性は、以下のような設計により実現されています。
- 軽量なプロトコル設計により、サーバーリソースの消費を抑制
- トピックベースの通信により、効率的なメッセージルーティングを実現
- クラスタリング構成による水平スケーリングのサポート
豊富な実装ライブラリ
様々なプログラミング言語やプラットフォームで利用可能なライブラリが提供されています。これにより、開発者は既存のシステムに容易にMQTTを組み込むことができます。
オープンな標準規格
MQTT は2016年に ISO標準(ISO/ IEC PRF 20922)として規格化されており、ベンダーロックインのリスクを軽減できます。また、継続的な仕様の改善とコミュニティによるサポートが期待できます。
これらの特徴により、MQTTはIoTシステムの通信プロトコルとして最適な選択肢の一つとなっています。特に、リアルタイム性と信頼性が求められる産業用途において、その価値を発揮します。
MQTTとOPC UAの関係性
それぞれのプロトコルの特徴と使い分け
OPC UAは、産業機器間の高信頼性通信とデータモデリングに特化したプロトコルであり、MQTTはシンプルで軽量なメッセージ配信に優れています。このため、工場のPLC(Programmable Logic Controller)とクラウドをつなぐ場合には、両者を組み合わせることで最適なデータ通信が可能になります。
製造現場では、以下のような使い分けが一般的です。
- OPC UA:工作機械やPLCなど、産業機器間の直接的な通信
- MQTT:センサーデータの収集や監視システムへのデータ転送
OPC UAに関して詳しくは「OPC UAの概要やメリットとは?製造業のグローバル展開で重要となるOPC UAの実装から活用まで」をご覧ください。
相互接続の方法と注意点
OPC UAとMQTTを組み合わせる場合、一般的にはゲートウェイを介して相互接続を行います。例えば、工場の温度管理システムでは次のような構成が考えられます。
- 製造装置がOPC UAでデータを出力
- ゲートウェイでOPC UAからMQTTに変換
- クラウドやエッジサーバーでMQTTデータを収集・分析
ハイブリッド構成のメリット
両プロトコルを適材適所で使用することで、以下のようなメリットが得られます。
- OPC UAの豊富なデータモデルとMQTTの軽量性を両立
- 既存の産業システムとIoTシステムの円滑な統合
- クラウドサービスとの親和性向上
Microsoft Fabricを活用したデータ連携
製造現場のIoTデバイスから収集される膨大なデータを経営の意思決定に活用するには、高度なデータ分析基盤が必要です。Microsoft Fabricを活用することで、MQTTやOPC UAなどのプロトコルで収集した製造データをクラウド上でリアルタイムに分析し、需要予測、品質管理、設備保全などに役立てることが可能になります。具体的には、MQTTクライアントからのデータをAzure IoT Hubs経由でMicrosoft Fabricに送信することで、リアルタイム分析等を行うことができます。
【実現イメージ】

業務でのデータ活用のハードルを劇的に下げるAI時代のデータ活用基盤「Microsoft Fabric」はこちらから資料ダウンロードいただけます。
またIoT Hubに関して詳しくは「IoT Hubとは?Azureサービス群での位置づけや特徴から実際の使い方までを紹介します」をご覧ください。
産業分野別MQTTユースケース
製造業における予知保全の実現:異常検知と生産性向上を同時に達成
製造業では、設備の稼働監視や予知保全にMQTTが活用され、大きな成果を上げています。例えば、大規模な工場では数千個のセンサーからリアルタイムでデータを収集し、異常検知や生産性の分析を行っています。具体的な処理の流れとしては、まず製造設備に取り付けられた各種センサーが温度、振動、電流値などのデータをMQTTプロトコルで送信します。これらのデータは、まずエッジサーバーで一次処理され、その後クラウドでAIを用いた高度な分析が実施されます。このように、MQTTを活用することで、製造現場の見える化とデータドリブンな意思決定が可能になります。
「部門別ベストプラクティス 製造データの企業間データ交換」では、企業の製品開発部門の課題の一つであり、特に欧州で進むManufacturing-XやCatena-Xを介した連携や、異なるシステム間の連携を実現する方法をご紹介しています。こちらもぜひご覧ください。
スマートビルディングでの省エネ実現:快適性と省エネを両立
スマートビルディングでは、空調、照明、セキュリティなど、様々なシステムの統合管理にMQTTが活用され、特に電力使用量の最適化で効果を発揮しています。まず、各フロアに設置された電力メーターが消費電力データをMQTTで送信します。これらのデータは、在室センサーから得られる情報と組み合わせて分析され、AIが最適な空調制御を実施します。その結果、オフィスワーカーの快適性を維持しながら、電力使用量の削減が可能です。
農業IoTでの生産性向上:環境制御の自動化による収穫量増加
スマート農業分野では、MQTTを活用した環境モニタリングと自動制御により、生産性向上が可能です。
ハウス栽培の環境制御システムを例に挙げると、まず温度、湿度、CO2濃度などの環境データがMQTTプロトコルでリアルタイムに送信されます。これらのデータは気象予報データと組み合わせて分析され、最適な栽培環境が予測されます。その結果に基づいて換気扇や遮光カーテンが自動制御され、作物の生育に最適な環境が維持されます。この自動制御により、栽培環境の最適化と農作業の省力化を同時に実現し、収穫量の向上にも貢献しています。
MQTTの導入により、安定した通信とリアルタイムなデータ収集を実現します
MQTTは、IoTシステムの基盤を支える重要なプロトコルとして、その活用シーンを広げています。その特徴である軽量性と信頼性の高さにより、大量のセンサーデータを効率的に収集しながら、不安定なネットワーク環境下でも安定した通信を実現できます。
導入に際しては、システム要件の明確化とセキュリティ設計が重要です。より詳細な情報や具体的な導入支援については、「Microsoft Fabricに関するお問い合わせ」までお気軽にご連絡ください。経験豊富な専門家が、お客様の課題に応じた最適なソリューションをご提案いたします。
MQTTに関するよくある質問(FAQ)
- Q1:MQTTとHTTPの違いは何ですか?
A:MQTTはIoT向けに最適化された軽量プロトコルで、HTTPと比べてヘッダーサイズが小さく、双方向通信が容易です。また、Publish/Subscribeモデルにより、多対多の通信が効率的に行えます。 - Q2:MQTTの通信は暗号化されていますか?
A:MQTTそのものには暗号化機能はありませんが、TLS/SSLを使用することで通信を暗号化できます。セキュアなシステムを構築する場合は、TLS 1.2以上の使用を推奨します。 - Q3:一般的なメッセージサイズの制限はありますか?
A:理論上のメッセージサイズ上限は256MBですが、実用的には数KB~数十KB程度に抑えることが推奨されます。特に、リソースの限られたデバイスでは小さいサイズが望ましいです。 - Q4:MQTTブローカーに障害が発生した場合はどうなりますか?
A:ブローカーの冗長化構成を採用することで、プライマリブローカーに障害が発生した場合でも、セカンダリブローカーに自動で切り替わることが可能です。 - Q5:WebSocketsでMQTTを使用できますか?
A:はい、MQTTはWebSocketsをサポートしており、Webブラウザからの直接接続が可能です。これにより、Webアプリケーションでもリアルタイムな双方向通信が実現できます。 - Q6:複数のブローカーを連携させることは可能ですか?
A:はい、ブリッジ機能を使用することで、複数のブローカー間でメッセージを転送できます。これにより、地理的に分散したシステムの構築が可能です。 - Q7:オフライン時のメッセージはどう扱われますか?
A:永続セッションを使用することで、クライアントがオフライン中のメッセージを保持し、再接続時に配信することが可能です。ただし、この機能はブローカーのリソースを消費するため、適切な設定が必要です。