aws iot アップデート 2016.02.16
Post on 16-Apr-2017
2.704 Views
Preview:
TRANSCRIPT
AWS IoT アップデート
アマゾン ウェブ サービスジャパン株式会社ソリューション アーキテクト福井 厚
名前:福井 厚(@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
⾃⼰紹介
AWS IoT 概要
クラウドとモノをつなげるときに解決すべき課題
多くのSDKやツール
様々なプロトコル スケーラビリティ
&ノイズ/信号
セキュリティ
&
管理
クラウド、モバイルアプリま
たは分析基盤とのインテグレーション
AWS IoT
デバイスデータに対するいろいろなアクション
セキュアでスケーラブルなデバイスとクラウドの
双⽅向接続
誰でも簡単にはじめられる
さまざまなデバイスをAWSの各種サービスや他のデバイスにセキュアに接続し、デバイスデータに対する処理やアクションを実⾏することが可能
データフローとAWSサービスのマッピング収集 処理 分析
保存
S3
Kinesis
DynamoDB
Data Collectionand Storage
AWSLambda
KCLApps
EventProcessing
EMR Redshift
MachineLearning
DataProcessing
Data Analysis
IoT
AWS IoT Overview
AWS IoT : メッセージブローカー
メッセージブローカー
AWS IoT メッセージブローカー
スタンダードプロトコル (no lock-in)数百万デバイスやアプリをMQTTやHTTP1.1プロトコルを使って通信ができる
長期間のセッション保持によるクラウドを介したメッセージ送受信
クライアント(デバイスやアプリ)は制御信号やコマンドなどをクラウドから受信することができる
デフォルトのセキュリティ
X509証明書とTLS1.2を使った相互認証がデフォルト
Topic Based Architecture
(lights/thing-2/color)
ハイスケーラブルメッセージブローカー
MQTT
• M2M/IoTで利⽤されるコミュニケーションプロトコル• OASIS スタンダードプロトコル(v3.1.1)• ライトウェイト• Pub-Sub メッセージ交換モデル• リソースや回線帯域が限られているデバイスで利⽤
MQTT Publish/Subscribe
Publisher
Publisher
Publisher
BrokerTopic:sensor/temp
Subscriber
Subscriber
Subscriber
MQTTトピック – ワイルドカード “#”
sensor/#
sensor配下すべてのトピックをsubscribe
sensor/water/room1
temp
water
door
temp water door
MQTTトピック – ワイルドカード “+”
sensor/+/room1
sensorが1階層⽬でかつroom1が3階層⽬のトピックをsubscribe
sensor/water/room1
temp
water
door
temp water
AWS IoT Security : 認証とアクセス許可
AUTHENTICATIONSecure with mutual
authentication and encryption認証とアクセス許可
TLSを使ったクライアント相互認証
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プロトコル
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のどのリソース(トピックなど)に対し、どのような権限を与えるか、きめ細かい権限設定が可能
アプリケーションは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
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
MQTT over WebSockets サポート
• AWS IoT デバイスゲートウェイが MQTT over WebSockets をサポート– モバイル及びWeb アプリケーションとの間でWeb Socket を利
⽤したリアルタイムなメッセージ交換が可能– 容易に多数のユーザーとの同時利⽤にスケール可能– アプリケーションやデバイスの利⽤者の安全な認証に
WebSocket とともに Amazon Cognito も利⽤可能
Demo - MQTT over WebSockets
AWS Iot MQTT over WebSockets のデモ
• http://bit.ly/214cW6G
カスタム Keep Alive インターバル サポート
• カスタム MQTT Keep Alive インターバルをサポートし、コネクションをオープンしてからメッセージを受信するまでのタイムアウト時間を指定可能– 指定した時間を超えてメッセージやPINGが届かなかった場合は、
AWS IoT がコネクションを切断
AWS IoT コンソール アップデート
• MQTT Client コンソールの追加• その他細かなアップデート
– 証明書の削除– ポリシーのバージョン管理– デバイスの詳細情報
AWS IoT: ルールエンジン
ルールエンジン
シンプル&慣れた構文
- SQL文を使ったトピックのフィルタ- WHERE句をオプションで付けることも可能
- JSONサポート
メッセージ変換機能
- 文字列操作 (regex support)- 算術計算
- コンテキストベースのヘルパー
- 暗号
- UUID, Timestamp, 乱数など.
AWS IoT ルールエンジン概要
SELECT * FROM ‘things/thing-2/color’ WHERE color = ‘red’
AWS IoT ルールエンジン概要
複数のアクション
- 1つのメッセージに対して複数ルールを適用可能
AWS IoT ルールエンジンアクション
RULES ENGINETransform messages based on rules and
route to AWS Services
AWS Services- - - - -
3P ServicesAWS サービス
- - - - -外部サービス
AWS IoT AWSサービス
ルールエンジンは、受け取ったメッセージを評価し、適切に変換とエンドポイントへの配信をルールに従って実行
外部のエンドポイントは、LambdaかSNSを使って呼び出す
Lambda functionの呼び出し
S3 bucketへのデータ格納
DynamoDBテーブルへの挿入、更新と読み出し
SNS Topicまたは、Endpointに対するパブリッシュ
Kinesis streamへのパブリッシュ
アクション
Amazon Firehoseへのパブリッシュ
AWS IoTへのリパブリッシュ
AWS IoT : シャドー
THING SHADOWPersistent thing state
during intermittent connections
シャドー
アプリケーション
AWS IoT シャドー
Shadow
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
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ステータスをメタデータとバージョンをつけて管理
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
AWS IoT Registry
THING REGISTRYIdentity and Management of
your things
レジストリ
AWS IoT : レジストリ
• key: value – ファームバージョンやシリアル番号など
• サポートやメンテナンス⽬的で利⽤– マニュアルのURLやリファレンス番号
• 外部システム連携でも利⽤可能
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
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)
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
まとめ
• AWS IoT は IoT のプラットフォーム機能を提供– デバイスSDK、認証、認可、メッセージ ブローカー、ルールエンジン、
シャドー、デバイス管理• AWS の他のサービスと容易に連携• MQTT over WebSockets をサポート(Update!)
top related