LoginSignup
3
1

More than 3 years have passed since last update.

AWS IoT Core ハンズオン参加メモ

Last updated at Posted at 2019-09-14

先日、「知っ得ハンズオン はじめてのIoT AWS IoT Core」というAWSのハンズオンに参加してきましたので、そのときのポイントをメモっておきます。

座学セッション

AWSのIoTサービスについてのお話がありました。
詳しくはこちらの方がレポートしてくれています。

ハンズオン

資料を見ながらひたすら写経(とは言わないかw)をしました。

以下、個人的なポイントだけ抜粋。

Raspberry Piを使わない

AWS IoT CoreのチュートリアルではRaspberry Piをエッジデバイスとして話が進んでいくそうですが、そこが敷居が高いポイントになっているとのことで、今回はインスタンスを立ち上げて通信することになりました。
(ラズパイだって、ただのLinuxマシンだしね ^^;)

具体的にはAmazon Lightsailを起動し、そこでCloud9を動かし、AWS IoT SDKを呼び出すことで代用します。

ちなみにCloud9をLightsail上で動かす理由は、EC2よりも安い(下りの通信)からだそうです。

Amazon Lightsailの設定

image.png

VPS相当のサービスであるLihgtsailを、Amazon Linux+Node.jsで起動します。
image.png

Cloud9の設定

image.png

外部サーバ(Lightsail)にインストールします。
Lighjtsailで立ち上げたインスタンスのIPアドレスとホスト名を指定して、SSHでアクセスできるようにします。
image.png
image.png

Cloud9で動作するクライアントアプリはPythonコードなので、Pythonをインストールしておきます。
image.png

またAWS IoT SDKもインストールしておきます。
image.png

AWS IoT クライアントの設定

image.png

まずAWS IoT Coreと通信を行うためのセキュリティポリシーを作成します。
image.png

次にモノ(いわゆる「Things」)を登録します。
ここで証明書を発行し、モノ(今回はCloud9)に配置します。このとき、証明書の有効化を忘れずに。
image.png

これらの証明書は、Cloud9からメッセージを送る際に使用します。
image.png

メッセージの送信

Cloud9のクライアントアプリを実行し、AWS IoT SDKを介してAWS IoT Coreと通信します。
image.png

その際にAWS IoT CoreのエンドポイントのURL(メッセージ送り先)が必要になります。
image.png

また送られてきたメッセージは、AWS IoT Coreの「テスト」で監視できます。
image.png

エッジ側の設定変更はデバイスシャドウを使う

エッジ側(今回はCloud9)の設定は、AWS IoT Coreから直接エッジ側へ通信を送って制御するのではなく、間にデバイスシャドウというJSONファイルを介して行います。

AWS IoT Coreからはデバイスシャドウ(JSON)を更新し、エッジ側はそのデバイスシャドウ(JSON)を見に行って、現在の設定と違っていれば直すということをします。
つまり、疎結合となります。
image.png
image.png
image.png

メッセージ受信に対応した動作はひとつ

AWS IoT Coreは、エッジ側からメッセージを受け取ると、ひとつだけアクションを起こすことができます。
そのアクションは、SQLでトリガーを記述し、連携先のサービスに対してメッセージを送ったりします。
image.png
image.png

S3に送るとこんな感じになります。
image.png
image.png
image.png

感想

駆け足で、やっている内容を理解するところまではできていませんが、何度か繰り返したり、あれやこれやをいじったりしていけば、自然と理解できるのではないかと思っています。
次はちゃんとラズパイ等とつなぎたいと思います。

おまけ

AWSのハンズオンに参加すると、だいたいクーポンコードがもらえます。
$25ぐらいが多いのですが、結構使えてお得です。
(有効期限があります)
image.png

3
1
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
3
1