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

Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

1

AWS IoT

AWS Black Belt Tech Webinar 2015

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

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

吉田 英世

2015/12/02

Page 2: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

2

自己紹介

名前:吉田 英世 (@aquaviter)

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

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

好きなAWSサービス: AWS IoT

Page 3: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

3

アジェンダ

イントロダクション

AWS IoTの機能説明

はじめてみよう、AWS IoT

価格

まとめ

Page 4: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

4

アジェンダ

イントロダクション

AWS IoTの機能説明

はじめてみよう、AWS IoT

価格

まとめ

Page 5: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

5

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

たくさんの

SDKやツール

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

アプリケーション実装

ビッグデータ

分析

予測

Page 6: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

7

AWS IoT

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

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

双方向接続

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

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

Page 7: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

8

アジェンダ

イントロダクション

AWS IoTの機能説明

はじめてみよう、AWS IoT

価格

まとめ

Page 8: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

9

AWS IoT 全体構成

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

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

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

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

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

認証と認可

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

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

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

AWSサービス- - - - -

その他のサービス

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

アプリケーション

AWS IoT API

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

とマネージメント

Page 9: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

10

デバイスゲートウェイ

デバイスゲートウェイ

Page 10: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

11

デバイスゲートウェイ

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

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

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

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

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

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

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

Topic Based

Architecture

(lights/thing-2/color)

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

Page 11: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

12

MQTTプロトコルとは

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

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

• ライトウェイト

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

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

Page 12: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

13

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

• QoS2には非対応

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

• retainには非対応

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

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

Page 13: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

14

MQTT vs HTTPS

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

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

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

Page 14: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

15

MQTT Publish/Subscribe

Publisher

Publisher

Publisher

Broker

Topic:sensor/temp

Subscriber

Subscriber

Subscriber

Page 15: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

16

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

sensor/#

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

sensor/water/room1

temp

water

door

temp water door

Page 16: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

17

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

sensor/+/room1

room1のトピックをsubscribe

sensor/water/room1

temp

water

door

temp water

Page 17: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

18

MQTT QoS

QoS=0At most once

QoS=1at least once

PUBACK

PUBLISHPUBLISH

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

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

Page 18: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

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: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

21

認証とアクセス許可

AUTHENTICATIONSecure with mutual

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

Page 20: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

22

TLSを使った相互認証

証明書

プライベートキー

証明書プライベートキー

証明書

プライベートキー

Page 21: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

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: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

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: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

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: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

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: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

27

ルールエンジン

ルールエンジン

Page 26: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

28

■シンプル&慣れた構文

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

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

・JSONサポート

■メッセージ変換機能

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

・算術計算

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

・暗号

・UUID, Timestamp, 乱数など.

ルールエンジン

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

{ “color”: “red” }

Page 27: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

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: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

30

SQLリファレンス

SELECT DATA FROM TOPIC WHERE FILTER

Page 29: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

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: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

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: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

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: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

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: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

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: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

36

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

RULES ENGINETransform messages

based on rules and

route to AWS Services

AWS Services

- - - - -

3P Services

AWS サービス- - - - -

外部サービス

Page 35: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

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: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

38

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

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

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

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

Lambda functionの呼び出し

S3 bucketへのデータ格納

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

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

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

Amazon Firehoseへのパブリッシュ

AWS IoTへのリパブリッシュ

Page 37: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

39

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

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

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

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

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

Ordered Stream

Page 38: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

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: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

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: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

43

デバイス シャドウ

THING SHADOWPersistent thing state

during intermittent

connections

シャドウ

アプリケーション

Page 41: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

44

デバイス シャドウ

Shadow

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

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

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

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

Page 42: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

45

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

Shadow

Device SDK

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

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

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

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

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

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

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

AWS IoT

Page 43: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

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: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

47

デバイス シャドウ

{"state" : {

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

},"reported" : {

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

"engine" : ”ON"}

},"version" : 10

}

Thing

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

Mobile App

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

Shadow

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

Page 45: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

48

エンジンはOFFの状態

{"state" : {

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

},"reported" : {

"engine" : ”OFF"}

},"version" : 10

}

Page 46: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

49

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

"engine" : ”OFF”

{"state" : {

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

},"reported" : {

"engine" : ”OFF"}

},"version" : 10

}

Page 47: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

50

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

"engine" : ”ON”

{"state" : {

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

},"reported" : {

"engine" : ”OFF"}

},"version" : 10

}

Page 48: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

51

deltaが通知される

"engine" : "ON”

{"state" : {

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

},"reported" : {

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

"engine" : ”ON"}

},"version" : 10

}

Page 49: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

52

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

"engine" : "ON”

{"state" : {

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

},"reported" : {

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

"engine" : ”ON"}

},"version" : 10

}

Page 50: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

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: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

54

デバイスレジストリ

THING REGISTRYIdentity and Management of

your things

デバイスレジストリ

Page 52: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

55

デバイスレジストリ

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

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

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

Page 53: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

56

デバイスSDK

デバイス SDK

Page 54: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

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: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

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: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

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: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

60

Arduino Yún SDK

Arduino IDEでスケッチ

ライブラリを提供

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

Page 58: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

61

Node.js SDK

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

(aws-iot-device-sdk)

エンベデッドのサポート

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

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

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

Page 59: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

62

エンベデッド C SDK

組込みデバイス向け

C99スタンダードに準拠

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

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

POSIX対応

Page 60: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

63

アジェンダ

イントロダクション

AWS IoTの機能説明

はじめてみよう、AWS IoT

価格

まとめ

Page 61: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

64

AWS IoTを使うための手順

デバイスの作成

証明書の作成

ポリシーの作成

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

データのPublish/Subscribe!!

Page 62: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

65

AWS IoTをクリック

Page 63: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

66

デバイスを作成

Page 64: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

67

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

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

Page 65: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

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: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

69

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

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

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

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

Page 67: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

70

ポリシーの作成

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

Page 68: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

71

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

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

Page 69: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

72

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

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

Page 70: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

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: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

74

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

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

Page 72: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

75

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

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

Page 73: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

76

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

Page 74: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

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: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

78

アジェンダ

イントロダクション

AWS IoTの機能説明

はじめてみよう、AWS IoT

価格

まとめ

Page 76: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

79

シンプルな従量課金

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

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

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

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

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

Page 77: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

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: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

81

アジェンダ

イントロダクション

AWS IoTの機能説明

はじめてみよう、AWS IoT

価格

まとめ

Page 79: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

82

まとめ

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

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

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

Page 80: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

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: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

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: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

85

2015.12.04追加分

Page 83: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

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: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

87

Q&A

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

Page 85: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

88

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

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

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

会場:東京ビックサイト

Page 86: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

89

Webinar資料の配置場所

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

Page 87: Presentation Title Here...2015/12/02  · アップル社のAPNSエンドポイント, Google社のGCM Endpoint、Amazon ADM エンドポイント, Windows WNS Amazon SNS -> HTTPエンドポイント(Or

90

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

@awscloud_jp

検索

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

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