7. AWS IoTの設定¶
本章のゴール: AWS IoTでMQTT(AWS IoT上のテストサイト)による受信ができることを確認する
作業の位置づけ;
7.2. ポリシの作成¶
“モノ” が AWS IoTにアクセスする際の制限を設定することができます
今回はフルコントロールとします
7.2.1. 作業¶
- AWS IoTのコンソールから “Create a resource” をクリックし “Create a policy” をクリック
- 下記を入力したら “Add statement” をクリックし “Create” をクリック
Name | jawsdays2016_awsiot_policy |
Action | iot:* |
Resource | テキストボックスに * を入力、Allowにチェック |
これでポリシが作成されました
※下図は “Add statement” 直前の画面です
7.3. “モノ” の作成¶
AWS IoT上で “モノ” として認識できるようにします
実物の “モノ” の状態を管理するための機能であるDevice shadowを使用する際に、特に必要となります
7.3.1. 作業¶
- AWS IoTのコンソールから “Create a thing” をクリック
- 下記を入力したら “Create” をクリック
Name | jawsdays2016_awsiot_thing0 |
これで “モノ” が作成されました
7.4. 証明書の作成, ポリシの割り当て, “モノ”の割り当て¶
“モノ” がAWS IoTにアクセスする際に使用する証明書(キーペア)を作成します
“モノ” に公開鍵を持たせてAWS IoTにアクセスすることで認証としています
証明書は有効(活動中)/無効(非活動)というステータスを持っており、証明書が有効だとしても非活動の場合はAWS IoTへのアクセスができないといった制御が可能です
また、この証明書にポリシと “モノ” を割り当てることで、その証明書を持っている “モノ” の制限をすることができるという仕組みです
すでに存在するキーペアから作成することも可能ですが、今回はAWS IoTに発行してもらいます
注釈
AWS IoT接続トラブルの原因の80%が、証明書に起因するものですので丁寧に実施してください
7.4.1. 作業¶
- 証明書の作成
- AWS IoTのコンソールから “Create a certiicate” をクリック
- “1-CLick certificate create” をクリック <”INACTIVE” と書かれた証明書が作成されます>
- 画面上の “Download private key” と “Download certificate” をクリックし、それぞれ .pem.key ファイルと .pem.crt ファイルを取得する
警告
- private keyファイルはこのタイミングでのみダウンロード可能です。あとでダウンロードできないので、必ず取得してください
- certifiateファイルはAWS IoTの別の画面から、public keyファイルはprivate keyファイルから再作成・入手が可能ですが割愛します
- ポリシを証明書に割り当て
- 証明書のチェックボックスをクリック (ついていれば次へ)
- [Actions]の中から[Attach a policy]をクリック
- Policy name にポリシ名
jawsdays2016_awsiot_policy
を入力し “Attach” をクリック
- “モノ” を証明書に割り当て
- 証明書のチェックボックスをクリック (ついていれば次へ)
- [Actions]の中から[Attach a thing]をクリック
- Thing name にポリシ名
jawsdays2016_awsiot_thing0
を入力し “Attach” をクリック
- 証明書のアクティベート
- 証明書のチェックボックスをクリック (ついていれば次へ)
- [Actions]の中から[Activate]をクリック <証明書が “ACTIVE” に変化します>
※下図は 証明書にチェックを入れた後 “Actions” をクリックした直後の画面です
7.5. ルールの作成¶
AWS IoTでは、MQTTやRESTで送信されてきたデータに対して、どのようにアクションするか設定でき、これをルールと呼びます
7.5.1. 作業¶
- AWS IoTのコンソールから “Create a rule” をクリック
- 下記を入力したら “Add action” をクリックし “Create” をクリック
Name | jawsdays2016_awsiot_rule0 |
Description | jawsdays2016_awsiot_rule0 |
Attribute | * |
Topic filter | jawsdays2016/sensor0 |
Condition | <なにも入力しません> |
Choosen an action | Lambda |
Function name | jawsdays20160312_to_es |
これでルールが作成されました
※下図は “Add action” 直前の画面です
7.6. AWS IoT上のMQTTクライアントツールを使用した確認¶
AWS IoTにはMQTTクライアントツールがあり、それを使って簡単に動作確認をすることができます
7.6.1. 作業¶
- AWS IoTコンソールの右上 “MQTT Client” をクリック
- “Generate client ID” をクリック <Client IDに任意の文字列が入ります>
- “Connect” をクリック
- “Publish to topic” をクリック
- 下記を入力して “Publish” をクリック
Publish topic | jawsdays2016/sensor0 |
Payload | {"state":{"reported":{"deviceId":"awsiot-test0","field1":3,"field2":"from aws iot"}}} |
Kibana上に上記payloadのデータが入っていれば成功です
ここまで到達できればゴールです
BX1とAWS IoTの接続 へ進む