Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

AWS IoT アップデート 2016.02.16

4.089 Aufrufe

Veröffentlicht am

JAWS-UG IoT専門支部 IoTサロン 2016-02 発表資料

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

AWS IoT アップデート 2016.02.16

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

×