AWS IoTを使ってみたもの若干ハマったのでメモ

AWS IoTを使ってみたもの、個人的な勘違いと詰めの甘さで若干ハマったのでメモしておきます。

参考記事

基本、豊富に参考記事があり迷うことはありませんでした。

ありがとうございます。

おもな流れ

自分のハマりどころを中心に主な流れを書いておきます。

aws-iot-setting-tips-memo_1

Create a things でデバイス自体の登録をします。

aws-iot-setting-tips-memo_2

デバイス自体の登録を行って、デバイスをクリックすると、

aws-iot-setting-tips-memo_3

右側に詳細が出てくるので、Connect a Deviceを押してNodeJS用の設定&鍵を作ります。

aws-iot-setting-tips-memo_4

aws-iot-setting-tips-memo_5

aws-iot-setting-tips-memo_6

設定まで出してくれて親切。

ハマりポイント1:この時点でNodeJSを設定してしまったらつながらなかった→ルールとロール未設定

喜びのあまり、この時点でNodeJSを設定してしまったらつながらなかった。

aws/aws-iot-device-sdk-js: SDK for connecting to AWS IoT from a device using JavaScript/Node.js

と、さきほど発行された設定を読んでもconnectのまま反応しない。

aws-iot-setting-tips-memo_7

原因は参考記事のとおり、そのままルールを作成してAWS IoT用のロールを作成すればよかったところを端折ったので、うまくつながらなかった ということでした。

aws-iot-setting-tips-memo_8

ちゃんと手順を把握して、ルールとロールは作りましょうという話。

ハマりポイント2:本来必要な鍵ファイルを非アクティブにしていたので実行時にエラー

いろいろと実験をしていたら鍵ファイルが増えすぎてしまって整理していました。

aws-iot-setting-tips-memo_9

aws-iot-setting-tips-memo_10

そうしたら、実行時にエラー。

events.js:141
      throw er; // Unhandled 'error' event
      ^

Error: write EPROTO 000000000:error:000000000:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown:openssl\ssl\s3_pkt.c:1472:SSL alert number 46
000000000:error:000000000:SSL routines:ssl3_write_bytes:ssl handshake failure:openssl\ssl\s3_pkt.c:656:

    at exports._errnoException (util.js:870:11)
    at WriteWrap.afterWrite (net.js:769:14)

原因は本来必要な鍵ファイルを非アクティブにしていたためにエラーになっていたということでした。caCertの設定もやや迷いましたが、ここも参考記事「Symantecからルート証明書を取得」すると丁寧に書いていて、ハマる前に回避。

ということで、おもに、普通のMQTTブローカーが出来上がって気軽に投げればいいやと思っていたところで、鍵ファイルなどのちゃんとした手続きやAWS的な設定をする必要があったところを疎かに対応してハマりました。

しかしハマったもののAWS IoT自体は、あっさりつながりました。よくできてます。セキュアに色々とやりとりできて、Shadowの仕組みに感動したり、実際に大量のデバイスでどう管理していこうかなどワクワク考えています。

それでは、よきAWS IoT&デバイス連携 Lifeを!