Help us understand the problem. What is going on with this article?

Amazon MQにmosquitto(MQTT)とMQTT over Websocketで接続してみる

More than 1 year has passed since last update.

Amazon MQ

Amazon MQ のやってみたネタはすでにメソられている※ので、mosquittoや MQTT over Websocket での接続事例をやってみました

11/29現在ではリージョンは以下の通りです。今回はオレゴンで試しました

amazon-mq-available-regions-in-2017-winter.png

※メソられている=「クラスメソッドさんでブログが書かれている」という業界用語

Amazon MQ のブローカー作成

Amazon MQ はActiveMQブローカー(いわゆるサーバ)のフルマネージド・サービスです。実装がEC2ベース(?)なので、それによるちょっとした基礎知識が必要となります

ブローカー作成についての基礎知識

EC2ベース(?)ということもあり、good pointsと注意点があります

  • VPC内に作れる (good)
  • セキュリティグループを適切に設定する必要がある (注意点)

セキュリティグループについては、EC2インスタンスを作成するときと同じですが、ブローカー作成時の途中でセキュリティグループを作ることができません。ですので、あらかじめ作っておきましょう

今回はMQTTS(8883)とWebsocket(61619)、そして管理コンソール(8162)をopenしています

sg-for-amazon-mq.png

ブローカー作成手順

セキュリティグループを作ったら Amazon MQ の管理画面からブローカーを作成します
※パスワードとかURLとか出ちゃってますけど、すでに存在しませんよ。アシカラズ

ポイントはセキュリティグループです。 default を削除して、新規に作成したセキュリティグループを割り当てるようにしてください

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f32323735342f37396162653935632d393863382d333331362d636264392d3362356664356364326231362e706e67.png

10分(というか15分くらい)待たされると、ブローカーが作成されます
エンドポイント一覧が確認できます

endpoints-of-amazon-mq.png

トラブルシュート

もし、エンドポイント一覧のところに、下記のように表示されていたら、セキュリティグループ設定がミスってるかもです。確認しましょう

Ensure the security group(s) associated with your broker allow inbound traffic from public IPs (e.g. 192.168.0.1:8162) to access your broker.

alert-of-sg-on-amazon-mq.png

mosquitto(MQTT)での確認方法

mosquitto_submosquitto_pub コマンドで送受信できます
ポイントは --capath /etc/ssl/certs/ です。TLS(SSL)通信ですので、証明書を指定するようにしましょう
/etc/ssl/certs/ が無い場合は apt install ca-certificates とするなどして、インストールしてください

Subscribe;

$ mosquitto_sub --capath /etc/ssl/certs/ -u mquser0 -P dFLiRBi0U1oK \
  -h b-ad80650c-4d5d-497a-8c56-35e7bc49d605-1.mq.us-west-2.amazonaws.com -p 8883 \
  -t testtopic/#

Publish;

$ mosquitto_pub --capath /etc/ssl/certs/ -u mquser0 -P dFLiRBi0U1oK \
  -h b-ad80650c-4d5d-497a-8c56-35e7bc49d605-1.mq.us-west-2.amazonaws.com -p 8883 \
  -t testtopic/bar -m "Hello Amazon MQ by mosquitto"

MQTT over Websocket での確認方法

HiveMQ の MQTT over Websocket コンソールが使えます
http://www.hivemq.com/demos/websocket-client/

ポイントは SSL にチェックを付けるところですね

websoket-client.png

あとがき

ちょうイイネ。

困ったこと

「設定」が削除できないお。。。。

confs-of-amazon-mq.png

EoT

ma2shita
(松下 享平) IoT通信プラットフォーム「ソラコム」のエバンジェリストで年間140回以上の講演を通じ #IoT の事例や技術情報を日々紹介。LPWAの選び方や共著で「公式ガイドブック SORACOM プラットフォーム」を書いています。2020年の #AWS IoT Heroです。"Max"はニックネームです、フォローやメッセージはお気軽に! Twitterは @ma2shita です。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした