aws iot アップデート 2016.02.16

41
AWS IoT アップデート アマゾン ウェブ サービスジャパン株式会社 ソリューション アーキテクト 福井 厚

Upload: amazon-web-services-japan

Post on 16-Apr-2017

2.711 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: AWS IoT アップデート 2016.02.16

AWS IoT アップデート

アマゾン ウェブ サービスジャパン株式会社ソリューション アーキテクト福井 厚

Page 2: AWS IoT アップデート 2016.02.16

名前:福井 厚(@fatushi)

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

経歴:メーカーサポート、ソフトハウス、SIベンダー(国産、外資)、開発系コンサルティング ファームを経て2015年7⽉ よりアマゾン ウェブ サービス ジャパン株式会社でソリューション アーキテクトとして活動。2008年8⽉、Microsoft Certified Architect for Solutions Certification (MCA) に認定される。マイクロソフトMVPアワード受賞歴11回(2015年7⽉にMVP 終了)C#を愛し、.NETが⼤好きなエンジニアとして .NET開発者向けにAWSを普及する活動を実施中。

好きなAWSサービス: AWS IoT, Code Commit, Code Deploy, Code Pipeline

⾃⼰紹介

Page 3: AWS IoT アップデート 2016.02.16

AWS IoT 概要

Page 4: AWS IoT アップデート 2016.02.16

クラウドとモノをつなげるときに解決すべき課題

多くのSDKやツール

様々なプロトコル スケーラビリティ

&ノイズ/信号

セキュリティ

管理

クラウド、モバイルアプリま

たは分析基盤とのインテグレーション

Page 5: AWS IoT アップデート 2016.02.16

AWS IoT

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

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

双⽅向接続

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

さまざまなデバイスをAWSの各種サービスや他のデバイスにセキュアに接続し、デバイスデータに対する処理やアクションを実⾏することが可能

Page 6: AWS IoT アップデート 2016.02.16

データフローとAWSサービスのマッピング収集 処理 分析

保存

S3

Kinesis

DynamoDB

Data Collectionand Storage

AWSLambda

KCLApps

EventProcessing

EMR Redshift

MachineLearning

DataProcessing

Data Analysis

IoT

Page 7: AWS IoT アップデート 2016.02.16

AWS IoT Overview

Page 8: AWS IoT アップデート 2016.02.16

AWS IoT : メッセージブローカー

メッセージブローカー

Page 9: AWS IoT アップデート 2016.02.16

AWS IoT メッセージブローカー

スタンダードプロトコル (no lock-in)数百万デバイスやアプリをMQTTやHTTP1.1プロトコルを使って通信ができる

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

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

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

X509証明書とTLS1.2を使った相互認証がデフォルト

Topic Based Architecture

(lights/thing-2/color)

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

Page 10: AWS IoT アップデート 2016.02.16

MQTT

• M2M/IoTで利⽤されるコミュニケーションプロトコル• OASIS スタンダードプロトコル(v3.1.1)• ライトウェイト• Pub-Sub メッセージ交換モデル• リソースや回線帯域が限られているデバイスで利⽤

Page 11: AWS IoT アップデート 2016.02.16

MQTT Publish/Subscribe

Publisher

Publisher

Publisher

BrokerTopic:sensor/temp

Subscriber

Subscriber

Subscriber

Page 12: AWS IoT アップデート 2016.02.16

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

sensor/#

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

sensor/water/room1

temp

water

door

temp water door

Page 13: AWS IoT アップデート 2016.02.16

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

sensor/+/room1

sensorが1階層⽬でかつroom1が3階層⽬のトピックをsubscribe

sensor/water/room1

temp

water

door

temp water

Page 14: AWS IoT アップデート 2016.02.16

AWS IoT Security : 認証とアクセス許可

AUTHENTICATIONSecure with mutual

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

Page 15: AWS IoT アップデート 2016.02.16

TLSを使ったクライアント相互認証

Page 16: AWS IoT アップデート 2016.02.16

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

MQTT + Mutual Auth TLS AWS Auth + HTTPS

Server Auth TLS + Cert TLS + Cert

Client Auth TLS + Cert AWS API Keys

Confidentiality TLS TLS

Protocol MQTT / MQTT over WebSockets (New)

HTTP

Identification AWS ARNs AWS ARNs

Authorization AWS Policy AWS Policy

NEW 従来のAWSプロトコル

Page 17: AWS IoT アップデート 2016.02.16

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 18: AWS IoT アップデート 2016.02.16

アプリケーションは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 19: AWS IoT アップデート 2016.02.16

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 20: AWS IoT アップデート 2016.02.16

MQTT over WebSockets サポート

• AWS IoT デバイスゲートウェイが MQTT over WebSockets をサポート– モバイル及びWeb アプリケーションとの間でWeb Socket を利

⽤したリアルタイムなメッセージ交換が可能– 容易に多数のユーザーとの同時利⽤にスケール可能– アプリケーションやデバイスの利⽤者の安全な認証に

WebSocket とともに Amazon Cognito も利⽤可能

Page 21: AWS IoT アップデート 2016.02.16

Demo - MQTT over WebSockets

Page 22: AWS IoT アップデート 2016.02.16

AWS Iot MQTT over WebSockets のデモ

• http://bit.ly/214cW6G

Page 23: AWS IoT アップデート 2016.02.16

カスタム Keep Alive インターバル サポート

• カスタム MQTT Keep Alive インターバルをサポートし、コネクションをオープンしてからメッセージを受信するまでのタイムアウト時間を指定可能– 指定した時間を超えてメッセージやPINGが届かなかった場合は、

AWS IoT がコネクションを切断

Page 24: AWS IoT アップデート 2016.02.16

AWS IoT コンソール アップデート

• MQTT Client コンソールの追加• その他細かなアップデート

– 証明書の削除– ポリシーのバージョン管理– デバイスの詳細情報

Page 25: AWS IoT アップデート 2016.02.16

AWS IoT: ルールエンジン

ルールエンジン

Page 26: AWS IoT アップデート 2016.02.16

シンプル&慣れた構文

- SQL文を使ったトピックのフィルタ- WHERE句をオプションで付けることも可能

- JSONサポート

メッセージ変換機能

- 文字列操作 (regex support)- 算術計算

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

- 暗号

- UUID, Timestamp, 乱数など.

AWS IoT ルールエンジン概要

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

Page 27: AWS IoT アップデート 2016.02.16

AWS IoT ルールエンジン概要

複数のアクション

- 1つのメッセージに対して複数ルールを適用可能

Page 28: AWS IoT アップデート 2016.02.16

AWS IoT ルールエンジンアクション

RULES ENGINETransform messages based on rules and

route to AWS Services

AWS Services- - - - -

3P ServicesAWS サービス

- - - - -外部サービス

Page 29: AWS IoT アップデート 2016.02.16

AWS IoT AWSサービス

ルールエンジンは、受け取ったメッセージを評価し、適切に変換とエンドポイントへの配信をルールに従って実行

外部のエンドポイントは、LambdaかSNSを使って呼び出す

Lambda functionの呼び出し

S3 bucketへのデータ格納

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

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

Kinesis streamへのパブリッシュ

アクション

Amazon Firehoseへのパブリッシュ

AWS IoTへのリパブリッシュ

Page 30: AWS IoT アップデート 2016.02.16

AWS IoT : シャドー

THING SHADOWPersistent thing state

during intermittent connections

シャドー

アプリケーション

Page 31: AWS IoT アップデート 2016.02.16

AWS IoT シャドー

Shadow

Page 32: AWS IoT アップデート 2016.02.16

AWS IoT シャドーのフロー

Shadow

Device SDK

1. Device Publishes Current State

2. Persist JSON Data Store

3. App requests device’s current state

4. App requests change the state5. Device Shadow sync’s updated state

6. Device Publishes Current State 7. Device Shadow confirms state change

AWS IoT

Page 33: AWS IoT アップデート 2016.02.16

AWS IoT シャドー 概要

{"state" : {

“desired" : {"lights": { "color": "RED" },"engine" : "ON"

},"reported" : {

"lights" : { "color": "GREEN" },"engine" : "ON"},"delta" : {

"lights" : { "color": "RED" }} },

"version" : 10}

Thing

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

Mobile App

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

Shadow

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

Page 34: AWS IoT アップデート 2016.02.16

AWS IoT シャドーのTopics (MQTT)

Thing SDK (C-SDK, JS-SDK)を使うと簡単にシャドーの機能が使えます。

自動的にデバイスとシャドーを同期されます。

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 = 60F

ACCEL X=1,Y=5,Z=4 X=1,Y=5,Z=4

TEMP 83F 60F

Page 35: AWS IoT アップデート 2016.02.16

AWS IoT Registry

THING REGISTRYIdentity and Management of

your things

レジストリ

Page 36: AWS IoT アップデート 2016.02.16

AWS IoT : レジストリ

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

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

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

Page 37: AWS IoT アップデート 2016.02.16

AWS IoT – デバイス管理

• S3上にバージョン管理されたファームを管理• メッセージブローカーのTopicパターンを使ってデバイス群に通知。通知内容にS3のダウンロードURLいれる

Firmware Update

Stored in S3

Publish to groups of devices

• Ability to update global or within a Region

• Rules Engine keeps state of updates and tracks progress in a DynamoDB Table

• Store Version in Registry Entry

Page 38: AWS IoT アップデート 2016.02.16

AWS IoT Device SDK

C-SDK(Ideal for embedded

OS)

JS-SDK (Ideal for Embedded

Linux Platforms)

Arduino Library(Arduino Yun)

Mobile SDK(Android and iOS)

Page 39: AWS IoT アップデート 2016.02.16

AWS IoT

DEVICE SDKSet of client libraries to

connect, authenticate and exchange messages

MESSAGE BROKERCommunicate with devices via

MQTT and HTTP

AUTHENTICATIONAUTHORIZATION

Secure with mutual authentication and encryption

RULES ENGINETransform messages based on rules and

route to AWS Services

AWS Services- - - - -

3P Services

SHADOWPersistent thing state

during intermittent connections

APPLICATIONS

AWS IoT API

REGISTRYIdentity and Management of

your things

Page 40: AWS IoT アップデート 2016.02.16

まとめ

• AWS IoT は IoT のプラットフォーム機能を提供– デバイスSDK、認証、認可、メッセージ ブローカー、ルールエンジン、

シャドー、デバイス管理• AWS の他のサービスと容易に連携• MQTT over WebSockets をサポート(Update!)

Page 41: AWS IoT アップデート 2016.02.16