AWS IoT Hands-‐‑‒on Ver.1.0

AWS IoT Hands-‐‑‒on
Ver.1.0
Amazon Data Service Japan
⾃自⼰己紹介
•  名前
–  榎並 利利晃(えなみ としあき)
–  [email protected]
•  役割
–  パートナーソリューションアーキテクト
–  主にエマージングパートナー様を担当
•  好きなAWSのサービス
–  Amazon Kinesis
–  Amazon DynamoDB
@ToshiakiEnami
IoT ( Internet of Things )とは
“The Internet of Things (IoT) is the network of physical objects or "things"
embedded with electronics, software, sensors and connectivity to enable it
to achieve greater value and service by exchanging data with the
manufacturer, operator and/or other connected devices. Each thing is
uniquely identifiable through its embedded computing system but is able to
interoperate within the existing Internet infrastructure.”
IoT ( Internet of Things )とは
モノ(含むセンサー)などから収集されるデータを活⽤用し、⽣生活
やビジネスの価値向上のために活⽤用することができる。
ビジネスイノベーションへのきっかけ
様々なマーケットで利利⽤用可能
製造
交通
エネルギー
•  メンテナンス
•  オートメーション
•  ⾞車車両センサー
•  トラフィック
•  スマートメータ
•  メンテナンス
家電
ヘルスケア
農業
•  スマート家電
•  オートメーション
•  医療療機器
•  遠隔医療療
•  スマートメータ
•  ⾃自動制御
IoTが抱える様々な問題に対してAWSクラウドは
最良良の選択肢
様々な課題
"   不不確実なビジネスモデル
"   ユーザー数の増加
"   情報量量/通信量量の増加
"   多くのシステム構築
"   セキュリティの確保
AWSで解決!
"   使っていただいた分だけの利利
⽤用料料、低コスト、低リスクで素
早く実験 "   スケールイン・アウト "   40を超えるサービス
"   ⾼高いセキュリティ
イノベーションにつなげるために
機械学習
データ可視化
検知
収集
分析
蓄積
IoTデータフロー
親機
センサー
モバイル
収集
蓄積
分析
活用
インフラ
インフラ
インフラ
インフラ
Intel Edisonを⽤用いた開発
Intel Edisonのご紹介
  超⼩小型、Dual Core Atomプロセッサ搭載Linuxマシン
  アンテナ搭載なのでボード単品で無線通信可能 (WiFi/BT)
  低消費電⼒力力
  各種Expansionボードに乗せてI/Oを拡張
  Node.js (JavaScript), Python, C/C++, Arduino, Wyliodrin (Scratch⾵風)など幅広いプログラミング⾔言語をサポート
"   MRAA / UPMなどI/O操作ライブラリも充実
"
"
"
"
"
IntelのExpansionボード
今日はコレ
を使います
Arduino Expansion
Arduino Uno互換シールドコネクタ
mSD, USB host/device/vCOM
I/O電圧 3.3V/5V
アナログ入力も(ADC)可能
PWMは4本のみ (Arduinoは6本)
LiIon電池充放電回路
試作、実験用に
Mini Breakout Board
I/O電圧1.8V
LiIon電池充放電回路
純粋にEdison I/Oピンをパッドに引き出したボード。
追加I/O無し
小型化したいときに
さまざまなプログラミング環境をサポート
今日はコレ
を使います
Intel XDK IoT Edition
(JavaScript + HTML5)
" sshやシリアルコンソールでつなぎ、Edison
上でC/C++のセルフ開発も可能
Arduino
Wyliodrin
I/Oライブラリを使った簡単プログラム
"   MRAAを使えば、こんなに簡単にI/O操作できます
var mraa = require("mraa"); import mraa
var x = new mraa.Gpio(13);
x.dir(mraa.DIR_OUT);
x.write(1);
x = mraa.Aio(0)
print (x.read())
Node.js
• 
• 
GPIO, Analog, PWM, I2C,
SPIの操作が可能
JS/Python/C/C++で使えま
す
Python
"   UPMを使った、加速度度センサー読み出しの例例
var adxl345 = require('jsupm_adxl345');
var adxl = new adxl345.Adxl345(0);
adxl.update(); // Update the data
var raw = adxl.getRawValues(); // Read raw sensor data
var force = adxl.getAcceleration(); // Read acceleration force (g)
Edison ArduinoボードのI/O概要
名前
⽤用途
説明
具体例例
補⾜足
GPIO (General purpose I/O)
汎⽤用⼊入出⼒力力
デジタル (1/0)
LEDの点灯、モーター
On/Off, スイッチ読み
込み
設定で⼊入⼒力力と出⼒力力を切切
り替えて使う
Analog In
アナログ⼊入⼒力力
(A/Dコンバータ
ー)
0V~∼AREF(V)を0~∼1024 (10bit)と
して表現
アナログセンサー、ボ
リュームのアナログ値
の取得
AREFはジャンパで
3.3Vや5.0Vに設定可
能
Analog Out
実際にはPWM波
形
(PWM=Pulse Width Modulation)
⼀一定周期の中で、デジタル1と0の⽐比
率率率を変えることで平均出⼒力力を変化さ
せる (デューティー⽐比)
LEDの輝度度、モーターの
回転速度度の調整
ピンの出⼒力力は1と0を繰
り返す。1と0の⽐比率率率を
変えられる
I2C
デバイス間シリア
ル通信
1つのバスで複数のデバイスをサ
ポート可能。2線式。中速。
シリアルROM、⼩小型セ
ンサーなどとの通信
SPI
デバイス間シリア
ル通信
1つのバスに複数デバイスつなげる
が、デバイスごとにCS信号が必要。
3線式。中〜~⾼高速。
シリアルROM、⼩小型セ
ンサーなどとの通信
PWM
Duty = 10%
Duty = 50%
Duty = 90%
Hardware Kit
Intel® Edison開発キット
•  Intel® Atom™ デュアルコアプロセッサ
Arduino* 互換I/O拡張ボード
•  Yocto* Linux* ベースのIntel® IoT Development Kitソフトウエア
Seeed* Studio Grove Starter Kit V3
•  ベースシールド + 便便利利なI/Oモジュール
類 + ケーブル
その他
•  micro-‐‑‒USB cable
•  12V power adapter
Seeed* Grove Starter Kit v3内容物
•  Groveベースシールド •  Groveモジュール⼀一式 (センサ、スイッチなど)
•  Groveケーブル
今回の接続図
12V電源
USB切切り替え
スイッチを下側に
押しボタン
スイッチ(D2)
USB x2 -‐‑‒> PC
光センサー (A0)
(CdS)
LED (D3)
⾜足の⻑⾧長いほ
うが(+)
Knob (A1)
(ボリューム)
•  Intel® EdisonとSeeed* Grove shieldをArduino拡張
ボードに接続
•  D2に押しボタンスイッチ
•  D3にLED
•  A0に光センサー (CdS)
•  A1に回転ノブ (ボリューム)
•  12V電源
•  Micro USBx2をPCに接続
•  Arduino拡張ボード上のUSB
選択スイッチを下側に設定
Intel® XDK for IoT Edition
"   JavaScript (Node.js), HTML5を使ったアプリケーション⽤用統合開発環境
"   デバッガも装備
"   下記URLより無償でダウンロード可能 (使⽤用するにはユーザー登録、アカウント作成が必要です)
https://software.intel.com/en-‐‑‒us/html5/xdk-‐‑‒iot
XDK統合開発環境
デバッガ
サンプルコードのダウンロード
"  下記URLよりサンプルコードをダウンロード
§  http://toshiake-‐‑‒iot-‐‑‒handson.s3-‐‑‒website-‐‑‒ap-‐‑‒
northeast-‐‑‒1.amazonaws.com/classmethod-‐‑‒devday/iothandson-‐‑‒
edison.zip
•  PDFからのコピーアンドペーストの場合、余計な⽂文字が含まれることがあります。
テキストエディタで確認してください。
§  解凍後、SampleCode1フォルダに本章のハンズオンプロジェクトが
含まれております。
XDKの基本操作 – プロジェクトのインポート
“OPEN AN INTEL XDK PROJECT”をクリック
XDKプロジェクトファイルを選択 (*.xdk)
* 新規でプロジェクトを作る場合、“INTERNET OF THINGS EMBEDDED APPLICATION” – “Templates”から適当なテン
プレートを選んで作成
プロジェクトを編集する
“DEVELOP”タブをクリックすると選択したプロジェクトを
編集できます
左のペインからmain.jsを選べばNode.jsのメインコード
が表示されます
EdisonのIPアドレスを確認
"   Serial Terminalタブを選択。PortをEdisonとつながっているシリアルポートを指定し、Connectをクリック
"   ユーザ名 root, パスワード Password1を⼊入⼒力力してログイン
"   # ifconfig でEdisonに設定されているIPアドレスを確認してください。
Edisonと接続する
Passwordは、Password1 です。
EdisonのIPアドレス
Edisonのログイン情報
マニュアル接続時のダイアログボックス
" 
" 
" 
XDKとEdisonはネットワーク経由で接続します。同⼀一サブネット内になるようにしてください
通常は、XDKがEdisonを⾃自動で検出し、”IoT Device”ドロップダウンリストにEdisonの名前が出てきますので選択してください
Edisonが発⾒見見できない場合、”[+] Add Manual Connection”でIPアドレスを指定して繋ぐことができます
プロジェクトの実⾏行行、停⽌止
①編集
②保存
(CTRL+S)
↓④転送 ↓⑤実行
↑③停止
• 
• 
• 
XDKはソースの⾃自動保存をしません。「保存」せずに「転送」すると変更更が反映されずません
Edison上でプロジェクトが実⾏行行されている時に転送すると正常に転送出来ません。「停⽌止」してから
転送してください
「④転送」を押した時にBuildが必要な場合はBuildするかどうか尋ねられます。使⽤用するパッケージ
に変更更がない場合Buildは不不要です。Buildした場合はBuildのみで作業が終了了し、転送は⾏行行われませ
ん。再度度転送ボタンを押して転送を⾏行行ってください。
Node.jsで使⽤用できるI/Oライブラリ
インテルが開発したライブラリ
mraa: Intel® GalileoとIntel® Edisonで
利利⽤用できるオープンソースのライブラリ。
GPIO, PWM, Analog IOなどの低レベルI/
Oアクセスを提供. Intel Developer Relationsが開発。
upm: 特定センサーやアクチュエータを操
作する、mraaを利利⽤用したオープンソース
⾼高レベルI/Oライブラリ。Intel Developer Relationsが開発。
iot-‐‑‒io: Intel® Galileo / Edisonで利利⽤用で
きるオープンソースライブラリ。Arduino
に似たAPIを持つ。RPCを経由したリモー
トアクセスも提供。Intel Labs Chinaが開
発。
3rd partyが開発したライブラリ
johnny-‐‑‒five: Intel® Galileo/Edisonを含む多
種多様なボードをサポートする、プラグイン形
式のオープンソースI/Oライブラリ。 インテル
ボード⽤用プラグインはgalileo-‐‑‒io を使⽤用した時
と違い、Firmataを経由しないダイレクトイン
ターフェースを利利⽤用。
cylon: オブジェクト指向、⾮非同期、オープン
ソースなポータブルロボットフレームワーク
onoff: sysfs経由でGPIO/PWMを直接操作する
オープンソースI/Oライブラリ
i2c: sysfsを利利⽤用したNode.js⽤用 I2Cライブラリ
NOTE: sysfsを利利⽤用したI/O操作にはボードの
詳細情報を知っている必要があります
MRAA – 初期化部 (Arduinoのsetup()相当)
var mraa = require("mraa");
モジュールのロード
var button = new mraa.Gpio(2);
button.dir(mraa.DIR_IN);
D2をGPIO2として使う
GPIO 2を⼊入⼒力力モードに設定
var led = new mraa.Pwm(3);
led.period(1);
led.enable(true);
D3をPWM出⼒力力として使う
PWM周期を1msに設定
PWM出⼒力力ON
var knob = new mraa.Aio(1);
A1をアナログ⼊入⼒力力として使
う
ピンの初期化、変数の初期化など一度だけ実行される処理
MRAA – 実⾏行行部 (Arduinoのloop()部相当)
setInterval(function() {
var push = button.read();
if (push) {
led.write(
knob.readFloat()
);
}
}, 100); // every 0.1s (100ms)
何かの処理理を周期的に実⾏行行
ボタン状態を読み込み
ボタンが押されていたら
ノブの状態を読み、 PWM値(LED輝度度)を
書き込む
この処理理を 0.1s (100ms)
毎に実⾏行行
厳密にはloop()のように連続して実行されるわけではなく、指定周期ごとに繰り返し
実行される。でも、大体同じことが出来る。
課題1 -‐‑‒ Project ʻ‘A0ʼ’
setInterval(function
() {
var push =
button.read();
if (push) {
led.write(
knob.readFloat()
);
}
}, 100); // every 0.1s (100ms)
* 初期化部分は省略されています
このコードは以下の動作をしています:
ボタンが押されている:ノブ(ボリューム)
の状態に応じてLEDの輝度度をコントロール
ボタンが押されていない:何もしない
ボタンでLEDのOn/Offコントロールができ
ていません
コードを変更更し、ボタンが離離された時には
LEDが消灯するようにしてください
課題1: 解答 – Project ʻ‘A1ʼ’
setInterval(function()
{
var push =
button.read();
if (push) {
led.write(
knob.readFloat()
);
} else {
led.write( 0 );
}
}, 100); // every 0.1s (100ms)
何かの処理理を周期的に実⾏行行
ボタン状態を読み込み
ボタンが押されていたら
ノブの状態を読み、 PWM値(LED輝度度)を書き込む
それ以外の時は
PWM (LED輝度度)に0 を書き込む
この処理理を 0.1s (100ms)毎に実⾏行行
課題2 -‐‑‒ Project ʻ‘A1ʼ’
setInterval(function()
{
var push =
button.read();
if (push) {
led.write(
knob.readFloat()
);
} else {
led.write( 0 );
}
}, 100); // every 0.1s (100ms)
正直、ボタンを押しっぱな
しにしていないとLEDが付
かないのはしんどいです
コードを変更更し、ボタンを
押す毎にOn/Offが切切り替
わるようにしてください (トグル動作)
課題2: 解答 – Project ʻ‘A2ʼ’
LEDの状態を保持する変数
var light_state = 0;
前回のボタン状態を保持する変数
var last_push = button.read();
setInterval(function() {
何かを周期的に実⾏行行
var push = button.read()
ボタンの状態を読み込み、
今はボタンが押されていて、かつ前回は押されてい
if (push && !last_push) {
ない時(=押された瞬間)
light_state = !light_state;
LEDの状態をトグル(反転)させる
}
last_push = push;
次回ループのために現在のボタン状態を保存
if (light_state) {
led.write( knob.readFloat() ); LED状態がONの時
ノブの状態を読み込み、PWM(LED輝度度)に書き込
} else {
む
led.write( 0 );
それ以外(LED状態がON以外)の時
}
}, 100); // every 0.1s (100ms)
PWMに0を書き、LEDを消灯
100ms毎に繰り返し実⾏行行
課題 3 -‐‑‒ Project ʻ‘A2ʼ’
var light_state = 0;
var last_push = button.read();
setInterval(function() {
var push = button.read()
if (push && !last_push) {
light_state = !light_state;
}
last_push = push;
if (light_state) {
led.write( knob.readFloat() );
} else {
led.write( 0 );
}
}, 100); // every 0.1s (100ms)
周囲の明るさに応じて輝度度を⾃自動調
整するようにしてください
(周囲が暗い=LEDを暗めに、周囲が
明るい=LEDを明るめに)
ヒント1: 光センサーはA0につながっています
ヒント2: readFloat()で、アナログ値が正規化
値(0.0f~∼1.0f)で読み出せます
http://iotdk.intel.com/docs/master/mraa/
classmraa_̲1_̲1_̲aio.html
課題 3: 解答 – Project ʻ‘A3ʼ’
var ambient = new mraa.Aio(0);
“ambient”を宣⾔言し、A0をアナログ
var light_state = 0;
⼊入⼒力力とする
var last_push = button.read();
setInterval(function() {
var push = button.read()
if (push && !last_push) {
light_state = !light_state;
}
last_push = push;
if (light_state) {
led.write( knob.readFloat() * ambient.readFloat() );
} else {
led.write( 0 );
光センサーの値を読み出し
}
}, 100); // every 0.1s (100ms)
(0.0~∼1.0)、掛け合わせることで輝
度度を調整する
Amazon Kinesis
"   Amazon Kinesisはリアルタイムにデータを収集、分析するためのフルマネージド型ク
ラウドサービスです。
"   最後に、今回のスマートライトにKinesisに情報を送信する機能を追加することで、今
回のスマートライトをIoT化します
Amazon Kinesis
Amazon* Kinesis*へのデータストリームの送信
var AWS = require('aws-sdk');
AWS.config.loadFromPath(
"/home/root/aws_config.json");
var kinesis = new AWS.Kinesis();
AWS SDKの読み込み
AWS認証情報の読み込み
(Credentials)*1
Kinesis sub-‐‑‒APIオブジェクト生成
aws_config.jsonは、こんな感じのJSONファイルを用意してください
{
"accessKeyId": "akid",
"secretAccessKey": "secret",
"region": "us-west-2“
}
*1 今回の例題プログラム’A9s’ではCredentialsの取得にAmazon Cognitoを使用しています
Amazon* Kinesis*へのデータストリームの送信
function submit(status) {
var log_data = {
'Data': JSON.stringify(status),
'StreamName': 'Light',
'PartitionKey': …
};
kinesis.putRecord(log_data,
function(err,data) {
if (err) {
…
}
}
}
送信データの作成
データの送信
例例題4: Amazon Kinesisにつないでみる – Project ʻ‘A4ʼ’
"   A3をベースに、Amazon Kinesisにデータをputするコードを追加します
"   AWSのCredentials取得にはAmazon Cognitoを使⽤用しています
http://aws.amazon.com/jp/cognito/
A9sの56行目(name: ‘dev25’,’)を自席の番号に書き換えてください
書き換えが終わったらA9sをEdisonで実行してください
以下のURLに接続し、Kinesisにデータが送られていることを確認して下さい
http://iot-dashboard.toshiake.be:9000/
実行画面
AWSクラウド側の設計
設計上の考慮点
"  対象デバイス数
•  トランザクション数(tps), 通信量量
•  フロントシステムの柔軟性
"  データ処理理
•  ETL処理理、アーカイブ、分析などどのような処理理を⾏行行うか
"   セキュリティ
•  デバイス認証
"  通信プロトコル
•  HTTP(S), MQTTなど
Pragma architecture
Intermittent Layer
Device DevOps
Serving Layer
Web Apps
Audit & Authorization
Small
Thing
Commands
Telemetry
Speed Layer
re:invent 2014 -‐‑‒ ARC 306
http://www.slideshare.net/AmazonWebServices/arc306-‐‑‒iot-‐‑‒small-‐‑‒things-‐‑‒and-‐‑‒the-‐‑‒cloud-‐‑‒aws-‐‑‒reinvent-‐‑‒2014 Pragma architecture
Intermittent Layer
Device DevOps
Serving Layer
Web Apps
Audit & Authorization
Small
Thing
Commands
Telemetry
Speed Layer
re:invent 2014 -‐‑‒ ARC 306
http://www.slideshare.net/AmazonWebServices/arc306-‐‑‒iot-‐‑‒small-‐‑‒things-‐‑‒and-‐‑‒the-‐‑‒cloud-‐‑‒aws-‐‑‒reinvent-‐‑‒2014 構成例例
• 
• 
クラウドの柔軟性を活かしてビジネスやシステムのトライ&エラー
要件に合わせた最適なサービスの選択
構成例例
親機
センサー
モバイル
その他にも通知をするための機能、機械学習などとのインテグレーションもニーズあり
Amazon Kinesis
Amazon Kinesis
"  データのストリーミング処理理のためのマネージドサービス
"  ⼤大量量のセンサーやデバイス、モバイル端末などからのデータ
を受け取り、バックエンドの処理理へつなぐことが可能
Data Sources Data Sources Data Sources AWS Endpoint Amazon Kinesis
データINPUT
Availability
Zone
Availability
Zone
Shard 1
Shard 2
データ保持
Shard N
Availability
Zone
データOUTPUT
App.1 [Aggregate & De-­‐Duplicate] 各種処理理
S3
App.3 [Sliding Window Analysis] Redshift
Amazon Kinesis 特徴
容易易なトライ&エラー
•  1つのデータを複数のアプリ
ケーションで利利⽤用できるため
アプリケーション毎に追加・
削除できる
データ処理理・インテグレーション
• 
• 
Kinesis Client Libraryを使うこと
により容易易にKinesisアプリケー
ションの開発ができる
Kinesis Connectorを⽤用いること
でAmazon S3, Redshiftや
DynamoDBなどAWSのサービス
とのインテグレーションが容易易
Amazon Kinesis 基本構成パターン
• 
• 
⽬目的毎にアプリケーションを構成するパターン
それぞれのアプリの可⽤用性・信頼性に合わせた設計
例例:リアルタイムダッシュボード
センサー Dashboard アプリ1
DynamoDB
センサー センサー アプリ2
Kinesisからのデータ取り出しと処
理理にAWS Lambdaも利利⽤用可能
Redshift
AWS Lambda
"   AWS Lambdaは、スケーラブルかつ信頼性の⾼高いクラウド上で、イベ
ントをトリガーにお客様独⾃自のコードを稼働させるComputeサービス
§ 
§ 
§ 
§ 
インスタンスやOS等インフラの管理理作業が不不要
毎⽇日数件から毎秒数千件のリクエストまで⾃自動的にスケール
従量量課⾦金金、実際にコードが稼働した時間に対してのお⽀支払
新たに追加された情報に対して即座に応答するアプリケーションを、特別な仕組みな
く簡単に実装できる
イベント
KinesisやDynamoDBへのデータ⼊入⼒力力
S3へのオブジェクトPut
結果
Amazon DynamoDB
Amazon DynamoDB
•  NoSQL as a Service
•  超⾼高速・予測可能な⼀一貫したパフォーマンス
•  シームレスなスケーラビリティ、そして低コスト
運⽤用管理理必要なし
低レイテンシ、SSD
プロビジョンスループット
無限に使えるストレージ
DynamoDB streams
• 
DynamoDBテーブルに対する変更更情報をストリームとしてデータ処理理するアプリや
Lambda Functionが受信し、データ処理理することができる
センサー アプリ
• 
• 
センサー センサー Lambda
Function
変更更情報は24時間保存
テーブル内データの複製を
作成することも可能
Amazon Cognito
Amazon Cognitoとは?
•  アプリのデータをセキュアに、オフラインでも参照可能な形で保存
し、かつ、デバイス間でSync可能にするサービス
•  Identity Broker
–  IDとアクセスの管理理
• 
• 
複数のIDプロバイダとの連携
パブリックなIDプロバイダを利利⽤用することで認証基盤の実装が不不要
当然、パスワードの保管も気にしなくていい
–  ユニークIDの作成と管理理、識識別
•  Sync
–  デバイスをまたいだデータ同期
–  アプリケーションはオフラインでも機能
–  あらゆるデータをKey/Value形式で保存可能
• 
アプリケーションの設定、ゲームにおける状態など
–  ⼿手間のかかるサーバサイドの実装と運⽤用が不不要
Guest
AWS Identity and Access Management
•  AWS操作をよりセキュアに⾏行行うための認証・認
可の仕組み
•  AWS利利⽤用者の認証と、アクセスポリシーを管理理
§  AWS操作のためのグループ・ユーザー・ロールの作成が可能
§  グループ、ユーザーごとに、実⾏行行出来る操作を規定できる
§  ユーザーごとに認証情報の設定が可能
IAM動作イメージ
全操作可能
S3はすべて
操作可能
S3参照だけ
APIやマネジメントコンソールからの
アクセスに対して、権限をチェック
リアルタイムデータとヒストリカルデータ
リアルタイムデータとヒストリカルデータ
•  ⽤用途に応じたデータの可視化
–  リアルタイム=トレンドの把握
–  ヒストリカル=データ分析
Stream
Query
センサー Dashboard
センサー Data Insight
DynamoDB
センサー Kinesis
Redshift
S3
EMR
ハンズオン
1.  Edisonでの開発
•  基本的なEdisonでの開発⽅方法を学びます。
2.  Amazon Kinesisの設定
•  Intel Edisonで取得されたセンサーデータを取得、格納するためのストリーム を
作成します。
3.  Amazon Cognitoの設定
•  Intel Edisonに対してKinesisへのデータputを許可するためにCognitoによる認証
を設定します。
4.  Amazon Identity and Managementの設定
•  AWSの各リソースを利利⽤用するための権限設定を⾏行行います。 5.  アプリケーション⽤用EC2インスタンスの起動
•  アプリケーションが稼働するEC2インスタンスをハンズオン⽤用AMIから起動します。
6.  Intel Edisonの設定
•  Intel Edisonにセンサーを接続し、Kinesisへセンサーデータを上げるための設定
を⾏行行います。
7.  アプリケーションの実⾏行行
•  実際にIntel EdisonからセンサーデータをKinesisに送信し、アプリケーション上
でデータが可視化できることを確認します。
注意事項
•  リージョンを意識識してください!
–  Cognitoはバージニア、その他は東京です
•  VPCの上限に注意!
•  終わったら後⽚片付けしましょう!
– 
利利⽤用したリソースは削除、消すリソース間違えないように!