Upload
amazon-web-services-japan
View
2.720
Download
1
Embed Size (px)
Citation preview
【AWS Black Belt Online Seminar】IoT向け最新アーキテクチャパターン
アマゾンウェブサービスジャパン株式会社
ソリューションアーキテクト 榎並 利晃
2017.02.28
自己紹介
2
• 名前
– 榎並 利晃(えなみ としあき)
• 役割
– IoT Solution Design
– Solution Architect
• 好きなAWSのサービス
– AWS IoT
– Amazon Kinesis Family
AWS Black Belt Online Seminar とはAWSJのTechメンバがAWSに関する様々な事を紹介するオンラインセミナーです
【火曜 12:00~13:00】主にAWSのソリューションや業界カットでの使いどころなどを紹介(例:IoT、金融業界向け etc.)
【水曜 18:00~19:00】主にAWSサービスの紹介やアップデートの解説(例:EC2、RDS、Lambda etc.)
※開催曜日と時間帯は変更となる場合がございます。最新の情報は下記をご確認下さい。
オンラインセミナーのスケジュール&申し込みサイト– https://aws.amazon.com/jp/about-aws/events/webinars/
3
内容についての注意点
• 本資料では2017年2月28日時点のサービス内容および価格についてご説明しています。最新の情報はAWS公式ウェブサイト(http://aws.amazon.com)にてご確認ください。
• 資料作成には十分注意しておりますが、資料内の価格とAWS公式ウェブサイト記載の価格に相違があった場合、AWS公式ウェブサイトの価格を優先とさせていただきます。
• 価格は税抜表記となっています。日本居住者のお客様が東京リージョンを使用する場合、別途消費税をご請求させていただきます。
• AWS does not offer binding price quotes. AWS pricing is publicly available and is subject to change in accordance with the AWS Customer Agreement available at http://aws.amazon.com/agreement/. Any pricing information included in this document is provided only as an estimate of usage charges for AWS services based on certain information that you have provided. Monthly charges will be based on your actual use of AWS services, and may vary from the estimates provided.
4
製造
メンテナンス/異常検知
モニタリング
交通
車両センサー
ドライバーの安全
エネルギー
スマートメータ
メンテナンス/異常検知
リテール
動線把握
O2O
家電
スマート家電
オートメーション
ヘルスケア
医療機器管理
遠隔医療
農業
モニタリング
遠隔制御
さまざまな利用用途
IoT を構成する3要素
誰もがすぐに調達可能でアイデアと実行能力があれば市場参入が容易イノベーションにより市場に破壊が起きる
センシングデバイス ネットワークコネクティビティ 処理・分析を実行するサーバー
IoTの代表的な要件
モニタリング
位置情報管理・状態監視・実績把握・動線把握
予防予知保全
異常検知・故障予測
データ連携/モバイル
保守作業・スマートデバイス・企業連携・オープンデータ
遠隔制御
機器運用・ファームアップ
9
IoTプラットフォーム
データ収集
データ保存
データ処理・分析
活用
デバイス制御
デバイス管理
アラート
業務支援システム
Report/Dashboard(故障予知・予測)
デバイス管理
データ収集・分析
リモート制御
IoTプラットフォーム AWS IoT Solution
アラート
業務支援システム
Report/Dashboard(故障予知・予測)
デバイス管理
デバイス制御
データ収集 データ処理・分析
データ保存
デバイス管理
データ活用
IoT
IoT
S3
Kinesis
IoT
S3 RDS DynamoDBElasticache
Redshift
EMR Machine Learning QuickSight
ElasticSearch
KinesisAnalytics
API GWLambda
SNS
AWS IoT Solution
Lambdaエッジ
Greengrass
AI関連
Athena
エッジコンピューティング
デバイス制御
データ収集 データ処理・分析
データ保存
デバイス管理
データ活用
IoT
IoT
S3
Kinesis
IoT
S3 RDS DynamoDB
Redshift
EMR Machine Learning QuickSight
ElasticSearch
KinesisAnalytics
API GWLambda
SNS
AWS IoT Solution
Lambdaエッジ
Greengrass
AI関連
Athena
Elasticache
Messages Messages
Authentication
& AuthorizationDevice
Gateway
Action
Device
State
AWS Services
Applications
Registry
AWS IoT API
AWS Greengrass
Going to the edge Introducing AWS Greengrass
Device
State
Action
Device
Gateway
Messages
Authentication
& Authorization
Security
*Note: Greengrass is NOT Hardware (You bring your own)
Limited preview
AWS Greengrass のベネフィット
ローカルイベントに対する即時応答
オフライン オペレーション
簡易化された デバイス上でのプログラミング
IoT applicationsに対するコスト削減
AWS Greengrass Overview
Local環境MQTT
Greengrass要求スペックCPU 1GHz single 以上Memory 128MB 以上OS: Linux (Ubuntsu or Amazon)Kenel 4.4.11以上
• Status Sync• サービスとの接続
Greengrassのメリットローカル処理による高速レスポンス常時接続不要センシティブ情報の処理(暗号化/削除)
Greengrass Core
Lambda
Device shadow
AWS Greengrass pricing
Active Devices Price
3 1年間の無料利用
3–10,000$0.16/月$1.49/年
10,000+ お問い合わせ
active deviceの定義Greengrass Core では、30 日間デバイスから AWS への接続がないと、デバイスがローカルで動作していても非アクティブと見なされます。
データ収集デバイス管理デバイス制御
デバイス制御
データ収集 データ処理・分析
データ保存
デバイス管理
データ活用
IoT
IoT
S3
Kinesis
IoT
S3 RDS DynamoDB
Redshift
EMR Machine Learning QuickSight
ElasticSearch
KinesisAnalytics
API GWLambda
SNS
AWS IoT Solution
Lambdaエッジ
Greengrass
AI関連
Athena
Elasticache
ThingsSense
& Act
CloudStorage
& Compute
IntelligenceInsights &
Logic → Action
AWS IoT
Action
Device
State
AWS Services
Applications
Authentication
& AuthorizationDevice
Gateway
Registry
AWS IoT API
Messages Messages
簡単で安全なクラウドへのIoTデバイス接続サービス
AWS IoT : 2つの利用用途• データ収集数十万規模のデバイスからのデータ収集
• リモート制御遠隔にあるデバイスをクラウドを介してコントロール
使用例
デバイスのデータの可視化故障予測・異常検知
ファームアップリモート機器制御
AWS IoT
スタンダードプロトコル (no lock-in)
数百万デバイスやアプリをMQTTやHTTP1.1プロトコル, Websocketsを使って通信ができる
長期間のセッション保持によるクラウドを介したメッセージ送受信
クライアント(デバイスやアプリ)は制御信号やコマンドなどをクラウドから受信することができる
デフォルトのセキュリティ
X509証明書とTLS1.2を使った相互認証
Topic Based
Architecture
(lights/thing-2/color)
ハイスケーラブルメッセージブローカー
AWS IoT
デバイスとクラウドとの相互認証
TLS1.2を用いた相互認証証明書に対するポリシ設定も可能
ルールエンジンとアクション
SQLライクな構文でルールの設定ルールに合致した場合、AWSの各種サービスとのインテグレーション
デバイスシャドー
デバイスが物理的に接続されてなくてもコマンドを伝達できる
デバイスレジストリ
多くのデバイスを管理Key-Value形式でファームバージョンなどの属性情報も管理可能
データ収集
25
デバイス制御
データ収集 データ処理・分析
データ保存
デバイス管理
データ活用
IoT
IoT
S3
Kinesis
IoT
S3 RDS DynamoDB
Redshift
EMR Machine Learning QuickSight
ElasticSearch
KinesisAnalytics
API GWLambda
SNS
AWS IoT Solution
Lambdaエッジ
Greengrass
AI関連
Athena
Elasticache
データ送受信(Ingest)
AWS IoT Amazon Kinesis Amazon S3
ペイロード長 1メッセージあたり128KB 1レコードあたり1MB 1オブジェクトあたり5TB
プロトコル MQTTS/HTTPS/Websocket
HTTPS HTTPS
料金 512Bを1メッセージとして$8/百万メッセージ
1シャード$0.0195/時ペイロードユニットを25KBとして$0.0215/百万ペイロード(Streams)
$0.025/GB(最初の50TB, 月)
認証 クライアント証明書SigV4
SigV4 SigV4
使いどころ ペイロードが小さく送信頻度も低いデバイスとクラウド間の双方向通信が必要高いセキュリティを求められる
ペイロードが大きく、送信頻度が高い
メディアなどデータサイズが大きい場合、ファイル単位でデータを扱う場合
データ処理・分析
27
デバイス制御
データ収集 データ処理・分析
データ保存
デバイス管理
データ活用
IoT
IoT
S3
Kinesis
IoT
S3 RDS DynamoDB
Redshift
EMR Machine Learning QuickSight
ElasticSearch
KinesisAnalytics
API GWLambda
SNS
AWS IoT Solution
Lambdaエッジ
Greengrass
AI関連
Athena
Elasticache
データ処理・分析(Analytics)
AmazonEMR
Amazon Redshift
AmazonAthena
Amazon KinesisAnalytics
Amazon Machine Learning
用途 Hadoop/Sparkなどを使いデータの分散処理を実行
大規模なデータセットに対する複雑なクエリを実行
S3のオブジェクトに対しアドホックにクエリを実行
Kinesisのシャード上のデータに対し、リアルタイムにクエリを実行
教師データを元に予測モデルを作成し、APIで予測を実行
リアルタイム/バッチ特性
バッチ/リアルタイム
バッチ バッチ リアルタイム バッチ/リアルタイム
データ保存
29
デバイス制御
データ収集 データ処理・分析
データ保存
デバイス管理
データ活用
IoT
IoT
S3
Kinesis
IoT
S3 RDS DynamoDB
Redshift
EMR Machine Learning QuickSight
ElasticSearch
KinesisAnalytics
API GWLambda
SNS
AWS IoT Solution
Lambdaエッジ
Greengrass
AI関連
Athena
Elasticache
データの保存(Store)
Amazon S3 Amazon DynamoDB
Amazon Elasticache
Amazon Aurora
用途 データ連携のHub(データレイク)、またはアーカイブ
Read/Write性能のスケールが必要で、かつデータを単純に参照
ダッシュボードなどリアルタイムにデータを単純に参照
SQLアプリケーション向け
堅牢性 データセンター3箇所以上に保存
データセンター3箇所以上に保存
メモリ上で揮発性は高いが、EBSに退避も可能
3AZに6個のレプリケーションを保持
保存単位 ファイル アイテム アイテム レコード
データ活用
31
デバイス制御
データ収集 データ処理・分析
データ保存
デバイス管理
データ活用
IoT
IoT
S3
Kinesis
IoT
S3 RDS DynamoDBGlacier
Redshift
EMR Machine Learning QuickSight
ElasticSearch
KinesisAnalytics
API GWLambda
SNS
AWS IoT Solution
Lambdaエッジ
Greengrass
AI関連
Athena
データの活用
Amazon SNS Amazon ElasticsearchService
AmazonQuicksight
用途 デバイスの状態などに応じてメール、モバイルプッシュなどで管理者に通知
Kibanaによる時系列データの可視化
時系列データの分析(BI)
利用方法 AWS IoTのルールアクション、または、Lambdaを介してメッセージを配信クロスアカウント・別システム連携
AWS IoTのルールアクションを実行し、Elasticsearch Serviceへデータを送信
S3、RDS、Redshiftなどをデータソースとして利用
34
データ保管
対象シーン - センサーデータなどのバックアップ- 機械学習などのモデル作成に向けた準備
条件 - 128kb以内のメッセージ
AWS IoT
ルールエンジン
AmazonKinesis Firehose
Amazon S3
(注意) Amazon Kinesis Firehoseがローンチされてないリージョンの場合は、Kinesis+ Lambda or KCL on EC2でS3に転送する必要あり
35
シンプルモニタリングパターン
対象シーン - センサーデータをモニタリングしたい- モニタリング要件がKibana実現できる
条件 - 128kb以内のメッセージ
AWS IoT
ルールエンジン
Amazon Elasticsearch
(注意1) シンプルなモニタリングであれば、CloudWatchでも可能(注意2) Amazon Elasticsearch Serviceに対するアクセス制御については以下を参考にしてください。https://aws.amazon.com/blogs/security/how-to-control-access-to-your-amazon-elasticsearch-service-domain/
36
ラージデータアップロードパターン (ダウンロード)
対象シーン - 画像・動画など大きいデータをアップロードする場合でAWS IoTのデバイス認証を活かす場合
条件 - 128kb以上のデータ- デバイスが、MQTTとHTTSを利用できる
AWS IoT
Amazon S3
デバイス認証
ファイルアップロード
次ページにシーケンス
ラージデータアップロードパターン 〜シーケンス〜
AWS IoT
device00/token/res
device00/token/req②トークンの取得
③トークンをpublish
①トークン取得リクエストをpublish
④トークンをsubscribe
あらかじめテンポラリトークンに割り当てるロールを作成
ex) KinesisのputRecordのみS3のputObjectのみ許可
⑤トークンを使ってアクセス
AWS Lambda
IAM
Amazon S3
Topic
38
ディープチェック
対象シーン - センサーデータが処理・格納されたことを確認し、デバイス側でリトライ制御したい場合
条件 - デバイス側で送信したデータに識別子を付与し、その識別子のデータ処理が正しく処理されたかを別トピックをサブスクライブして待ち受けることができる
DB
Storage
など
エラー
AWS Lambda
Topic
AWS IoT
39
他システム連携
対象シーン - AWS内外のシステムとAPI連携するパターン
条件 - センサーデータをバッファリングして他システムと連携する
AWS IoT
ルールエンジン
AmazonKinesis Streams
AWS Lambda
他システム
(注意) 他システムが受けられるキャパシティに合わせた仕組み化が必要。場合によっては完全に切り離してバッチ処理で他システム連携を行うケースも検討LambdaのDLQ機能を使うことで他システムでエラーがおきてもイベントを救うことができる
40
ストリーム処理
対象シーン - センサーデータに対して異常検知、スライディングウィンドウ処理などをストリームで処理したい
条件
AWS IoT AWSLambda
AmazonKinesis
Analytics
AmazonKinesisStreams
AmazonKinesis
Streams
(注意) 上記は、Amazon Kinesis Analyticsで処理できる場合。実施したい内容によっては、Amazon EMR上のSparkを利用するなどやりたことに応じて組む必要がある
41
モバイルアプリ連携パターン
対象シーン - モノとモバイルアプリを紐付けるケース- 家電とそのコントロールアプリをユーザ認証をもって紐付ける
条件 - 機器特定IDをローカルの手段で読み取れる(入力できる)- 機器特定IDとThing名が同じ
AWS IoT
物理的にIDを読み取り(QRコードなど、機器特定ID
Cognito ID
IoT Policy
Cognito IDとThingを紐付けたPolicyをアタッチ
(注意) 機器特定IDとThing名が異なる場合は、API GWなどカスタムのAPIを通して、IDを特定し、Policyを作成し、アタッチすることも可能
42
ThingA
ThingA_1
ThingA_2
ThingA_3
命名規則は、ポリシー設定にも影響します。詳細は以下のドキュメントを御確認ください。
http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/thing-policy-examples.html
複数のデバイスステータスを管理するパターン
対象シーン - 1つのデバイスに対して複数のステータスなどをもたせたい場合
条件 - Thing名を利用したシャドー名を利用
デバイスシャドーは、1つのThingに対して複数作ることができます。シャドーのパラメータが複数あり、更新頻度が高ければ、複数にすることをお勧めします。
参考 :Device Shadow
• Developer Guide– https://docs.aws.amazon.com/ja_jp/iot/latest/developergui
de/iot-thing-shadows.html
43
45
デバイス証明書登録
対象シーン - デバイスを製造する段階でデバイス証明書を書き込む
条件 - Just-in-Time Registration機能を使った登録
AWS IoT中間CA
事前にCAとしての登録
出荷
AWSLambda
IoT Policy
ポリシーアタッチ
参考:AWS IoT デバイス証明書の登録について
• AWS IoT デバイス証明書を作成および登録する– http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/d
evice-certs-create.html
• 自前の証明書を使用する– http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/d
evice-certs-your-own.html
• Best Practices for IoT Security in the Cloud– https://www.slideshare.net/AmazonWebServices/february-
2016-webinar-series-best-practices-for-iot-security-in-the-cloud
46
参考:Just-in-Time Registration (JITR)
• Blog– https://aws.amazon.com/blogs/iot/just-in-time-registration-
of-device-certificates-on-aws-iot/
• JITR - AWS Lambdaのサンプルコード– https://github.com/awslabs/aws-iot-
examples/blob/master/justInTimeRegistration/deviceActivation.js
47
48
ファームアップ
対象シーン - 特定のデバイスに対してファームアップを指示
条件 - Device Registryにデバイスとファームバージョンを管理している- Device Shadowを使ってコマンドの実行が可能- HTTPSでファームをダウンロード可能
① ファームをストア
② list-things APIで対象デバイスを検索
③ 対象デバイスのShadowのDesired更新
⑤ ファームダウンロード
④ Delta
(注意)デバイス側にDevice Shadowを受け取り、ファームアップをするアプリがデバイス上に実行されていること
Shadow
49
デバイスの挙動管理
対象シーン - デバイスが期待したとおりの挙動をしているかを確認したい
条件 - CloudWatchを利用した確認
[代表的なAWS IoTのメトリックス]
• PublishIn.Success
• Ping.Success
• Connect.Success
メトリックス詳細http://docs.aws.amazon.com/iot/latest/developerguide/metrics_dimensions.html
ユースケース例http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/monitoring-cloudwatch.html
AWS IoTの制限
設計上考慮すべき代表的な制限(2017年2月時点の制限であり、変更される可能性があります。詳細は以下のURLを確認してください。)
http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/iot-limits.html
• メッセージサイズ
一度に発行できるメッセージのペイロードは、128 KB に制限されます。このサイズを超えるメッセージは、AWS IoT サービスによって拒否されます。
• Shadow JSON 状態ドキュメントの最大サイズ
JSON 状態ドキュメントの最大サイズは 8 KB です。
• シャドウの有効期間
1 年以上更新または取得されていない Thing Shadows は AWS IoT によって削除されます。
50
参考資料
• AWS IoT
– http://aws.amazon.com/jp/iot/
• AWS IoT開発者用リソース
– https://aws.amazon.com/iot-platform/developer-resources/
• AWS Greengrass
– https://aws.amazon.com/jp/greengrass/
• 関連Blog
– https://aws.amazon.com/jp/blogs/database/managing-iot-and-time-series-data-with-amazon-elasticache-for-redis/
51
オンラインセミナー資料の配置場所
• AWS クラウドサービス活用資料集– http://aws.amazon.com/jp/aws-jp-introduction/
• AWS Solutions Architect ブログ– 最新の情報、セミナー中のQ&A等が掲載されています
– http://aws.typepad.com/sajp/
52
公式Twitter/FacebookAWSの最新情報をお届けします
53
@awscloud_jp
検索
最新技術情報、イベント情報、お役立ち情報、お得なキャンペーン情報などを日々更新しています!
もしくはhttp://on.fb.me/1vR8yWm
AWSの導入、お問い合わせのご相談
AWSクラウド導入に関するご質問、お見積り、資料請求をご希望のお客様は以下のリンクよりお気軽にご相談くださいhttps://aws.amazon.com/jp/contact-us/aws-sales/
※「AWS 問い合わせ」で検索してください