Weitere ähnliche Inhalte Ähnlich wie AWS IoT アップデート 2016.02.16 (20) Mehr von Amazon Web Services Japan (20) AWS IoT アップデート 2016.02.169. AWS IoT メッセージブローカー
スタンダードプロトコル (no lock-in)
数百万デバイスやアプリをMQTTや
HTTP1.1プロトコルを使って通信ができる
長期間のセッション保持によるクラウドを介し
たメッセージ送受信
クライアント(デバイスやアプリ)は制御信号
やコマンドなどをクラウドから受信することが
できる
デフォルトのセキュリティ
X509証明書とTLS1.2を使った相互認証が
デフォルト
Topic Based
Architecture
(lights/thing-2/color)
ハイスケーラブルメッ
セージブローカー
12. MQTTトピック – ワイルドカード “#”
sensor/#
sensor配下すべての
トピックをsubscribe
sensor/water/room1
temp
water
door
temp water door
13. MQTTトピック – ワイルドカード “+”
sensor/+/room1
sensorが1階層⽬でかつ
room1が3階層⽬の
トピックをsubscribe
sensor/water/room1
temp
water
door
temp water
14. AWS IoT Security : 認証とアクセス許可
AUTHENTICATION
Secure with mutual
authentication and encryption
認証とアクセス許可
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プロトコル
17. 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のどのリソース(トピックなど)に対し、
どのような権限を与えるか、きめ細かい権限設定が可能
19. 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
20. MQTT over WebSockets サポート
• AWS IoT デバイスゲートウェイが MQTT over
WebSockets をサポート
– モバイル及びWeb アプリケーションとの間でWeb Socket を利
⽤したリアルタイムなメッセージ交換が可能
– 容易に多数のユーザーとの同時利⽤にスケール可能
– アプリケーションやデバイスの利⽤者の安全な認証に
WebSocket とともに Amazon Cognito も利⽤可能
22. AWS Iot MQTT over WebSockets のデモ
• http://bit.ly/214cW6G
23. カスタム Keep Alive インターバル サポート
• カスタム MQTT Keep Alive インターバルをサ
ポートし、コネクションをオープンしてから
メッセージを受信するまでのタイムアウト時間
を指定可能
– 指定した時間を超えてメッセージやPINGが届かなかった場合は、
AWS IoT がコネクションを切断
24. AWS IoT コンソール アップデート
• MQTT Client コンソールの追加
• その他細かなアップデート
– 証明書の削除
– ポリシーのバージョン管理
– デバイスの詳細情報
28. AWS IoT ルールエンジンアクション
RULES ENGINE
Transform messages
based on rules and
route to AWS Services
AWS Services
- - - - -
3P Services
AWS サービス
- - - - -
外部サービス
30. AWS IoT : シャドー
THING SHADOW
Persistent thing state
during intermittent
connections
シャドー
アプリケーション
32. AWS IoT シャドーのフロー
Shadow
Device SDK
1. Device Publishes CurrentState
2. Persist JSON Data Store
3. App requests device’s currentstate
4. App requests change the state
5. Device Shadow sync’s
updated state
6. Device Publishes CurrentState
7. Device Shadow confirms state change
AWS IoT
33. 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ステータスを
メタデータとバージョンをつけて管理
34. AWS IoT シャドーのTopics (MQTT)
Thing SDK (C-SDK, JS-SDK)を使うと
簡単にシャドーの機能が使えます。
自動的にデバイスとシャドーを同期さ
れます。
AWS IoT Thing Shadow
UPDATE: $aws/things/{thingName}/shadow/update
DELTA: $aws/things/{thingName}/shadow/update/delta
GET: $aws/things/{thingName}/shadow/get
DELETE: $aws/things/{thingName}/shadow/delete
Sensor Reported Desired Delta
LED1 RED YELLOW
LED1 =
Yellow
TEMP = 60F
ACCEL X=1,Y=5,Z=4 X=1,Y=5,Z=4
TEMP 83F 60F
36. AWS IoT : レジストリ
• key: value
– ファームバージョンやシリアル番号など
• サポートやメンテナンス⽬的で利⽤
– マニュアルのURLやリファレンス番号
• 外部システム連携でも利⽤可能
37. 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
38. 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)
39. AWS IoT
DEVICE SDK
Set of client libraries to
connect, authenticate and
exchange messages
MESSAGE BROKER
Communicate with devices via
MQTT and HTTP
AUTHENTICATION
AUTHORIZATION
Secure with mutual
authentication and encryption
RULES ENGINE
Transform messages
based on rules and
route to AWS Services
AWS Services
- - - - -
3P Services
SHADOW
Persistent thing state
during intermittent
connections
APPLICATIONS
AWS IoT API
REGISTRY
Identity and Management of
your things
40. まとめ
• AWS IoT は IoT のプラットフォーム機能を提供
– デバイスSDK、認証、認可、メッセージ ブローカー、ルールエンジン、
シャドー、デバイス管理
• AWS の他のサービスと容易に連携
• MQTT over WebSockets をサポート(Update!)