Amazon MQ
Amazon MQ のやってみたネタはすでにメソられている※ので、mosquittoや MQTT over Websocket での接続事例をやってみました
11/29現在ではリージョンは以下の通りです。今回はオレゴンで試しました
※メソられている=「クラスメソッドさんでブログが書かれている」という業界用語
Amazon MQ のブローカー作成
Amazon MQ はActiveMQブローカー(いわゆるサーバ)のフルマネージド・サービスです。実装がEC2ベース(?)なので、それによるちょっとした基礎知識が必要となります
ブローカー作成についての基礎知識
EC2ベース(?)ということもあり、good pointsと注意点があります
- VPC内に作れる (good)
- セキュリティグループを適切に設定する必要がある (注意点)
セキュリティグループについては、EC2インスタンスを作成するときと同じですが、ブローカー作成時の途中でセキュリティグループを作ることができません。ですので、あらかじめ作っておきましょう
今回はMQTTS(8883)とWebsocket(61619)、そして管理コンソール(8162)をopenしています
ブローカー作成手順
セキュリティグループを作ったら Amazon MQ の管理画面からブローカーを作成します
※パスワードとかURLとか出ちゃってますけど、すでに存在しませんよ。アシカラズ
ポイントはセキュリティグループです。 default を削除して、新規に作成したセキュリティグループを割り当てるようにしてください
10分(というか15分くらい)待たされると、ブローカーが作成されます
エンドポイント一覧が確認できます
トラブルシュート
もし、エンドポイント一覧のところに、下記のように表示されていたら、セキュリティグループ設定がミスってるかもです。確認しましょう
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.
mosquitto(MQTT)での確認方法
mosquitto_sub
や mosquitto_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 にチェックを付けるところですね
あとがき
ちょうイイネ。
困ったこと
「設定」が削除できないお。。。。
EoT