aws black belt tech シリーズ 2015 - aws iot

87
1 AWS IoT AWS Black Belt Tech Webinar 2015 アマゾン ウェブ サービス ジャパン株式会社 ソリューションアーキテクト 吉田 英世 2015/12/02

Upload: amazon-web-services-japan

Post on 16-Apr-2017

18.473 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: AWS Black Belt Tech シリーズ 2015 - AWS IoT

1

AWS IoT

AWS Black Belt Tech Webinar 2015

アマゾン ウェブ サービス ジャパン株式会社

ソリューションアーキテクト

吉田 英世

2015/12/02

Page 2: AWS Black Belt Tech シリーズ 2015 - AWS IoT

2

自己紹介

名前:吉田 英世 (@aquaviter)

所属:アマゾン ウェブ サービス ジャパン株式会社技術本部 ストラテジックソリューション部ソリューションアーキテクト

経歴:インフラエンジニア(ネットワーク)IoTプラットフォーム アーキテクト

好きなAWSサービス: AWS IoT

Page 3: AWS Black Belt Tech シリーズ 2015 - AWS IoT

3

アジェンダ

イントロダクション

AWS IoTの機能説明

はじめてみよう、AWS IoT

価格

まとめ

Page 4: AWS Black Belt Tech シリーズ 2015 - AWS IoT

4

アジェンダ

イントロダクション

AWS IoTの機能説明

はじめてみよう、AWS IoT

価格

まとめ

Page 5: AWS Black Belt Tech シリーズ 2015 - AWS IoT

5

クラウドとモノをつなげるときに、様々な要件がある

たくさんの

SDKやツール

クラウドへの接続 スケーラビリティ セキュリティ クラウドに適した

アプリケーション実装

ビッグデータ

分析

予測

Page 6: AWS Black Belt Tech シリーズ 2015 - AWS IoT

7

AWS IoT

デバイスデータに対するいろいろなアクション

セキュアでスケーラブルなデバイスとクラウドの

双方向接続

誰でも簡単にはじめられる

さまざまなデバイスとAWSをセキュアに接続し、デバイスデータに対する処理やアクションを実行したり、デバイスをリモートで制御・管理することが可能

Page 7: AWS Black Belt Tech シリーズ 2015 - AWS IoT

8

アジェンダ

イントロダクション

AWS IoTの機能説明

はじめてみよう、AWS IoT

価格

まとめ

Page 8: AWS Black Belt Tech シリーズ 2015 - AWS IoT

9

AWS IoT 全体構成

デバイス SDK接続、認証、メッセージ交換

を行なうためのクライアントライブラリ

デバイスゲートウェイMQTTとHTTPを利用した

デバイスとのコミュニケーション

認証と認可セキュアな双方向の

認証と認可

ルールエンジンルールベースの

メッセージ変換とAWSサービスや

外部エンドポイントへのルーティング

AWSサービス- - - - -

その他のサービス

デバイスシャドウデバイスステータスの永続化

アプリケーション

AWS IoT API

デバイスレジストリデバイスのアイデンティティ

とマネージメント

Page 9: AWS Black Belt Tech シリーズ 2015 - AWS IoT

10

デバイスゲートウェイ

デバイスゲートウェイ

Page 10: AWS Black Belt Tech シリーズ 2015 - AWS IoT

11

デバイスゲートウェイ

スタンダードプロトコル (no lock-in)

数百万デバイスやアプリをMQTTやHTTP1.1プロトコルを使って通信ができる。

SDK以外にも汎用ライブラリが利用可能。

長期間のセッション保持によるクラウドを介したメッセージ送受信

クライアント(デバイスやアプリ)は制御信号やコマンドなどをクラウドから受信することができる

デフォルトのセキュリティ

X509証明書とTLS1.2を使った相互認証

Topic Based

Architecture

(lights/thing-2/color)

ハイスケーラブルメッセージブローカー

Page 11: AWS Black Belt Tech シリーズ 2015 - AWS IoT

12

MQTTプロトコルとは

• M2M/IoTで利用されるコミュニケーションプロトコル

• OASIS スタンダードプロトコル(v3.1.1)

• ライトウェイト

• Pub-Sub メッセージ交換モデル

• リソースや回線帯域が限られているデバイスで利用

Page 12: AWS Black Belt Tech シリーズ 2015 - AWS IoT

13

メッセージブローカの注意点

• QoS2には非対応

• Persistent Session(clean session=0)は非対応

• retainには非対応

• 複数のデバイスから同じクライアントIDで接続できない

• メッセージの順序性は保障していない

Page 13: AWS Black Belt Tech シリーズ 2015 - AWS IoT

14

MQTT vs HTTPS

• スループットが93倍あがる• メッセージ送信において1/12の消費電力• メッセージ受信において1/180の消費電力• コネクション維持において1/2の消費電力• ネットワークオーバーヘッドの8倍削減

Source: http://stephendnicholas.com/archives/1217

MQTTを利用することで・・・

Page 14: AWS Black Belt Tech シリーズ 2015 - AWS IoT

15

MQTT Publish/Subscribe

Publisher

Publisher

Publisher

Broker

Topic:sensor/temp

Subscriber

Subscriber

Subscriber

Page 15: AWS Black Belt Tech シリーズ 2015 - AWS IoT

16

MQTTトピック – ワイルドカード “#”

sensor/#

sensor配下すべてのトピックをsubscribe

sensor/water/room1

temp

water

door

temp water door

Page 16: AWS Black Belt Tech シリーズ 2015 - AWS IoT

17

MQTTトピック – ワイルドカード “+”

sensor/+/room1

room1のトピックをsubscribe

sensor/water/room1

temp

water

door

temp water

Page 17: AWS Black Belt Tech シリーズ 2015 - AWS IoT

18

MQTT QoS

QoS=0At most once

QoS=1at least once

PUBACK

PUBLISHPUBLISH

ベストエフォート型。メッセージの到達を保証していない。オーバーヘッドは少ない。

保証型。メーッセージの到達は保証。オーバーヘッドはQoS=0に比べて大きい。

Page 18: AWS Black Belt Tech シリーズ 2015 - AWS IoT

19

メッセージブローカの制限値(一部)

項目 内容

クライアントIDのプレフィックス $はサービスで予約済

トピック長の上限 256Bytes(UTF-8)

クライアントIDのサイズ上限 128Bytes(UTF-8)

メッセージサイズ上限 128KB(上限を超えた場合Reject)

コネクションあたりのスループット 512KB/s(上限を超えた場合スロットリング)

セッションあたりのサブスクリプション数 50

無通信状態のコネクション 30分後の切断

http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/iot-limits.html

Page 19: AWS Black Belt Tech シリーズ 2015 - AWS IoT

21

認証とアクセス許可

AUTHENTICATIONSecure with mutual

authentication and encryption認証とアクセス許可

Page 20: AWS Black Belt Tech シリーズ 2015 - AWS IoT

22

TLSを使った相互認証

証明書

プライベートキー

証明書プライベートキー

証明書

プライベートキー

Page 21: AWS Black Belt Tech シリーズ 2015 - AWS IoT

23

AWS IoTが対応する2つのプロトコル

MQTT + TLS相互認証 AWS認証 + HTTPS

サーバ認証 TLS + Cert TLS + Cert

クライアント認証 TLS + Cert AWS API Keys

Confidentiality TLS TLS

プロトコル MQTT HTTP

識別 AWS ARNs AWS ARNs

認可 AWS Policy AWS Policy

NEW 従来のAWSプロトコル

Page 22: AWS Black Belt Tech シリーズ 2015 - AWS IoT

24

AWS IoTポリシー

{"Version": "2012-10-17", "Statement": [{

"Effect": "Allow", "Action":["iot:Publish"] "Resource": ["arn:aws:iot:ap-northeast-1-1:123456789012:topic/foo/bar"]

}, { "Effect": "Allow", "Action": ["iot:Connect"], "Resource": ["*"]

}] }

証明書にアタッチ

デバイスに対してAWS IoTのどのリソース(トピックなど)に対し、どのような権限を与えるか、きめ細かい権限設定が可能

Page 23: AWS Black Belt Tech シリーズ 2015 - AWS IoT

25

アプリケーションはCognitoアイデンティティを利用

デバイス(IoT証明書)• Action: SUBSCRIBE• Resource: /thing/123• Effect: Allow

AWS Cognitoアイデンティティ(IoTポリシー)• Action: PUBLISH• Resource:/thing/123• Effect: Allow

SUBSCRIBE /thing/123

PUBLISH /thing/123

Page 24: AWS Black Belt Tech シリーズ 2015 - AWS IoT

26

AWS IoT全体のセキュリティ

DynamoDB

AWSユーザ• AWSセキュリティクレデンシャル• IAMポリシー

AWSユーザ• AWSセキュリティクレデンシャル• IAMポリシーデバイス

• IoT証明書• IoTポリシー

AWS Cognitoアイデンティティ• 認証プロバイダトークン +

AWSセキュリティクレデンシャル• IAMロールポリシー• IoTポリシー AWSユーザ

• AWSセキュリティクレデンシャル

• IAMポリシー

IoTルールエンジン• AWS IAMロール• AWSセキュリティ

クレデンシャル• IAMロールポリシー

Lambda Kinesis

Page 25: AWS Black Belt Tech シリーズ 2015 - AWS IoT

27

ルールエンジン

ルールエンジン

Page 26: AWS Black Belt Tech シリーズ 2015 - AWS IoT

28

■シンプル&慣れた構文

・SQL文を使ったトピックのフィルタ

・オプションのWHERE句で条件を記述することが可能

・JSONサポート

■メッセージ変換機能

・文字列操作 (正規表現サポート)

・算術計算

・コンテキストベースのヘルパー

・暗号

・UUID, Timestamp, 乱数など.

ルールエンジン

SELECT * FROM ‘things/thing-2/color’ WHERE color = ‘red’

{ “color”: “red” }

Page 27: AWS Black Belt Tech シリーズ 2015 - AWS IoT

29

ルールエンジン

SELECT *, clientId() as MQTTClientId

FROM 'one/rule'

WHERE

startsWith(topic(2), ’Vac123') AND

(state = ‘SWEEP' OR bin.size < 30)",

"actions":

[{

"republish": {

"topic":

"controllers/${substring(topic(3),

3, 5)}",

}]

{ “color”: “red” }

Page 28: AWS Black Belt Tech シリーズ 2015 - AWS IoT

30

SQLリファレンス

SELECT DATA FROM TOPIC WHERE FILTER

Page 29: AWS Black Belt Tech シリーズ 2015 - AWS IoT

31

SQLリファレンス

SELECT DATA FROM TOPIC WHERE FILTER

• RDBMSと同じようにメッセージを検索可能

• FromのデフォルトはMQTTトピック

• 例FROM mqtt(‘my/topic’)

FROM mqtt(‘my/wildcard/+/topic’)

FROM (‘my/topic’)

Page 30: AWS Black Belt Tech シリーズ 2015 - AWS IoT

32

SQLリファレンス

SELECT DATA FROM…

• SELECT *

• SELECT deviceid, temp

• SELECT coords.latitude

• SELECT a.another_level.b– Returns {“b” : 3}

• SELECT a..b– Returns {“b” : 3}

{

“deviceid” : “iot123”,

“temp” : 54,

“humidity” : 32,

“coords” : {

“latitude” : 47.615694,

“longitude” : -122.3359976

},

“a” : {

“another_level” : {

{“b” : 3},

{“b” : 5}

}}

}

サンプルのメッセージ

Page 31: AWS Black Belt Tech シリーズ 2015 - AWS IoT

33

SQLリファレンス

SELECT DATA FROM…

• SELECT deviceid AS client

• SELECT md5(deviceid) AS hashed_id

• 値の代入も可能

• ${expression}

• ${topic() - md5(deviceid)}

• ${deviceid - temp}

{

“deviceid” : “iot123”,

“temp” : 54,

“humidity” : 32,

“coords” : {

“latitude” : 47.615694,

“longitude” : -122.3359976

},

“a” : {

“another_level” : {

{“b” : 3},

{“b” : 5}

}}

}

SAMPLE PAYLOAD

Page 32: AWS Black Belt Tech シリーズ 2015 - AWS IoT

34

SQLリファレンス

SELECT DATA FROM TOPIC WHERE FILTER

演算子 意味 使用例

= Equal, comparison color = 'red'

<> Not Equal, comparison color <> 'red'

AND Logical AND color = 'red' AND siren = 'on'

OR Logical OR color = 'red' OR siren = 'on'

() Parenthesis, grouping color = 'red' AND (siren = 'on' OR isTest)

+ Addition, arithmetic 5 + 3

- Substitution, arithmetic 5 - 4

/ Division, arithmetic 8 / 2http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/iot-rules.html

Page 33: AWS Black Belt Tech シリーズ 2015 - AWS IoT

35

SQLリファレンス

SELECT DATA FROM TOPIC WHERE FILTER

演算子 意味 使用例

< Less than, comparison color = 'red'

<= Less than or equal color <> 'red'

> Greater than, comparison color = 'red' AND siren = 'on'

>= Greater than or equal color = 'red' OR siren = 'on'

CASE … WHEN … THEN … ELSE … END

Case statement CASE location WHEN 'home’

THEN 'off' WHEN 'work’

THEN 'on' ELSE 'silent' ENDhttp://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/iot-rules.html

Page 34: AWS Black Belt Tech シリーズ 2015 - AWS IoT

36

ルールエンジンのアクション

RULES ENGINETransform messages

based on rules and

route to AWS Services

AWS Services

- - - - -

3P Services

AWS サービス- - - - -

外部サービス

Page 35: AWS Black Belt Tech シリーズ 2015 - AWS IoT

37

1. AWS サービス(直接連携可能)

ルールエンジン

アクション

ルールエンジンのアクション

AWS

Lambda

Amazon

SNS

Amazon

SQS

Amazon

S3

Amazon

Kinesis

Amazon

DynamoDB Amazon RDS

Amazon Redshift

Amazon Glacier

Amazon EC2

3. 外部のエンドポイント(Lambda and SNSを経由)

AWS IoTからAWSサービス/外部のエンドポイントの呼び出しを行なう

2. その他のAWS(Amazon Kinesis, AWS Lambda, Amazon S3などのサービスを経由)

Page 36: AWS Black Belt Tech シリーズ 2015 - AWS IoT

38

直接連携できるAWSのサービス

ルールエンジンは、AWS IoTにPublishされたメッセージを評価し、メッセージの変換後に

ルールに基いて適切なエンドポイントにメッセージを配信

外部のエンドポイント呼び出しはLambdaかSNSを利用

Lambda functionの呼び出し

S3 bucketへのデータ格納

DynamoDBテーブルへの挿入、更新と読み出し

SNS Topicまたは、Endpointに対するパブリッシュ

Kinesis streamへのパブリッシュアクション

Amazon Firehoseへのパブリッシュ

AWS IoTへのリパブリッシュ

Page 37: AWS Black Belt Tech シリーズ 2015 - AWS IoT

39

AWS IoT ルールエンジンとストリームデータ

N:1 のインバウンドセンサーデータ (ノイズ除去)

ルールエンジンで、フィルタと変換をセンサーデータに対してほどこしてからAmazon Kinesisにパブリッシュ

Kinesis Streams からエンタープライズアプリケーションへ

Kinesisで収集されたデータをデータベースやアプリケーション、その他のAWSサービスに送信

Ordered Stream

Page 38: AWS Black Belt Tech シリーズ 2015 - AWS IoT

40

AWS IoT ルールエンジンと Amazon SNS

Push通知

アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADMエンドポイント, Windows WNS

Amazon SNS -> HTTPエンドポイント(Or SMS or Email)

SNS経由でHTTPベースの外部エンドポイントをコール

SNS

2

Page 39: AWS Black Belt Tech シリーズ 2015 - AWS IoT

42

AWS IoT→AWS Lambda→外部のエンドポイント

Lambda関数

ルールエンジン

PolicyPrivate Key

& Certificate

Thing/Device

RuleSDK

AWS IoT AWS Services

Execution

RolePolicy

外部のエンドポイント

Permission

Select * from ‘iotbutton/+’

Action

Page 40: AWS Black Belt Tech シリーズ 2015 - AWS IoT

43

デバイス シャドウ

THING SHADOWPersistent thing state

during intermittent

connections

シャドウ

アプリケーション

Page 41: AWS Black Belt Tech シリーズ 2015 - AWS IoT

44

デバイス シャドウ

Shadow

■デバイスの現在のステータス、アプリケーションから要求されたステータスを管理するJSONドキュメント

■デバイスの影(シャドウ)として振る舞うことでクラウド上で仮想デバイス

■アプリケーションからの要求をデバイスに通知可能(デバイスがオフラインでも次回オンライン時にデバイスに通知)

■ドキュメントはAWS IoT上で管理され、APIやSDKで操作可能

Page 42: AWS Black Belt Tech シリーズ 2015 - AWS IoT

45

デバイス シャドウの動作フロー

Shadow

Device SDK

1. デバイスが現在のステータスをレポート

2. ステータスはJSON形式でデータストアに保管

3. アプリケーションが現在のデバイスのステータスを取得

4. アプリケーションがデバイスのステータス変更をリクエスト

5. アップデートされたステータスを同期(デバイス側でアプリケーションからのリクエストを処理)

6. デバイスが最新のステータスをレポート

7. デバイスのステータスが変更されたことを確認

AWS IoT

Page 43: AWS Black Belt Tech シリーズ 2015 - AWS IoT

46

シャドウのMQTT Topic

デバイスSDK (C-SDK, JS-SDK)で

シャドウのMQTTトピックを利用

AWS IoT Thing Shadow

UPDATE: $aws/things/{thingName}/shadow/updateDELTA: $aws/things/{thingName}/shadow/update/delta GET: $aws/things/{thingName}/shadow/getDELETE: $aws/things/{thingName}/shadow/delete

Sensor Reported Desired Delta

LED1 RED YELLOWLED1 = YellowTEMP = 60FACCEL X=1,Y=5,Z=4 X=1,Y=5,Z=4

TEMP 83F 60F

Page 44: AWS Black Belt Tech シリーズ 2015 - AWS IoT

47

デバイス シャドウ

{"state" : {

“desired" : {"engine" : "ON"

},"reported" : {

"engine" : ”OFF"},"delta" : {

"engine" : ”ON"}

},"version" : 10

}

Thing

1つまたは複数の現状ステータスをシャドウに通知シャドウから要求されるステータスを取得

Mobile App

デバイスに対して変更したいステータスをセット最新の通知されたステータスを取得

Shadow

シャドウは、delta, desired 及びreportedステータスをメタデータとバージョンをつけて管理

Page 45: AWS Black Belt Tech シリーズ 2015 - AWS IoT

48

エンジンはOFFの状態

{"state" : {

“desired" : {"engine" : ”OFF"

},"reported" : {

"engine" : ”OFF"}

},"version" : 10

}

Page 46: AWS Black Belt Tech シリーズ 2015 - AWS IoT

49

デバイスは現在のステータスをアップデート

"engine" : ”OFF”

{"state" : {

“desired" : {"engine" : ”ON"

},"reported" : {

"engine" : ”OFF"}

},"version" : 10

}

Page 47: AWS Black Belt Tech シリーズ 2015 - AWS IoT

50

アプリケーションからエンジンON

"engine" : ”ON”

{"state" : {

“desired" : {"engine" : ”ON"

},"reported" : {

"engine" : ”OFF"}

},"version" : 10

}

Page 48: AWS Black Belt Tech シリーズ 2015 - AWS IoT

51

deltaが通知される

"engine" : "ON”

{"state" : {

“desired" : {"engine" : "ON"

},"reported" : {

"engine" : ”OFF"},"delta" : {

"engine" : ”ON"}

},"version" : 10

}

Page 49: AWS Black Belt Tech シリーズ 2015 - AWS IoT

52

最新のステータスにアップデート(deltaは消える)

"engine" : "ON”

{"state" : {

“desired" : {"engine" : "ON"

},"reported" : {

"engine" : ”ON"},"delta" : {

"engine" : ”ON"}

},"version" : 10

}

Page 50: AWS Black Belt Tech シリーズ 2015 - AWS IoT

53

夜間、消灯後に自動でお掃除

desired: {

“status”: “RUNNING”

}

shadow/update update/accepted

vacuum/shadow/updateへPublish

vacuum/update/delta

reported: {

“AmbientLightValue”: 55

}

ルールエンジン

シャドウ

シャドウ

センサーの値をトリガーに他のデバイスの動作を開始

Select * from $/update/accepted where

AmbientLightValue <100

実機

センサー

Page 51: AWS Black Belt Tech シリーズ 2015 - AWS IoT

54

デバイスレジストリ

THING REGISTRYIdentity and Management of

your things

デバイスレジストリ

Page 52: AWS Black Belt Tech シリーズ 2015 - AWS IoT

55

デバイスレジストリ

• key: value – ファームバージョンやシリアル番号など

• サポートやメンテナンス目的で利用– マニュアルのURLやリファレンス番号

• 外部システム連携でも利用可能

Page 53: AWS Black Belt Tech シリーズ 2015 - AWS IoT

56

デバイスSDK

デバイス SDK

Page 54: AWS Black Belt Tech シリーズ 2015 - AWS IoT

57

AWS IoT デバイスSDK

C-SDK

(Ideal for embedded

OS)

JS-SDK

(Ideal for Embedded

Linux Platforms)

Arduino Library

(Arduino Yun)

• AWS IoTが提供しているデバイス向けのSDK• C/Arduino Yun/Javascript(node.js)に対応• AWS IoTを利用するための以下の機能を提供

• メッセージブローカーとの双方向接続のためのTLS1.2セキュリティクレデンシャルの設定

• MQTTコネクションの管理• 汎用MQTTクライアントライブラリのラップ(Publish/Subscribe)• デバイスシャドウの各種オペレーション

http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/iot-device-sdk.html

Page 55: AWS Black Belt Tech シリーズ 2015 - AWS IoT

58

AWS IoT SDK

AWS IoTへの

Publish/Subscribe、

デバイスシャドウの利用

AWS SDKの”iot-data”

ネームスペースを利用する

Cognito/SigV4での認証

HTTPSプロトコル

AWS IoT デバイスSDKを

利用する

TLS1.2の認証

MQTTプロトコル

AWS IoTの

コンフィグレーション

AWS SDKの”iot”

ネームスペースを利用する

Cognito/SigV4での認証

HTTPSプロトコル

AWSサービス全般

AWS IoT専用

Page 56: AWS Black Belt Tech シリーズ 2015 - AWS IoT

59

AWS IoT SDK

AWS IoTへの

Publish/Subscribe、

デバイスシャドウの利用

AWS SDKの”iot-data”

ネームスペースを利用する

Cognito/SigV4での認証

HTTPSプロトコル

AWS IoT デバイスSDKを

利用する

TLS1.2の認証

MQTTプロトコル

AWS IoTの

コンフィグレーション

AWS SDKの”iot”

ネームスペースを利用する

Cognito/SigV4での認証

HTTPSプロトコル

AWSサービス全般

AWS IoT専用

AWS IoT デバイス SDK

Page 57: AWS Black Belt Tech シリーズ 2015 - AWS IoT

60

Arduino Yún SDK

Arduino IDEでスケッチ

ライブラリを提供

ハードウェアエコシステム

Page 58: AWS Black Belt Tech シリーズ 2015 - AWS IoT

61

Node.js SDK

NPMモジュールをインストール

(aws-iot-device-sdk)

エンベデッドのサポート

Linuxベースのボードでも利用可

ハードウェアのアクセスも簡単

2秒おきに’topic/time’に時間をPublish

Page 59: AWS Black Belt Tech シリーズ 2015 - AWS IoT

62

エンベデッド C SDK

組込みデバイス向け

C99スタンダードに準拠

256KB以上の利用可能メモリ領域

ご自分のプラットフォームへポーティング

POSIX対応

Page 60: AWS Black Belt Tech シリーズ 2015 - AWS IoT

63

アジェンダ

イントロダクション

AWS IoTの機能説明

はじめてみよう、AWS IoT

価格

まとめ

Page 61: AWS Black Belt Tech シリーズ 2015 - AWS IoT

64

AWS IoTを使うための手順

デバイスの作成

証明書の作成

ポリシーの作成

証明書にデバイスとポリシーを割当てる

データのPublish/Subscribe!!

Page 62: AWS Black Belt Tech シリーズ 2015 - AWS IoT

65

AWS IoTをクリック

Page 63: AWS Black Belt Tech シリーズ 2015 - AWS IoT

66

デバイスを作成

Page 64: AWS Black Belt Tech シリーズ 2015 - AWS IoT

67

証明書を作成(1クリック)

3つのファイルをダウンロード

Page 65: AWS Black Belt Tech シリーズ 2015 - AWS IoT

68

証明書の作成(自前のCSR)

$ openssl genrsa -out privatekey.pem 2048

$ openssl req –new \–subj “/C=JP/ST=Tokyo/L=Meguro/O=Amazon Web Services Japan K.K./CN=AWS IoT Certificate” \-key privatekey.pem \-out cert.csr

csrファイル

プライベートキーとCSRを作成

CSRをアップロード

Page 66: AWS Black Belt Tech シリーズ 2015 - AWS IoT

69

証明書の有効化とルート証明書のダウンロード

https://www.symantec.com/content/en/us/enterprise/verisign/roots/VeriSign-Class%203-Public-Primary-Certification-Authority-G5.pem

以下のリンクからルート証明書をダウンロード。

証明書にチェックを入れて、[Actions]から[Activate]をクリック

Page 67: AWS Black Belt Tech シリーズ 2015 - AWS IoT

70

ポリシーの作成

デバイスに与える権限を記述

Page 68: AWS Black Belt Tech シリーズ 2015 - AWS IoT

71

証明書にポリシーを割り当てる

証明書にチェックを入れて、[Actions]から[Attach a policy]をクリック

Page 69: AWS Black Belt Tech シリーズ 2015 - AWS IoT

72

証明書にデバイスを割り当てる

証明書にチェックを入れて、[Actions]から[Attach a thing]をクリック

Page 70: AWS Black Belt Tech シリーズ 2015 - AWS IoT

73

データをPublish/Subscribeしてみる(mosquittoクライアント)

$ mosquitto_sub --cafile "rootca.pem" --cert ”cert.pem" --key ”privatekey.pem" \-h ”data.iot.ap-northeast-1.amazonaws.com" -p 8883 -q 1 -d –t ‘test/topic’

$ mosquitto_pub --cafile "rootca.pem" --cert ”cert.pem" --key ”privatekey.pem" \-h ”data.iot.ap-northeast-1.amazonaws.com" -p 8883 -q 1 -d –t ‘test/topic’ \-m ‘hogehoge’

Subscribe

Publish

privatekey.pem: プライベートキーcert.pem: 証明書rooca.pem: ルート証明書

Page 71: AWS Black Belt Tech シリーズ 2015 - AWS IoT

74

データをPublish/Subscribeしてみる(MQTT.fx)

http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/verify-pub-sub.html

Page 72: AWS Black Belt Tech シリーズ 2015 - AWS IoT

75

Intel Edison+Groveセンサーキットを使ったハンズオン

http://awsiot-handson-fundamentals.readthedocs.org/ja/latest/

Page 73: AWS Black Belt Tech シリーズ 2015 - AWS IoT

76

オフィシャルのIoTスターターキット

Page 74: AWS Black Belt Tech シリーズ 2015 - AWS IoT

77

オフィシャルのIoTスターターキット

Broadcom WICED

BCM4343W

On Threadx/Netx

Marvell

EZConnect

MW302

On FreeRTOS

Renasas RX63N

On Micrium OS

TI CC3200

On TI-RTOSMicrochip WCM

PIC32 Platform

Intel Edison

on Yocto Linux

Mediatek

LinkOne

on Linkit OS

Dragonboard

410c on

Ubuntu

Seeeduino

Arduino on

openWRT

Beaglebone

Green on

Debian

Page 75: AWS Black Belt Tech シリーズ 2015 - AWS IoT

78

アジェンダ

イントロダクション

AWS IoTの機能説明

はじめてみよう、AWS IoT

価格

まとめ

Page 76: AWS Black Belt Tech シリーズ 2015 - AWS IoT

79

シンプルな従量課金

• 従量課金、最低利用料金なし

• 配送するメッセージ数で課金

• 100万メッセージあたり$8 (東京リージョン)(US East、US West、EUリージョンは$5)

• バックエンドへのメッセージ送信は$0

AWS IoT無料利用枠最初の12ヶ月間、月あたり1ヶ月 25万メッセージ

Page 77: AWS Black Belt Tech シリーズ 2015 - AWS IoT

80

100 センサー * 30 日* 24 時間 * 60 分 = 438万メッセージ

1 メータ * 100 メッセージ * 30 日 * 24 時間 * 60 分 = 438万メッセージ

100 センサー: 1分あたりメッセージの送信

DynamoDBテーブル: すべてのセンサーデータ受信

メータリングユニット: すべてのセンサーデータ受信

1 テーブル * 100 メッセージ * 30 日 * 24 時間 * 60 分 = 438万メッセージ

438万メッセージの送信(センサー) 4.38/百万 * $8 = $35.04438万メッセージの受信(メータリングユニット) 4.38/百万 * $8 = $35.04438万メッセージの受信(DynamoDB) $0

AWS IoT

料金の計算例(東京リージョン)

= $70.08/月

Page 78: AWS Black Belt Tech シリーズ 2015 - AWS IoT

81

アジェンダ

イントロダクション

AWS IoTの機能説明

はじめてみよう、AWS IoT

価格

まとめ

Page 79: AWS Black Belt Tech シリーズ 2015 - AWS IoT

82

まとめ

• AWS IoTで、IoTに必要な機能を簡単に安全に利用することが可能

• AWSの他のサービスや外部サービスとのシームレスな連携で、分析や制御など様々な処理を組み合わせることが可能

• すぐに簡単にお試し可能

Page 80: AWS Black Belt Tech シリーズ 2015 - AWS IoT

83

参考資料 – re:Invent 2015(初級)

(MBL203)From Drones to Carshttp://www.slideshare.net/AmazonWebServices/mbl203-drones-to-cars-connecting-the-devices-in-motion-to-the-cloudhttps://www.youtube.com/watch?v=o1cN0KDaOf4

(MBL204)Connecting the Unconnectedhttp://www.slideshare.net/AmazonWebServices/mbl204-state-of-the-union-iot-powered-by-awshttps://www.youtube.com/watch?v=0WDiSLVEkYQ

(MBL205)Everything You Want to Know About AWS IoThttp://www.slideshare.net/AmazonWebServices/mbl205-new-everything-you-want-to-know-about-aws-iothttps://www.youtube.com/watch?v=OvoIh9ENxdM

Page 81: AWS Black Belt Tech シリーズ 2015 - AWS IoT

84

参考資料 – re:Invent 2015(中級)

(MBL302)Build Scalable, Serverless Mobile & IoT Back Ends with AWS Lambda

http://www.slideshare.net/AmazonWebServices/mbl302-scalable-serverless-mobile-iot-backendsporate-it-into-a-consumerfacing-device

https://www.youtube.com/watch?v=GnaO-LwdSuU

(MBL303)Build Mobile Apps for IoT Devices and IoT Apps for Mobile Devices

http://www.slideshare.net/AmazonWebServices/mbl303-build-mobile-apps-for-iot-devices-and-iot-apps-for-devices

https://www.youtube.com/watch?v=lUXFVJbDtUY

(MBL305)You Have the Data from Your Devices – Now What?

http://www.slideshare.net/AmazonWebServices/mbl305-you-have-data-from-the-devices-now-what-getting-the-value-of-the-iot

https://www.youtube.com/watch?v=2LHsfmfKLL0

(MBL311)Securey Thinging Across the Internet With AWS

http://www.slideshare.net/AmazonWebServices/mbl311-new-aws-iot-securely-building-provisioning-using-things

https://www.youtube.com/watch?v=G-kJxzd_NA8

(MBL312)AWS IoT Deep Dive – Programming the Physical World with Shadows and Rules

http://www.slideshare.net/AmazonWebServices/mbl312-new-aws-iot-programming-a-physical-world-w-shadows-rules

(MBL313)Understanding Hardware Platforms, Devices SDKs and Protocols

http://www.slideshare.net/AmazonWebServices/mbl313-new-aws-iot-understanding-hardware-kits-sdks-protocols

https://www.youtube.com/watch?v=rMiplPiU2nI

Page 82: AWS Black Belt Tech シリーズ 2015 - AWS IoT

85

2015.12.04追加分

Page 83: AWS Black Belt Tech シリーズ 2015 - AWS IoT

86

CloudWatch Logsによるログ取得

設定方法はこちらhttp://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/cloud-watch-logs.html

AWS IoTのログはCloudWatch Logsで取得可能。

CloudWatch LogsからLambdaによるリアルタイム処理やElasticsearch Serviceによる集計などの連携可能。

Lambda

Elasticsearch Service

CloudWatch LogsAWS IoT

Page 84: AWS Black Belt Tech シリーズ 2015 - AWS IoT

87

Q&A

次回Webinarのお申し込みhttp://aws.amazon.com/jp/event_schedule/

Page 85: AWS Black Belt Tech シリーズ 2015 - AWS IoT

88

World of IoT(SEMICON JAPAN 2015) に出展します!

http://www.semiconjapan.org/ja/iot

日程:2015年12月16日(水)~18日(金)

会場:東京ビックサイト

Page 86: AWS Black Belt Tech シリーズ 2015 - AWS IoT

89

Webinar資料の配置場所

• AWS クラウドサービス活用資料集– http://aws.amazon.com/jp/aws-jp-introduction/

Page 87: AWS Black Belt Tech シリーズ 2015 - AWS IoT

90

公式Twitter/FacebookAWSの最新情報をお届けします

@awscloud_jp

検索

最新技術情報、イベント情報、お役立ち情報、お得なキャンペーン情報などを日々更新しています!

もしくはhttp://on.fb.me/1vR8yWm