LoginSignup
10

More than 5 years have passed since last update.

SORACOM Beam(MQTT → MQTTS変換サービス) で Amazon MQ に接続する

Last updated at Posted at 2017-11-30

Amazon MQにmosquitto(MQTT)とMQTT over Websocketで接続の続編です

切なる願い

Amazon MQ は 生MQTT はサポートしてないお...
でも TLSがしゃべれない非力なデバイスからも Amazon MQ 使いたいお!!

ビームを飛ばせばいいじゃない

3G/LTE通信が1日10円~ 1回線から契約できる、モノ向け通信サービスのSORACOM (CM色強い) には SORACOM Beam というデータ転送サービスがありまして、それを使って Amazon MQ に接続出来たよって話です

このデータ転送時にプロトコル変換もやってくれるのですが、変換内容に 生のMQTT → MQTTS も入ってます
要するに MQTT Proxy そんなところです (CM色強い)

手順

SORACOM の Webコンソールで "SIMグループ" を作成したら、そのSIMグループの中にある SORACOM Beam で MQTTエントリポイント を選択します

soracom-beam1.png

あとは以下のように設定していくだけです

  • プロトコル: MQTTS
  • ホスト名: Amazon MQ のダッシュボードから得てください
  • ポート番号: 8883 (ねんのため、Amazon MQ のダッシュボードで確認してください)
  • ユーザ名: Amazon MQ のダッシュボードから得てください
  • パスワード: Amazon MQ のダッシュボードから得てください

これでOKです
オプションの IMSI付与 は、ON にすると 例えば my_topic/sensor 宛てに送ると、Amazon MQ では my_topic/sensor/491023123131 と、送信元 SIM の IMSI が付与されますので、送信元を特定することがとても簡単になるのでオヌヌメです

soracom-beam2.png

確認

確認には前回同様 mosquitto と HiveMQ の MQTT over Websocketを使ってみます

ターミナル側(mosquitto_sub)の方が SORACOM Beam を使っている様子です

soracom-beam-works-with-amazon-mq.png

注目ポイント

前回mosquitto_sub の引数に --capath /etc/ssl/certs/ を入れてTLS通信にしていましたが、生MQTTで送るのでコマンドラインも減っています

SORACOM Beam を使うとこんなにメリットが;

  • そもそもTLSが使えない、非力なデバイスでMQTTやりたい
  • 通信データサイズの削減 (TLSと生の違い)
  • デバイス上の証明書更新をしなくてよい
  • Amazon MQ 側の設定変更(インスタンス作り直しに伴う endpoint の変更や、ユーザ/パスワードの変更)が発生しても、デバイス上のプログラムコード変更をしなくてよい

もっと言ってしまうと TLS実装しなくていいんです 面倒から解放されますよ (^^

これが 0.0009円/1リクエスト (in/outでそれぞれ1リクエストが発生するので、感覚的な"1回"だと 0.0018円) で使えるのだから、お得と言わざるを得ない (CM色強い)

あとがき

  • Qiitaのデザインが変わってて驚いた
  • Amazon MQ って Simple Icon マダー?
  • CM色強いですが、費用対効果は抜群なサービスです

現場からは以上です。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10