![Page 1: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/1.jpg)
スマートホームシステムの開発〜AWSを活用した新規サービスの立ち上げ〜
井宮 大輔
Business Platform Department
IoT Business Group
Sony Mobile Communications Inc
![Page 2: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/2.jpg)
pg. 2 | 7 June 2017
自己紹介
• 井宮大輔(いみやだいすけ)
• 主な開発履歴– Walkmanメディアフレームワーク
– Android Walkman アプリケーション
– Xperia Phone/ Tabletのビデオアプリケーション、メタデータ配信サーバー
– スマートホームシステム
• 好きなAWSのサービス– AWS ECS
– AWS IoT
@yokobonbonhttp://qiita.com/yokobonbon
![Page 3: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/3.jpg)
pg. 3 | 7 June 2017
![Page 4: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/4.jpg)
pg. 4 | 7 June 2017
新規サービスの共通課題
![Page 5: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/5.jpg)
pg. 5 | 7 June 2017
新規サービスの共通課題
![Page 6: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/6.jpg)
pg. 6 | 7 June 2017
本日のアジェンダ
• スマートホームシステムの開発において直面した様々な課題
• その課題をAWSのサービスを利用した解決方法
• 利用上の注意点
![Page 7: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/7.jpg)
pg. 7 | 7 June 2017
![Page 8: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/8.jpg)
pg. 8 | 7 June 2017
スマートホームシステム概要
Smart HomeHub
Smart HomeHub
Smart HomeHub
機器接続情報センサーデータ
ユーザーデータ
機器接続情報センサーデータ
ユーザーデータ
機器接続情報センサーデータ
ユーザーデータ
家族A
家族B
家族C
![Page 9: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/9.jpg)
pg. 9 | 7 June 2017
スマートホームシステム概要
Smart HomeHub
Smart HomeHub
Smart HomeHub
機器接続情報センサーデータ
ユーザーデータ
機器接続情報センサーデータ
ユーザーデータ
機器接続情報センサーデータ
ユーザーデータ
家族A
家族B
家族C
家庭内のデバイスをスマートホームハブを通
して接続
X
家庭内デバイスのデータ照会・制御は家族
のみ可能
スマートフォンより家庭内デバイスのデータ照会・制御が可能
![Page 10: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/10.jpg)
pg. 10 | 7 June 2017
課題1: アカウント管理・認証 (1/2)
Smart HomeHub
Smart HomeHub
Smart HomeHub
機器接続情報センサーデータ
ユーザーデータ
機器接続情報センサーデータ
ユーザーデータ
機器接続情報センサーデータ
ユーザーデータ
家族A
家族B
家族C
アカウント管理
認証
![Page 11: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/11.jpg)
pg. 11 | 7 June 2017
課題1: アカウント管理・認証 (2/2)
• スマートフォンからデバイスのデータ照会、制御を安全に行うために以下の機能が必要– 家族ユーザーの追加/削除
– アクセストークンを用いたユーザー認証
– パスワード変更、E-mailアドレス変更
• オープンソースなどを用いて実現した場合、開発/運用コストが課題
![Page 12: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/12.jpg)
pg. 12 | 7 June 2017
解決1:アカウント管理・認証 (1/2)
• Amazon Cognito User Poolを利用する
• Google, Facebookなどの外部認証プロバイダを使用せず独自のユーザー管理が可能
• 50,000ユーザーまで無料。何百万人のユーザーまで拡張可能
• メールアドレスや電話番号(SMS)を用いた確認や、多因子認証 (Multi Factor Authentication)が実現可能
AmazonCognito
User Pool
![Page 13: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/13.jpg)
pg. 13 | 7 June 2017
解決1:アカウント管理・認証 (2/2)
Amazon Cognito User Poolでは以下の属性を利用可能
Address Birthdate Email Family name
Gender Given name Locale Middle name
Name Nickname Phone number Picture
Preferred username Profile Zoneinfo Updated at
website
上記に加えてカスタム属性も利用可能
![Page 14: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/14.jpg)
pg. 14 | 7 June 2017
ユーザー認証
AmazonAurora
AmazonCognito
User Pools
Amazon APIGateway
ユーザーA
(3) API呼び出しトークン (3) (3)
email Cognito User Poolの属性はemailのみ利用
リソースはCognito IDに紐付けて保存されている
(6)リソースアクセス
Cognito ID
![Page 15: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/15.jpg)
pg. 15 | 7 June 2017
ユーザー追加
AmazonAurora
AmazonCognito
User Pools
Amazon APIGateway
(1) ユーザーBを招待(E-mailアドレス)
(1) (1)
ユーザーA(管理者)
ユーザーB
(2)ユーザーBを仮登録
(4) 確認コードを送信(E-mail)
(5) (5)
(7)ユーザーBを本登録
![Page 16: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/16.jpg)
pg. 16 | 7 June 2017
Cognito User Poolの制限
• サインアップ確認コードの有効期限は24時間– 24時間以上伸ばすことはセキュリティの制限で現状できない– 確認コードの再送の仕組みは必須
• 確認コードの有効期限をチェックするAPIはない– 確認コードでアカウント有効化してみないと分からない
• アクセストークンの有効期限は1時間
• リフレッシュトークンの有効期限は1〜3650日(10年)まで指定可能 (デフォルト30日)
![Page 17: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/17.jpg)
pg. 17 | 7 June 2017
課題2: デバイス認証
Smart HomeHub
Smart HomeHub
Smart HomeHub
機器接続情報センサーデータ
ユーザーデータ
機器接続情報センサーデータ
ユーザーデータ
機器接続情報センサーデータ
ユーザーデータ
家族A
家族B
家族C
デバイス認証
![Page 18: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/18.jpg)
pg. 18 | 7 June 2017
AWS IoT
X.509クライアント証明書
IoT Policy IoT Topic IoT Rule
セキュリティ 軽量な通信
IoT Shadow
ルール処理 デバイスの状態
![Page 19: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/19.jpg)
pg. 19 | 7 June 2017
解決2: デバイス認証 (1/5)
全てのデバイスに対応したIoT Thing(仮想デバイス)を作成クライアント証明書を発行し全てのデバイスに埋め込む
IoT thing generic
IoT thing generic
IoT thing generic
IoT thing generic
X509クライアント証明書
X509クライアント証明書
X509クライアント証明書
X509クライアント証明書
![Page 20: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/20.jpg)
pg. 20 | 7 June 2017
解決2: デバイス認証 (2/5)
クライアント証明書はIoT Policyと紐付いているIoT Policyはデバイス毎に設定が異なる
IoT thing Policy
IoT thing Policy
IoT thing Policy
IoT thing Policy
![Page 21: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/21.jpg)
pg. 21 | 7 June 2017
解決2: デバイス認証 (3/5)
デバイス毎に用意されたIoT Topic、IoT Shadowにアクセス可能
![Page 22: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/22.jpg)
pg. 22 | 7 June 2017
解決2: デバイス認証 (4/5)
IoT PolicyにデバイスUUIDに紐づけたIoT TopicIoT Shadowにのみアクセス可能に制限を記述
X X X
UUID=1000
UUID=1000
UUID=1001
UUID=1001
UUID=1002
UUID=1002
UUID=1003
UUID=1003
![Page 23: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/23.jpg)
pg. 23 | 7 June 2017
解決2: デバイス認証 (5/5)
{"Effect": "Allow","Action": [ "iot:Publish” ],"Resource": ["arn:aws:iot:ap-northeast-1:XXX:topic/devices/1000/fromDevice/*",
"arn:aws:iot:ap-northeast-1:XXX:topic/$aws/things/1000/shadow/get"] },
{"Effect": "Allow","Action": [ "iot:Subscribe” ],"Resource": ["arn:aws:iot:ap-northeast-1:XXXX:topicfilter/devices/1000/toDevice/*","arn:aws:iot:ap-northeast-1:XXXX:topicfilter/$aws/things/1000/shadow/update/delta",
…
UUID=1000のデバイスのIoT Policyの記述
![Page 24: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/24.jpg)
pg. 24 | 7 June 2017
課題3: デバイスとの双方向通信
Smart HomeHub
Smart HomeHub
Smart HomeHub
機器接続情報センサーデータ
ユーザーデータ
機器接続情報センサーデータ
ユーザーデータ
機器接続情報センサーデータ
ユーザーデータ
家族A
家族B
家族C
![Page 25: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/25.jpg)
pg. 25 | 7 June 2017
解決3: 双方向通信 (1/5)
IoT Topicとは論理通信チャンネル
IoT Topicを通してデバイスとメッセージの送受信を行う
AWS IoT Message Broker(MQTTサーバー)
トピック
トピック
パブリッシャー1 サブスクライバー1publish subscribe
パブリッシャー2publish サブスクライバー2
サブスクライバー3
subscribe
subscribe
![Page 26: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/26.jpg)
pg. 26 | 7 June 2017
解決3: 双方向通信 (2/5)
/devices/1000/fromDevice/topic1
/devices/1000/toDevice/topic2
UUID:1000
AWS IoT Message Broker
/devices/1001/fromDevice/topic1
/devices/1001/toDevice/topic2
UUID:1001
/devices/1002/fromDevice/topic1
/devices/1002/toDevice/topic2
UUID:1002
各デバイスごとに送受信のためのIoT Topicを用意デバイスから受信するTopicとデバイスへ送信するTopicを用意
![Page 27: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/27.jpg)
pg. 27 | 7 June 2017
解決3: 双方向通信 (3/5)
/devices/1000/fromDevice/topic1
/devices/1000/toDevice/topic2
UUID:1000
AWS IoT Message Broker
/devices/1001/fromDevice/topic1
/devices/1001/toDevice/topic2
UUID:1001
/devices/1002/fromDevice/topic1
/devices/1002/toDevice/topic2
UUID:1002
IoT RuleでデバイスからIoT Topicへの書き込みを監視
デバイスからメッセージが記述された時点でLambdaを動作させる
publish
publish
publish
IoT Rule
IoT Rule
IoT Rule
![Page 28: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/28.jpg)
pg. 28 | 7 June 2017
解決3: 双方向通信 (4/5)
SELECT * FROM 'devices/+/fromDevice/temperature'
デバイスからのメッセージ受信時にLambdaを起動するためのルール例
デバイスのUUIDが指定されている必要がある
/devices/1000/fromDevice/temperature
/devices/1001/fromDevice/door
デバイス1000からの温度データ
デバイス1001からのドア開閉データ
![Page 29: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/29.jpg)
pg. 29 | 7 June 2017
解決3: 双方向通信 (5/5)
/devices/1000/fromDevice/topic1
/devices/1000/toDevice/topic2
UUID:1000
AWS IoT Message Broker
/devices/1001/fromDevice/topic1
/devices/1001/toDevice/topic2
UUID:1001
/devices/1002/fromDevice/topic1
/devices/1002/toDevice/topic2
UUID:1002
デバイスは特定のIoT TopicをSubscribeメッセージの受信が可能
publish
publish
publish
IoT Rule
IoT Rule
IoT Rule
subscribe
subscribe
subscribe
![Page 30: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/30.jpg)
pg. 30 | 7 June 2017
AWS IoT Topic QOS
• AWS IoTではMessage Brockerとの間で以下のQoSが利用可能
– QoS 0 At Most One (多くても1回)• 定期的にデータを送信を行い、多少のデータの欠損が問題にならない場合に利用
– QoS 1 At Least One (少なくとも1回)• 定期的ではなくイベント型のデータで欠損が望ましくない場合に利用
– QoS 2サポートされていない
![Page 31: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/31.jpg)
pg. 31 | 7 June 2017
AWS IoT Message Brokerの制限 (1/2)
• デフォルトではアイドル状態が30分続くとMQTTクライアントとの接続が切れる– http://docs.aws.amazon.com/ja_jp/general/latest/gr/aws_service_limits.html#limits_iot
• キープアライブの設定をMQTT CONNECT時に5秒から1200秒まで指定可能– サーバー側はキープアライブの1.5倍の時間以内に通信がない場合は接続を切る
Class MqttClient {Connect(std::chrono::milliseconds action_reponse_timeout, bool is_clean_session,
mqtt::Version mqtt_version, std::chrono::seconds keep_alive_timeout,
std::unique_ptr<Utf8String> p_client_id, std::unique_ptr<Utf8String> p_username,std::unique_ptr<Utf8String> p_password,std::unique_ptr<mqtt::WillOptions> p_will_msg);
aws-iot-cpp-sdk
![Page 32: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/32.jpg)
pg. 32 | 7 June 2017
AWS IoT Message Brokerの制限 (2/2)
/devices/1000/fromDevice/topic1
/devices/1000/toDevice/topic2
AWS IoT Message Broker
AWS IoTDevice SDK
Keep Aliveで設定時間ごとにPING
メッセージを送信することで接続を維持
PINGも課金対象なので注意が必要Message Brokerからの切断以外にNATの
セッションタイムアウトなど経路で切断されることもがある
![Page 33: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/33.jpg)
pg. 33 | 7 June 2017
課題4: データ同期
Smart Home Hubが接続デバイスを制御するために、クラウドに保存されている様々な情報が必要になる
デバイスリスト
デバイス情報
設定値
デバイス制御に必要な情報
デバイスリスト
デバイス情報
設定値
変更
変更
Smart Home Hub
![Page 34: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/34.jpg)
pg. 34 | 7 June 2017
解決4: データ同期 (1/2)
IoT Shadowを利用してクラウドに保存されているデータをSmart Home Hubに同期する
デバイスリスト
デバイス情報
設定値
デバイス制御に必要な情報
デバイスリスト
デバイス情報
設定値
変更
変更
Smart Home Hub
![Page 35: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/35.jpg)
pg. 35 | 7 June 2017
解決4: データ同期 (2/2)Smart Home Hub
変更(device2追加) {“deviceList”: {“desired”: [“device1”, “device2”],“reported”: [“device1”],“delta”: [“device2”], }}
IoT Shadowの変更通知がSmart Home Hubに送られる
Smart Home Hub内部のデータベースを更新
{“deviceList”: {“desired”: [“device1”, “device2”],“reported”: [“device1”, “device2”],}} “reported”でIoT Shadowが
同期されたことを通知
![Page 36: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/36.jpg)
pg. 36 | 7 June 2017
IoT Shadowの制限
• 最大 8K byte
• IoT Shadowの変更時は”desired”,”reported”,”desired”が記述されるためサイズ制限を超えることがある
• 1つのデバイスで複数のIoT Shadowを利用することで問題を解決
![Page 37: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/37.jpg)
pg. 37 | 7 June 2017
ThingとShadowの関係
https://github.com/aws/aws-iot-device-sdk-cpp
/*** @brief Constructor** @param p_mqtt_client - MQTT Client instance used for this Shadow, can NOT be changed later* @param mqtt_command_timeout - Timeout to use for MQTT Commands* @param thing_name - Thing name for this shadow* @param client_token_prefix - Client Token prefix to use for shadow operations*/Shadow(std::shared_ptr<MqttClient> p_mqtt_client,
std::chrono::milliseconds mqtt_command_timeout,
util::String &thing_name, util::String &client_token_prefix);
ResponseCode PerformGetAsync();
util::JsonDocument GetServerDocument();
AWSコンソールからも、AWS IoT Device SDKのAPIからもIoT ThingとIoT Shadowは1対1の関係に見える
1つのIoT Thingに対して複数のIoT Shadowを利用することが可能
![Page 38: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/38.jpg)
pg. 38 | 7 June 2017
Multiple IoT Shadow (1/2)
{"Effect": "Allow","Action": [ "iot:Publish” ],"Resource": [
”xxx/devices/1000/fromDevice/*",
”xxx/$aws/things/1000*/shadow/get"
]},{"Effect": "Allow","Action": [ "iot:Subscribe” ],"Resource": [
”xxx/devices/1000/toDevice/*",
”xxx/$aws/things/1000*/shadow/update/delta",
…]
…
IoT PolicyにUUID+ ワイルドカードを記述
thins/1000-1
thins/1000-2
thins/1000-3
UUID+*のShadowを利用可能とする
things/1000
![Page 39: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/39.jpg)
pg. 39 | 7 June 2017
Multiple IoT Shadow (2/2)
Shadow shadow1(p_mqtt_client, ConfigCommon::mqtt_command_timeout_,“1000-1”, client_token_prefix);
Shadow shadow1(p_mqtt_client, ConfigCommon::mqtt_command_timeout_,“1000-2”, client_token_prefix);
Shadow shadow1(p_mqtt_client, ConfigCommon::mqtt_command_timeout_,“1000-3”, client_token_prefix);
Thing NameにShadow名を入れることで複数Shadowを利用可能
![Page 40: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/40.jpg)
pg. 40 | 7 June 2017
スマートホームシステムの構成
CorporatePrivate CloudAmazon
AuroraAmazonCognito
AWS IoT
Amazon APIGateway
Smart HomeHub
Smart PhoneApplication
FirebaseCloud
Messaging
![Page 41: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/41.jpg)
pg. 41 | 7 June 2017
まとめ
Amazon CognitoUser Pool
IoTPolicy
ClientCertificate
IoTTopic
IoTRule
IoTShadow
![Page 42: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/42.jpg)
pg. 42 | 7 June 2017
ご清聴ありがとうございました
![Page 43: スマートホームシステムの開発 〜AWS を活用した新規サービス … · 〜AWSを活用した新規サービスの立ち上げ〜 井宮 大輔 Business Platform](https://reader033.vdocuments.mx/reader033/viewer/2022042318/5f075e967e708231d41ca4b5/html5/thumbnails/43.jpg)
SONY is a registered trademark of Sony Corporation.
Names of Sony products and services are the registered trademarks and/or trademarks of Sony Corporation or its Group companies.
Other company names and product names are registered trademarks and/or trademarks of the respective companies.