20150726 iotってなに?ニフティクラウドmqttでやったこと
TRANSCRIPT
![Page 1: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/1.jpg)
IoTってなに? MQTTができること
JulyTechFesta 2015 産業技術大学院大学 品川
2015/07/26 ニフティ株式会社
![Page 2: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/2.jpg)
お詫び
2
「MQTTができること」でしたが、 「ニフティクラウド MQTTの仕組み」の ほうが受けるかと思って内容を変えました。
![Page 3: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/3.jpg)
自己紹介
3
森藤 大地@muddydixon ニフティ9年目 モバイル・IoTビジネス部
JavaScript / Perl データ前処理 / データ解析 時系列予測 / データ可視化 IoT new
![Page 4: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/4.jpg)
自己紹介
4
森藤 大地@muddydixon ニフティ9年目 モバイル・IoTビジネス部
JavaScript / Perl データ前処理 / データ解析 時系列予測 / データ可視化 IoT new
![Page 5: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/5.jpg)
自己紹介
5
森藤 大地@muddydixon ニフティ9年目 モバイル・IoTビジネス部
JavaScript / Perl データ前処理 / データ解析 時系列予測 / データ可視化 IoT new
危ない!
バズワードだ!
![Page 6: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/6.jpg)
6
はい
![Page 7: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/7.jpg)
コンテンツ
7
IoTって? MQTTって 向いてる状況/向いていない状況 ニフティクラウド MQTTの作り方
![Page 8: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/8.jpg)
8
IoTの現状おさらい
![Page 9: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/9.jpg)
世の中のIoT化の流れ
9
IoT Internet of Thingsモノのインターネット
家庭・産業の色々なものがネットにつながる!
![Page 10: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/10.jpg)
10
Sensoria歩数・距離・スピードなどの他にも、足の体重バランスなども記録され「かかとに負担が大きな走り方」や「左足にバランスが偏っている」などを把握できる。
血糖値の管理をより手軽でスマートに。コンピュータやスマートフォンと接続することで、リアルタイムのデータを活用しながら治療を行う。
Lumo Back
活動量計のほかにヨガやボクシング、スイミング、ランニングなどのモーションについてのコーチングも行ってくれる。
背中につけたセンサーが姿勢の悪いときに振動して教えてくれる。また消費カロリーや睡眠トラックも可能。
Moov
Phyode脈拍や呼吸をトラッキングすることにより心理状態をモニタリング。精神を整えるエクササイズもすることができる。
MisfitWearablesウェアラブルデバイスを、目立たずおしゃれに身につけることを目指しているデバイスメーカー。
Pancreum
ウェアラブルデバイス・サービスは多種多様海外ベンチャーはIoTを強烈に意識
![Page 11: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/11.jpg)
11
IoTの適用が急速に拡大中Droneで配送 Amazon Prime Air
自動運転 Google self-driving car project
IoTのDIYセンサー・制御ガジェット Smart Things
ホーム・オートメーション SUITE SMARTHOME
![Page 12: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/12.jpg)
IoTは期待のピークに
12
出典:ガートナー先進テクノロジのハイプ・サイクル: 2014年http://www.gartner.co.jp/press/html/pr20140903-01.html
さまざま企業が今後IoTを意識してビジネスを展開
![Page 13: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/13.jpg)
国内IoT市場も拡大
13
出典:IDC Japan株式会社 国内IoT(Internet of Things)市場予測を発表http://www.idcjapan.co.jp/Press/Current/20150205Apr.html
2019年には16.4兆円に達する見通し
2014年売上規模は9.4兆円
![Page 14: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/14.jpg)
ニフティも参入しました
14
![Page 15: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/15.jpg)
ニフティも参入しました
15
![Page 16: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/16.jpg)
ニフティも参入しました
16
![Page 17: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/17.jpg)
17
はい
![Page 18: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/18.jpg)
この辺りを考えています
18
![Page 19: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/19.jpg)
ニフティクラウド MQTT
19
![Page 20: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/20.jpg)
ニフティクラウド MQTT とは
20
MQTT ブローカーをコンパネ上で作成できるサービス 2015年5月11日 リリース
![Page 21: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/21.jpg)
いいところを説明する前に
21
こんなストーリー
![Page 22: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/22.jpg)
IoTデバイスがあるじゃろ
22
![Page 23: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/23.jpg)
例えば
23
情報(BLE)
位置情報クーポンとか
情報(BLE)情報(BLE)
![Page 24: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/24.jpg)
例えば
24
センサ情報(BLE) たくさん
コンテンツ アップロード
![Page 25: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/25.jpg)
IoTデバイスがあるじゃろ
25
3G/4G でクラウドにアップするじゃろ
![Page 26: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/26.jpg)
IoTデバイスがあるじゃろ
26
位置情報 緯度経度なら8byte 温湿度 2byteあれば足りる (精度によります) 加速度 2byte * 3軸あれば足りる (精度によります)
![Page 28: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/28.jpg)
28
![Page 29: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/29.jpg)
29
MQTT is a machine-to-machine (M2M)/”Internet of Things” connectivity protocol. It was designed as an extremely lightweight publish/subscribe messaging transport. It is useful for connections with remote locations where a small code footprint is required and/or network bandwidth is at a premium.
MQTT は machine-to-machine (M2M) / “Internet of Things” 接続性の高いプロトコルです。非常に軽量な publish/subscribe 型のメッセージ転送として設計されました。コードのフットプリントが小さいこと、かつ/またはネットワーク転送が非常に高い場合のリモートコネクションの時に有効です。
とは
![Page 30: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/30.jpg)
30
MQTT is a machine-to-machine (M2M)/”Internet of Things” connectivity protocol. It was designed as an extremely lightweight publish/subscribe messaging transport. It is useful for connections with remote locations where a small code footprint is required and/or network bandwidth is at a premium.
MQTT は machine-to-machine (M2M) / “Internet of Things” 接続性の高いプロトコルです。非常に軽量な publish/subscribe 型のメッセージ転送として設計されました。コードのフットプリントが小さいこと、かつ/またはネットワーク転送が非常に高い場合のリモートコネクションの時に有効です。
とは
![Page 31: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/31.jpg)
31
MQTT is a machine-to-machine (M2M)/”Internet of Things” connectivity protocol. It was designed as an extremely lightweight publish/subscribe messaging transport. It is useful for connections with remote locations where a small code footprint is required and/or network bandwidth is at a premium.
MQTT は machine-to-machine (M2M) / “Internet of Things” 接続性の高いプロトコルです。非常に軽量な publish/subscribe 型のメッセージ転送として設計されました。コードのフットプリントが小さいこと、かつ/またはネットワーク転送費が非常に高い場合のリモートコネクションの時に有効です。
とは
![Page 32: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/32.jpg)
32
IoTに適した PubSub 型メッセージ転送 下記の条件に適している 貧弱なハードリソース(フットプリントが小さいため) ネットワーク費用が高い
とは
![Page 33: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/33.jpg)
33
の特徴
1通信ごとの ヘッダが最小2バイト
※ただし接続時コストは別
PubSub型 メッセージ転送 ※ただしサーバ(broker)は必要
![Page 34: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/34.jpg)
34
の特徴
1通信ごとの ヘッダが最小2バイト
※ただし接続時コストは別
接続コストは別 ssl 張るとコスト回収しないといけない
通信ごとに2バイトのヘッダですむ http は都度 headers が必要なので高い!
ペイロードがでかいと考えるだけ無駄 2MB送るときに数バイトの事考える?
![Page 35: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/35.jpg)
35
の特徴
中心にサーバを置いたスター型 Brokerが必要・誰かが運用
M:N のデバイスに対して通信路がN*MではなくN+Mで済む クライアントへのブッコミが可能!
PubSub型 メッセージ転送 ※ただしサーバ(broker)は必要
![Page 36: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/36.jpg)
36
すごい!
![Page 37: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/37.jpg)
例えば
37
位置情報クーポンとか
情報(BLE)情報(BLE)情報(BLE)
![Page 38: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/38.jpg)
例えば
38
コンテンツ アップロード
センサ情報(BLE) たくさん
![Page 39: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/39.jpg)
39
すごい!
![Page 40: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/40.jpg)
40
事例紹介
![Page 41: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/41.jpg)
MQTT の事例
41
https://github.com/mqtt/mqtt.github.io/wiki/Example%20Uses
![Page 42: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/42.jpg)
42
https://github.com/mqtt/mqtt.github.io/wiki/Example%20Uses
MQTT の事例Facebook Messenger
たかだか数バイトのヘッダですが件数が半端無いのでコスト削減ができる!
![Page 43: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/43.jpg)
IECC Scalable
43
https://github.com/mqtt/mqtt.github.io/wiki/Example%20Uses
各種のセンサ情報・時間解像度高く送るのでコスト削減!
![Page 44: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/44.jpg)
家の電気を管理する
44
ON/OFF の 1bit 情報を送るのにHTTPヘッダは高コスト = MQTT の最小2バイト!
http://chris.yeoh.info/2010/11/05/controlling-the-house-lighting-via-mqtt/
![Page 45: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/45.jpg)
災害検知・ブロードキャストシステム
45
氾濫原や川の水位を監視し、それを通知するシステム (それぞれの情報はある数バイトの数値・位置データ
http://mobile4d.capacitylab.org/
![Page 46: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/46.jpg)
怪しい事例も・・・
46
実家の電力量が増えると青く、家の電力量が増えると赤く光るだけのおもちゃ
![Page 47: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/47.jpg)
47
の特徴
1通信ごとの ヘッダが最小2バイト
※ただし接続時コストは別
PubSub型 メッセージ転送 ※ただしサーバ(broker)は必要
非力なデバイス 電池交換が手間 電波状況が悪い 通信が頻繁
![Page 48: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/48.jpg)
48
の特徴PubSub型メッセージ転送
※ただしサーバ (broker)は必要
非力なデバイス 電池交換が手間 電波状況が悪い 通信が頻繁
1通信ごとの ヘッダが最小2バイト
※ただし接続時コストは別
![Page 49: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/49.jpg)
49
の特徴PubSub型メッセージ転送
※ただしサーバ (broker)は必要
非力なデバイス電池交換が手間電波状況が悪い通信が頻繁
1通信ごとの ヘッダが最小2バイト
※ただし接続時コストは別
![Page 50: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/50.jpg)
50
の特徴PubSub型メッセージ転送
※ただしサーバ (broker)は必要
非力なデバイス電池交換が手間電波状況が悪い通信が頻繁
1通信ごとの ヘッダが最小2バイト
※ただし接続時コストは別
![Page 51: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/51.jpg)
51
の特徴PubSub型メッセージ転送
※ただしサーバ (broker)は必要
非力なデバイス電池交換が手間電波状況が悪い通信が頻繁
1通信ごとの ヘッダが最小2バイト
※ただし接続時コストは別
管理するの誰!?
![Page 52: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/52.jpg)
ニフティクラウド MQTT
52
![Page 53: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/53.jpg)
53
DEMO
![Page 54: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/54.jpg)
ニフティクラウド MQTT の特徴
54
同時接続数 メッセージ数 スループット メッセージサイズ他社A (無料) 6 50,000/月 - 6KB他社A (500円/月) 50 120,000/月 - 50KB他社B (無料) 10 - 10Kbit/Sec -他社B ($299/月) 10,000 - 10Mbit/Sec -NIFTY Cloud MQTT 100 無制限 50KB/Sec
Will Retain QoS TLS WebSocket WebSocket Secure サポート他社A (無料) ✔ ✔ 0 - ✔ - -他社A (500円/月) ✔ ✔ 0,1,2 ✔ ✔ ✔ ✔
他社B (無料) ✔ ✔ 0 ✔ - ✔ ✔
他社B ($299円) ✔ ✔ 0 ✔ - ✔ ✔
NIFTY Cloud MQTT ✔ ✔ 0,1,2 ✔ ✔ ✔ -
![Page 55: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/55.jpg)
ニフティクラウド MQTT の特徴
55
同時接続数 メッセージ数 スループット メッセージサイズ他社A (無料) 6 50,000/月 - 6KB他社A (500円/月) 50 120,000/月 - 50KB他社B (無料) 10 - 10Kbit/Sec -他社B ($299/月) 10,000 - 10Mbit/Sec -NIFTY Cloud MQTT 100 無制限 50KB/Sec
Will Retain QoS TLS WebSocket WebSocket Secure サポート他社A (無料) ✔ ✔ 0 - ✔ - -他社A (500円/月) ✔ ✔ 0,1,2 ✔ ✔ ✔ ✔
他社B (無料) ✔ ✔ 0 ✔ - ✔ ✔
他社B ($299円) ✔ ✔ 0 ✔ - ✔ ✔
NIFTY Cloud MQTT ✔ ✔ 0,1,2 ✔ ✔ ✔ -
同時接続数
100
メッセージ数
/サイズ 無
制限(※)
※ Pub/Su
b 合計スルー
プットでの制
限
![Page 56: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/56.jpg)
56
宣伝 終わり
![Page 57: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/57.jpg)
57
の特徴 (再掲)
1通信ごとの ヘッダが最小2バイト
※ただし接続時コストは別
PubSub型 メッセージ転送 ※ただしサーバ(broker)は必要
非力なデバイス 電池交換が手間 電波状況が悪い 通信が頻繁
![Page 58: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/58.jpg)
MQTTに向いているケース / 向いていないケース
58
Not非力デバイス 電池交換が不要 有線LAN 日に数回の通信 でかいペイロード 画像とか・・・
非力なデバイス 電池交換が手間 電波状況が悪い 通信が頻繁 小さなデータ
向いている 向いてない ※使ってもいいけど、別の方法もある
![Page 59: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/59.jpg)
一旦まとめ
59
アイデア次第でいろいろできるIoTを駆使したサービスを考えて、コストはニフティクラウドMQTTで抑えると素晴らしいのではないでしょうか!
![Page 60: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/60.jpg)
企業のIoTビジネスを推進する専門チームェ
60
![Page 61: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/61.jpg)
61
ここからが本番です ニフティクラウド MQTT
![Page 62: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/62.jpg)
ニフティクラウド MQTT の中身
62
![Page 63: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/63.jpg)
ニフティクラウド MQTT の中身
63
LB
API API
DOCKERMQTT
MQTT
MQTT
MQTTAuth/ACL
![Page 64: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/64.jpg)
ニフティクラウド MQTT の中身
64
このひとなんなの・・・・
![Page 65: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/65.jpg)
MQTT Broker 検証
65
Mosquitto: スタンダード RabbitMQ: 自社運用実績あり Mosca: (個人的に)改良しやすい SurgeMQ: 爆速
![Page 66: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/66.jpg)
ベンチマーク
66
環境ニフティクラウド Ubuntu 14.04 / Docker 1.5
ブローカ mosquitto (c)
209fe5e5af65ceeaafc2abb104499195a3f437ed
rabbitmq (erlang) rabbitmq_v3_4_4 plugin: rabbitmq_mqtt
mosca (javascript) 0.28.0 / 25f7308943f327809f48e06450ff28dab3ec39b6
surgemq (golang) dc3b2383a9358d3ec5c957dbd56939715c72eb68
ベンチツール (違うツールも見たいけど時間がが) surgemq/benchmark
![Page 67: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/67.jpg)
ベンチ結果
67
実装 publish subscriber
mosquitto 41906 41906
mosca 7134 7134
rabbitmq 8762 8762
surgemq 368816 368816
実装 publish subscriber
mosquitto 99182 99182
mosca 7944 7944
rabbitmq 13389 13389
surgemq 6562087 6562087
sub=1/pub=1 sub=1/pub=20
実装 publish subscriber
mosquitto 5944 118890
mosca ※1050 ※ 21010
rabbitmq 817 16348
surgemq 29410 588200
実装 publish subscriber
mosquitto 19174 191740
mosca ※1757 ※17578
rabbitmq ※3239 ※12897
surgemq 71282 712820
sub=20/pub=1 sub=10/pub=10
msg size=1kb, msg num=5000 https://github.com/surgemq/surgemq/
![Page 68: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/68.jpg)
surgemqすげぇ・・・
68
message/seconds
0
1750000
3500000
5250000
7000000
pub=1/sub=1 pub=1/sub=20 pub=20/sub=1 pub=10/sub=10
mosquitto mosca rabbitmq surgemq
![Page 69: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/69.jpg)
ただし
69
surgemqはもろもろ機能が足りていない 開発も手が止まっている状態
![Page 70: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/70.jpg)
ベンチ結果と機能要件から
70
Mosquittoを選定 surgemqは開発途上 Mosquittoが機能的にも揃っている retain, qos, will, tls, ws plugin
性能も高い
![Page 71: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/71.jpg)
Mosquitto on Docker にあたって
71
追加の機能要件 userの動的変更 topic aclの動的変更 containerの識別 Auth pluginのhttps対応 resourceの管理
同時接続数やメッセージ数ではなくThroughput
LB
API API
DOCKER
MQTT
MQTT
MQTT
MQTTAuth/ACL
![Page 72: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/72.jpg)
Mosquitto on Docker にあたって
72
追加の機能要件 userの動的変更 topic aclの動的変更 containerの識別 Auth pluginのhttps対応 resourceの管理
同時接続数やメッセージ数ではなくThroughput
LB
API API
DOCKER
MQTT
MQTT
MQTT
MQTTAuth/ACL
![Page 73: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/73.jpg)
Mosquitto-auth-plug
73
Mosquitto-auth-plug https://github.com/jpmens/mosquitto-auth-plug
多彩な認証ドライバ MySQL, PostgreSQL, CDB, SQLite3 Redis, LDAP, HTTP, MongoDB
認証/su認証/aclチェックも可能
![Page 74: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/74.jpg)
Mosquitto on Docker にあたって
74
追加の機能要件 userの動的変更 topic aclの動的変更 containerの識別 Auth pluginのhttps対応 resourceの管理
同時接続数やメッセージ数ではなくThroughput
LB
API API
DOCKER
MQTT
MQTT
MQTT
MQTTAuth/ACL
![Page 75: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/75.jpg)
Mosquitto-auth-plugの課題(1)
75
情報足りない問題
Auth-plugから送信される情報 username:password
containerの識別ができない!!
![Page 76: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/76.jpg)
Mosquitto-auth-plugの課題(1)
76
対応しました https://github.com/jpmens/mosquitto-auth-plug/pull/64
設定書いたら環境変数が渡るようにした
こう書くと
こんなかんじでHTTPの 認証サーバに問い合わせが行く
auth_opt_http_getuser_params domain=DOMAIN,port=PORT auth_opt_http_superuser_params domain= DOMAIN,port=PORT auth_opt_http_aclcheck_params domain= DOMAIN,port=PORT
data=domain=example.com&port=8080&username=xxx&password=ax&topic=&acc=-1
LB
API API
DOCKER
MQTT
MQTT
MQTT
MQTTAuth/ACL
![Page 77: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/77.jpg)
Mosquitto on Docker にあたって
77
追加の機能要件 userの動的変更 topic aclの動的変更 containerの識別 Auth pluginのhttps対応 resourceの管理
同時接続数やメッセージ数ではなくThroughput
LB
API API
DOCKER
MQTT
MQTT
MQTT
MQTTAuth/ACL
![Page 78: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/78.jpg)
Mosquitto-auth-plugの課題(2)
78
HTTP認証でHTTPS対応してない
![Page 79: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/79.jpg)
Mosquitto-auth-plugの課題(2)
79
対応しました https://github.com/jpmens/mosquitto-auth-plug/pull/73
こう書くと
こういうふうに
HTTPSで飛ぶ
auth_opt_http_with_ssl true
https://example.com:443/auth/
LB
API API
DOCKER
MQTT
MQTT
MQTT
MQTTAuth/ACL
![Page 80: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/80.jpg)
これらの対応で
80
mosquitto-auth-plug + patch 2で動的に認証ユーザの変更・動的にACLの変更に対応 ちなみに(おそらく)同一の構成を持つCloudMQTTは、Userを変更したり、ACLを変更すると再起動がかかる
![Page 81: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/81.jpg)
Mosquitto on Docker の課題
81
追加の機能要件 userの動的変更 topic aclの動的変更 containerの識別 Auth pluginのhttps対応 resourceの管理
同時接続数やメッセージ数ではなくThroughput
LB
API API
DOCKER
MQTT
MQTT
MQTT
MQTTAuth/ACL
![Page 82: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/82.jpg)
Mosquitto本体の問題
82
無限に使われた困る問題 デフォルトで存在するリソース制約 max_queued_messages max_inflight_messages message_size_limit max_connection
Dockerでかけられるリソース制約 CPU memory
http://mosquitto.org/man/mosquitto-conf-5.html
![Page 83: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/83.jpg)
戦略として
83
sang◯とかCl◯udMQTTを使ってるトライアルユーザに乗り換えてほしい 十分に遊べる接続数/遊べるメッセージ数
同時接続数は100と他社と差をつけた! メッセージ数・・・メッセージサイズ・・・
![Page 84: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/84.jpg)
戦略として
84
sang◯とかCl◯udMQTTを使ってるトライアルユーザに乗り換えてほしい 十分に遊べる接続数/遊べるメッセージ数
同時接続数は100と他社と差をつけた! メッセージ数・・・メッセージサイズ・・・
めんどくさい!スループットでいいよ!
![Page 85: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/85.jpg)
Mosquitto本体の問題
85
Throughputの計測とそれによる制約パッチ 取り込まれ待ち
たくさん送ったら一定時間メッセージが送れなくなる仕様
http://git.eclipse.org/c/mosquitto/org.eclipse.mosquitto.git/commit/?id=944b9e0d
mosquittoの本家repoが eclipseでうざい
LB
API API
DOCKER
MQTT
MQTT
MQTT
MQTTAuth/ACL
![Page 86: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/86.jpg)
ニフティクラウド MQTT
86
これらの対応により無事リリースできました
![Page 87: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/87.jpg)
MQTTリリースにあたって辛かったところ
87
リリース期間の短さ MQTTの用途の見えなさ
![Page 88: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/88.jpg)
MQTTリリースにあたって辛かったところ
88
リリース期間の短さ MQTTの用途の見えなさ
![Page 89: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/89.jpg)
MQTTリリースにあたって辛かったところ
89
リリース期間の短さ MQTTの用途の見えなさ Vのヒトのマサカリ
![Page 90: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/90.jpg)
90
enjoy MQTT enjoy IoT
enjoy ニフティクラウド (トライアルカードあります)
![Page 91: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/91.jpg)
We are hiring!!
91
ニフティでは IoTの「T(デバイス)」側やりたいヒト IoTの「I(インターネット)」側やりたいヒト
募集しています
R&Dもできます! 海外渡航制度など! CROSSみたいなイベント もできます!
![Page 92: 20150726 IoTってなに?ニフティクラウドmqttでやったこと](https://reader034.vdocuments.net/reader034/viewer/2022042608/55d1c2aabb61eb386e8b46dd/html5/thumbnails/92.jpg)