[[MQTTめも]]

*AWSとは [#qb8b09df]

Amazon Web Services(アマゾン ウェブ サービス)の略で、Amazon.comにより提供されているクラウドコンピューティングサービス。~
複数のサービスで構成されている。

**AWSへの登録 [#q3022960]

AWSは基本的に従量制課金となりますが、登録から12ヶ月は無料で使用できる範囲があります。~
12ヶ月を超えても範囲内であれば引き続き無料で使用できたり、期間を過ぎると自動的に課金されるものもあるようでおっかなびっくりです。~
[[AWS の料金モデル:https://aws.amazon.com/jp/pricing/]]

利用料の概要は登録後の請求ダッシュボードにて確認でき、しきい値に達したときに通知メールを受け取ることもできます。

登録すべき内容は、住所などの他にクレジットカード情報、電話番号があります。~
登録時に電話がかかってきて4桁の数字を入力することで本人確認が行われます。

**AWS IoTとは [#zde213f3]

IoTデバイスとHTTP、MQTT、WebSocketなどのプロトコルを使用してメッセージの送受信ができるようになります。~
また他のAWSサービスと連携してデータのフィルタリング、変換、処理を行うことができます。

*AWS IoTの設定 [#kecc9c39]

**証明書の作成 [#n779de61]

メッセージの送受信はMQTTプロトコルで行うこととします。~
AWS IoTのMQTTではX.509証明書+TLS1.2による認証が必須となります。

IoTデバイスが対応できない場合は、AWS EC2にMQTTブローカーであるMosquittoを入れ、そちらに証明書を設定した上で経由させることでAWS IoTへメッセージを送ることができるようになります。

サービスからAWS IoTを選択し、安全性 - 証明書から証明書を作成し、ダウンロードします。~
root CAも合わせて4ファイルになります。

アクティブにした後にポリシーにアタッチします。

**ポリシーの作成 [#i4c6490e]

名前は適当に入力、アクションは「iot:*」、リソース ARNは「*」とし、許可にチェックを入れます。

**証明書とポリシーの紐付け [#w7d753a6]

これで証明書とポリシーが作成できました。~
安全性 - 証明書から作成した証明書を選択し、アクションからポリシーのアタッチを選択し、紐付けを行います。

**エンドポイントの確認 [#m34f5084]

MQTTクライアントからの接続先となるエンドポイントを確認します。

設定からカスタムエンドポイントで表示されているエンドポイントがそうです。

*MQTT.fxの設定 [#xd211f89]

動作を確認するためにMQTTクライアントとしてWindowsにMQTT.fxをインストールします。~
インストール方法は[[こちら>MQTT.fx]]

**接続設定 [#g4b78918]

青い歯車をクリックし、接続設定を行います。

Broker Addressにはエンドポイント、Broker Portは8883になります。

同一画面でSSL/TLSを選択し、証明書の設定を行います。

Enable SSL/TLSにチェック~
ProtocolはTLSv1.2を選択~
Self signed certificatesをチェック

-CA File : root CAを選択
-Client Certificate File : 拡張子crt
-Client Key File : private.pem.key
-Client Key Password : 未入力
-PEM Formatted : チェック

OKでConnectにて接続します。~
Logタブにて接続していることを確認します。

**MQTTクライアントからのPublichテスト [#p1918b07]
**MQTTクライアントからのPublishテスト [#p1918b07]

MQTTクライアントであるMQTT.fxからAWS IoTへPublish(送信)してみます。

まずはAWS IoT側でSubscribe(受信)するための設置を行います。~
テストを選択し、デバイスゲートウェイへ接続します。

MQTTはトピックを送受信側で合わせてやります。~
トピックのサブスクリプションに「test/mqtt」を入力し、トピックへのサブスクライブを押下。

これで待ち受け状態となったので、次はMQTT.fx側にてPublishを行います。

先ほどと同様にトピックに「test/mqtt」を入力し、下のエリアに適当なメッセージを入力してPublishボタンを押下します。

AWS IoT側で送信したメッセージが表示されていることが確認できます。

**MQTTクライアントでのSubscribeテスト [#pb0191a1]

今度は逆にMQTTクライアントであるMQTT.fxにてSubscribe(受信)してみます。

MQTT.fxにてSubscribeタブを選択し、トピック「test/mqtt」を入力し、Subscribeボタン押下で待ち受け状態にします。

AWS IoTにて適当なメッセージを入力し、「トピックに発行」ボタンを押下し、MQTT.fxにて受信できていることを確認します。

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS