aws による iot - amazon web services · aws iot...
TRANSCRIPT
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS による IoT
最新動向とデザインパターン
TwitterでAWS Summitに参加しよう!
公式アカウント@awscloud_jpをフォローしたお客様に
フリクションボールペンをプレゼント!
【配布場所】ロビーや展示会場のコンパニオンが配布中!お気軽にお声かけください。
AWS Black Belt Online Seminarのご案内
AWSJ の Tech メンバーがAWSに関する様々な事を日本語で紹介・解説する無料のオンラインセミナー
AWSについてもっと勉強したい方にオススメ!
AWS イベント 検索
アジェンダ
1.AWSを活用したIoT事例
2. IoTで利用されるサービス群
3. IoTのアーキテクチャ
4.アーキテクティング実践
5.デモンストレーション
AWSを活用したIoT事例
名前• 榎並 利晃(えなみ としあき)
役割• Mobile / IoT Business Development Manager
好きなAWSのサービス• AWS IoT
• AWS Lambda / API Gateway
• Mobile Services
様々なところでIoTが実現
ヘルスケア
家電・スマートホーム
小売製造, 物流, サプライチェーン
農業自治体
車
安全運行管理
酪農
農業
スマート家電
Wi-FiルーターREX-WFIREX1
ON!
Wi-Fiもうすぐ帰るからエアコンを
つけておこう!
温度・湿度・照度を定期的に
測定し、AWS経由でアプリに
表示することも可能。
AWS IoT
IoTの活用
• 歩留まり改善
• メンテナンスの効率化
• 遠隔制御
• 資源の活用(Condition based maintenance)
• 新コンセプトプロダクト
• データ販売
• コンサルティング
業務改善イノベーション
IoT活用
新規ビジネスイノベーション
プラットフォーム連携による共創
プラットフォームA
プラットフォームBAPI
デバイスの抽象化とデータ連携
データを価値に変える
収集 保存 分析 活用
収集したデータをリアルタイムに基盤に転送
データを長期的に保存、検索
大規模データを高速に分析(解析)
分析結果を人が参照しやすい形で提供
IoT パビリオン
名前• 吉田 英世(よしだ ひでよ)
役割• ソリューションアーキテクト
• ネットワーク/IoT担当
経歴• 某ゲーム会社インフラエンジニア
• 某組込みソフトウェア会社 IoTプラットフォーム開発
好きなAWSのサービス• AWS IoT
• Amazon Kinesis
• Amazon VPC
IoTで利用されるサービス群
AWS IoT
IoTに必要な機能を簡単にセキュアに利用
セキュアな双方向通信
ルールベースのアクション設定
デバイスSDKで開発も簡単
•TLS1.2を利用したクライアント証明書による認証•HTTPSとMQTTSを採用•MQTT pub/subによる双方向通信
•SQLライクなルールの定義でメッセージ処理をアクションが設定•AWSサービスとのシームレスな連携
C-SDK
(Ideal for embedded
OS)
JS-SDK
(Ideal for Embedded
Linux Platforms)
Arduino Library
(Arduino Yun)
Mobile SDK
(Android and iOS)
•AWS IoTの各種機能をデバイスから利用可能
デバイスSDK デバイスゲートウェイ
認証
ルールエンジン
AWS サービス- - - - -
サードパーティ
シャドウアプリケーション
AWS IoT API
レジストリ
AWS IoTと直接連携できるサービスは12!
Lambda関数の実行
S3バケットへの書込
DyanmoDBへのデータ追加、更新
SNSトピックまたはエンドポイントへの書込
Kinesis Streamへの書込
Firehoseへの書込
AWS IoTへの再パブリッシュ
Elasticsearchへの書込
CloudWatchアラーム送信
SQSキューへの書込
CloudWatchメトリクスとしてキャプチャ
Machine Learningのリアルタイム予測API
Amazon Kinesis
Amazon Kinesis Streams
ストリーミングデータのプロセッシングや分析用
のカスタムアプリケーションを構築
Amazon Kinesis
Firehose大容量のストリーミングデータをS3やRedshiftに
簡単に保存
Amazon Kinesis
Analytics 標準SQLクエリにより
ストリーミングデータを簡単に分析
AWS Lambda
IoTの各イベントをトリガーにいろいろなコードを実行
OS,キャパシティなどインフラの管理不要
多様なイベントに対応
コンピューティング使用時間のみの課金
•コードを書いてLambdaにアップロードするのみ•登録されたコードを自動的に実行
•AWS IoTのルールアクションとして動作可能•Kinesis Streamのストリームもイベントとして登録可能
•コードが実行される100msごと、およびコードがトリガーされた回数に対して課金
Amazon API Gatewayアプリケーションだけでなくデバイス向けWeb APIの作成・保護・運用と公開を容易に
RESTfulエンドポイントに必要な豊富な機能が利用可能
•リクエスト数に応じてスケール•バックエンドへの負荷を軽減するためのスロットリング•APIのバージョンを管理•APIアクティビティのメトリクス取得
Lambdaの利用でサーバレスなAPIを作成
•API呼出し後のアクションでLambdaを指定することでプログラムの登録のみでAPIを作成
IoTのアーキテクチャ
IoTアーキテクチャの特徴
IoTはテレメトリ+αでデータを価値に変える:
• アプリケーションからデバイスを操作(コマンド)
• 入力データを元にアクションを実行(プロセッシング)
• 過去の出来事を元に未来を予測(コンテキストアウェアネス)
テレメトリ用途ではビッグデータの入力レイヤーとして扱われるのがほとんど
イベント駆動
CQRS(コマンドクエリ分離責務)永続化ストア
(イベントストア)
書込(コマンド)
読込(クエリ)
コマンドプロセッサ
イベントハンドラ
クエリサービス
データストア
イベント保存
非同期でコピー
アップデート
データ読み出し
イベント送信
CQRS(コマンドクエリ分離責務)
イベントストア
書込(コマンド)
読込(クエリ)
コマンドプロセッサ
イベントハンドラ
クエリサービス
データストア
AWS IoT Rules
Kinesis Stream
Lambda
API Gateway
Kinesis Stream
DynamoDB
S3
DynamoDB
RDS
Redshift
ElasticSearch Service
Lambda
DataPipeline
Kinesis(KCL)
EMR
CQRSの例
Redshift
S3
QuickSight
AWS IoTルールエンジン
AWS IoTデバイス
ゲートウェイ
デバイス
読込
書込
アーキテクティング実践
デバイスとAWSを接続したい
AWS IoTとKinesis Streamを目的によって使い分ける
Kinesis Stream
AWS IoTデバイスゲートウェイ
MQTTS or HTTPSSSL証明書 or Sig v4による認証双方向通信メッセージプロセッシング
HTTPSSig v4による認証単方向通信(デバイス>Kinesis)ストリームプロセッシング
AWS IoTルールエンジン
AWS SDKAWSデバイスSDK
AWS SDK
Kinesisへ送信する前にデータの前処理をしたい
Kinesisに渡す前処理(ex.ノイズ除去、タイムスタンプ付与、数値変換処理)MQTTのインタフェースとしても利用
AWS IoTのルールで前処理を実行
ひとまずセンサーデータを保管しておきたい
S3をデータレイクとして活用ビッグデータサービス群とシームレスな連携が可能
ビッグデータサービス群
S3
Kinesis Firehose
AWS IoTルールエンジン
AWS IoTデバイス
ゲートウェイ
Machine Leaning
Redshift
Data PipelineEMR
QuickSight
データストアの選択
アプリケーションでのデータ活用
分析でのデータ活用
汎用的なアーカイブ
Elasticsearch ServiceやEMR上でHBaseなども利用可能小規模であればRDSも選択
堅牢で安価なオブジェクトストレージに半永久的にファイルデータ保管
中・長期的な時系列データをBIツールを利用してアドホックに分析
ID+タイムスタンプなどの時系列データをアプリケーションでから参照
DynamoDB
Redshift
S3
デバイスをリモートで制御したい
MQTTとWebsocketで持続的なコネクションからのコマンド送受信
MQTT(subscribe)
Websocket
RESTful API
AWS IoT デバイスシャドウ
AWS IoTデバイス
ゲートウェイ
クライアント証明書をデバイスにインストールしたい
AWS IoTのAPI操作
aws iot create-certificate-from-csr
ロール(証明書発行のみ)
BYOC(Bring Your Own Certificates)
CSR
プライベートキー
プライベートキー証明書
デバイス証明書
AWS IoTAPIエンドポイント
AWS IoTAPIエンドポイント
プライベートCA
https://mobile.awsblog.com/post/TxP0ACB3TWZ5XB/Use-Your-Own-Certificate-with-AWS-IoT
デバイス証明書
プライベートCA証明書
デバイスへファームウェアをダウンロードしたい
①ファームウェアをS3バケットにアップロード
②PUTのイベントからLambdaを起動③Lambdaから
URLを通知
Lambda
⑤ファームウェアをS3バケットからダウンロード
⑥ファームウェアを更新
AWS IoTデバイスゲートウェイ
④トピックからURLを受信
S3
ファームウェア
S3イベント+LambdaとAWS IoTの連携
デバイス管理
AWS IoTデバイスレジストリ
OR
DynamoDB
デバイス属性、ステータスを更新(AWS SDK, など)
デバイス属性・ステータスを更新(MQTT)
DeviceName LastUpdate Serial # Location
device001 2016-06-
02T00:00:00
A12345 room1
LambdaAWS IoTルールエンジン
AWS IoTデバイスゲートウェイ
{"things": [
{"attributes": {
”serialnumber": ”12345678"},"thingName": "mydevice"
}]
}
AWS IoTデバイスレジストリやDynamoDBを利用
デバイスからAWSまでを閉域ネットワーク接続例
3G/LTE
網
AWSサービス群
お客様拠点
Direct Connect(専用線)
Lambda RDS
AWS IoT
AWS クラウド
お客様VPC
Direct Connectやパートナー様のサービスを利用
デモンストレーション
デモ構成
AuroraLambda
KinesisStream
S3
AWS IoTルールエンジン
AWS IoTデバイス
ゲートウェイ
Shiny by RSudio
AWSSDK
まとめ
IoTを”つなげる”から”データ活用”に、AWSでシステムを
構築して、データ活用にフォーカスする
ソフトウェアアーキテクチャを取り入れることでIoTアーキテクチャを最適化
AWSのマネージドサービスをはビッグデータだけでなくIoTにおいても強力なツールとなる