LoginSignup
22
13

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-11-29

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

22
13
0

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
22
13