AWS 初心者向け Webinar AWS ではじめよう IoT システム構築 2015/12/22 アマゾンウェブサービスジャパン株式会社ソリューションアーキテクト福井厚
ご質問を受け付け致します 質問を投げることができます Adobe Connect のチャット機能を使って 質問を書き込ん でください 書き込んだ質問は 主催者にしか見えませ ん 最後の Q&A の時間で可能な限り回答させていただきます ①画面右下のチャッ トボックスに質問を 書き込んでください 2 ②吹き出しマークで 送信してください
AWS 初心者向け Webinar のご紹介 AWS についてこれから学ぶ方むけの ソリューションカットの Webinar です 過去の Webinar 資料 AWS クラウドサービス活用資料集ページにて公開 http://aws.amazon.com/jp/aws-jp-introduction/ イベントの告知 国内のイベント セミナースケジュールページにて告知 http://aws.amazon.com/jp/about-aws/events/ オンラインセミナー枠 3
自己紹介 名前 : 福井厚 (@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 Elastic Beanstalk Cloud Formation AWS Tools for.net 4
アジェンダ イントロダクション IoTシステムの事例 IoTシステムの技術的要件 IoTシステムでのAWS 活用デザインパターンまとめ 5
アジェンダ イントロダクション IoTシステムの事例 IoTシステムの技術的要件 IoTシステムでのAWS 活用デザインパターンまとめ 6
IoTとは データ 価値 コントロール コミュニケーション サービスの創造 モノのインターネット Internet of Things IoT は 世の中にある様々な もの がネットワークに接続され クラウドを利用したり相互に通信することにより 新しいサービスや価値を産むという考え方 7
IoT to AWS? セキュア信頼性ハイパフォーマンス 使いやすさ高コスト効果豊富なサービス フレキシブル 8
Enterprise Applications Virtual Desktop Sharing & Collaboration Analytics App Services Deployment & Management Mobile Services Hadoop Queuing & Notifications One-click web app deployment Identity Platform Services Real-time Streaming Data Data Warehouse Workflow App streaming Transcoding Dev/ops resource management Sync Mobile Analytics Data Pipelines Email Search Resource Templates Push Notifications Administration & Security Identity Management Access Control Usage Auditing Key Storage Monitoring And Logs Core Services Compute (VMs, Auto-scaling and Load Balancing) Storage (Object, Block and Archival) CDN Databases (Relational, NoSQL, Caching) Networking (VPC, DX, DNS) Infrastructure Regions Availability Zones Points of Presence 9
Enterprise Applications Virtual Desktop Analytics Sharing & Collaboration App Services Hadoop Real-time Streaming Data Deployment & Management Mobile Services One-click web app deployment Identity Queuing & Notifications Workflow Sync App streaming Dev/ops resource サーバー ストレージ DBから アプリケーションまで management Mobile Data Transcoding Analytics Warehouse 50を超えるクラウドサービスを提供 Platform Services Email Data Pipelines Administration & Security Core Services Infrastructure 10 Search Identity Management Access Control Compute Storage (VMs, Auto-scaling and Load Balancing) (Object, Block and Archival) Regions Resource Templates Usage Auditing CDN Availability Zones Push Notifications Key Storage Monitoring And Logs Databases Networking (Relational, NoSQL, Caching) (VPC, DX, DNS) Points of Presence
IoT リファレンスアーキテクチャ 外部システム向けインターフェース データ保管 機械学習 通知 / コマンド実行データ可視化データ分析 イベント処理 データ処理 デバイスインタフェース WiFi/3G/LTE センサー デバイス アクチュエータ 11
対応する AWS サービス 外部システム向け Amazon S3 Amazon API Gateway データ保管インターフェース Amazon DynamoDB Amazon RDS 機械学習 通知 / コマンド実行 Amazon SNS データ可視化 Amazon Elasticsearch Service (kibana) データ分析 Amazon Quicksight Amazon Machine Learning Amazon Redshift イベント処理 Amazon Lambda Kinesis Client Library AWS IoT データ処理 Amazon EMR Amazon Kinesis Analytics Amazon Kinesis Firehose AWS IoT デバイスインタフェース Amazon EC2 Amazon Kinesis Stream AWS IoT WiFi/3G/LTE センサー デバイス アクチュエータ AWS SDK AWS Device SDK 12
アジェンダ イントロダクション IoTシステムの事例 IoTシステムの技術的要件 IoTシステムでのAWS 活用デザインパターンまとめ 13
様々な産業であらゆるデバイスがAWSとつながっている ヘルスケア ライフサイエンス 製造業 流通 14 自治体のインフラ スマートホーム 小売業 農業 教育 オートモーティブ
Amazonでの取組み Amazon Drone 15 Amazon echo Amazon Dash
AWS との IoT イニシアチブでの事例 16
BMW IoT Journey with AWS (re:invent2015) Mission: Change customer experiences with cloud enhanced services and adopt new market requirements Connected cars deliver sensor data to AWS Digital map dynamically verified and enhanced Key feature to enable automated driving Estimation 17 Scalable, flexible, agile, and cost effective infrastructure for IoT/M2M CARASSO processes 8+ billion km driven with several hundreds of thousands vehicles in 2018
dash:connected Vehicle by dash device 18 Drive Smarter Save Money Take Control Drive Green Have Fun with it Engine Light
あきんどスシロー様 捨てていたデータをクラウドに送り 他のデータと合わせて分析することで 今まで見えなかったことがデータとして可視化ができた 19
アジェンダ イントロダクション IoTシステムの事例 IoTシステムの技術的要件 IoTシステムでのAWS 活用デザインパターンまとめ 20
デバイスの認証 認可 許可されたデバイスのみ接続を受付 認証済のデバイスに適切な権限を付与 認証情報を更新することは困難 21 クラウド側でデバイスを認証 認可をコントロール AWS の認証機能を利用してデバイスに対する認証や権限付与が可能
デバイスからのデータ受信 時刻ドリブン ピーク性なし一定のインターバルにトラフィックが集中要求処理性能はデバイス数により変化 イベントドリブン ピーク性あり特定の時間にトラフィックが集中要求処理性能はイベント / デバイス数により変化 22 デバイス数に応じたスケーラビリティが必要 AWS では自動もしくは手動でスケールする機能を利用可能
デバイスデータの書込 新規追加のみ ( 更新はなし ) 並列度が高い 書込のワークロードが高い データ容量は単調増加 書込データは時系列データが主 23 書込処理のキャパシティとデータ容量がスケールするデータストアが必要 AWS のスケーラブルなストレージやデータベースが利用可能
データ処理基盤との連携 データ加工 集計 分析など多様な処理との連携 複数の処理を並列実行 目的によって要件の変更や追加が発生 Value データ処理基盤とのシームレスに連携できる フレキシブルな構成 AWSは疎結合をベースとしていろいろなサービス 機能を必要に応じて組み換え可能 24
アプリケーションからデバイスのリモート制御 Pull 型 Push 型 デバイスから一定時間アプリケーションをポーリングし データを取得 リアルタイム性はインターバルに依存 オーバーヘッドが大きい HTTP による Long Polling などを利用 アプリケーションからデバイスへデータを送信 リアルタイム性は非常に高い オーバーヘッドが少ない MQTT や Websocket を利用 25 リアルタイム要件や利用プロトコルにより方式を選定 AWS では Pull/Push 型それぞれ選択可能
アジェンダ イントロダクション IoTシステムの事例 IoTシステムの技術的要件 IoTシステムでのAWS 活用デザインパターンまとめ 26
AWS IoT IoTに必要な機能を簡単にセキュアに利用 セキュアな認証と プロトコル ルールベースの アクション設定 TLS1.2を利用した クライアント証明書による認証 HTTPSとMQTTSを採用 SQLライクなルールの定義で メッセージ処理をアクション が設定 AWSサービスとのシームレス な連携 デバイスSDKで 開発も簡単 AWS IoTの各種機能を デバイスから利用可能 C-SDK (Ideal for embedded OS) Arduino Library (Arduino Yun) 27 JS-SDK (Ideal for Embedded Linux Platforms) Mobile SDK (Android and ios)
Amazon Kinesis Stream デバイスからのデータを大規模にストリーミング処理する フルマネージドサービス スケーラブルなデータ受信 シャード を増減することで データ受信の処理能力を調節 可能 複雑なデータ処理の インテグレーション KCL(Kinesis Client Library)を 利用し Kinesis Stream からのデータ取得を簡単に 自作のアプリケーションで 複雑なデータ処理も組込み可能 28
Amazon API Gateway アプリケーションだけでなくデバイス向けWeb APIの 作成 保護 運用と公開を容易に RESTfulエンドポイントに必要な 豊富な機能が利用可能 リクエスト数に応じてスケール バックエンドへの負荷を軽減するための スロットリング APIのバージョンを管理 APIアクティビティのメトリクス取得 Lambdaの利用でサーバレスな APIを作成 API呼出し後のアクションでLambdaを 指定することでプログラムの登録のみで APIを作成 29
AWS Lambda IoTの各イベントをトリガーにいろいろなコードを実行 OS,キャパシティなど インフラの管理不要 コードを書いてLambdaに アップロードするのみ 登録されたコードを自動的に 実行 30 多様なイベント に対応 AWS IoTのルールアクション として動作可能 Kinesis Streamのストリーム もイベントとして登録可能 コンピューティング 使用時間のみの課金 コードが実行される100msごと およびコードがトリガーされた 回数に対して課金
Amazon Simple Storage Service (S3) デバイスからの大量データを高い堅牢性で安全に保存 高い堅牢性 99.999999999% 格納容量は 無制限 データを3箇所以上にレプリ ケーション 障害検知とデータ修復を自動で 行なう ファイル数 合計のファイル 容量の制限なし 利用した分のみ課金 31 様々なAWSサービスと 連携 各サービスのデータ入出力に おいてS3を活用 疎結合なデータ連携を実現
Amazon DynamoDB 時系列ななどトランザクショナルなセンサーデータを格納し 蓄積された データをクエリー操作することが可能 管理不要で 信頼性が高い SPOFの存在しない構成 データは3箇所のAZに 保存されるので信頼性が高い スループット監視管理以外に 管理作業不要 データ量が増えてきてもパ フォーマンス劣化の心配なし 32 プロビジョン スループット ReadとWrite それぞれに 対して必要な分だけの スループット割り当てる SSDで低レイテンシー ストレージの 容量制限がない 使った分だけの従量課金制の ストレージ データ容量が増えてもディス クやノード追加作業不要
Amazon Redshift センサーデータを高速に分析 多くのBIツールとも 連携できるDWHサービス フルマネージドな DWHサービス 数クリックで起動 使った分だけ課金 初期費用なし 列志向型 長期的に保存されたセンサー データも高速に分析 高い汎用性 PostgreSQL互換のSQL 多くのBIツールでセンサーデータを分析可能 33
AWS Identity and Access Management (IAM) アプリケーションやデバイスからAWS サービスおよびリソース へのアクセスを安全にコントロール AWSリソースへの きめ細かなアクセス制御 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:connect", "iot:publish", "iot:subscribe", "iot:receive", "iot:getthingshadow", "iot:updatethingshadow" ], "Resource": "arn:aws:iot:us-east-1:123456789012:topic/foo/bar"" } ] どのアプリケーション デバイスが どのAWSのリソースを利用できる かを細かく設定可能 } 34 AWS IoTのfoo/barトピックに対する 接続 publish/subscribeを許可
Amazon Cognito IDプロバイダや独自認証基盤と認証を連携 アプリケーションやデバイスに必要な権限を一時的に付与 複数のIDプロバイダや 独自の認証基盤と連携 IDプロバイダと独自認証基盤と連 携して認証 AWSのリソースを利用するための 任意のポリシーを持った一時的なク レデンシャルが発行される AWS SDKから 簡単に利用可能 SDKを利用することで認証から 権限の付与まで簡単に実装可能 Amazon Cognito (AWS IAM / STS) 35
どのサービスをどのように利用するか?
デバイスの実装 AWS IoT Device SDK AWSのリソースはAWS SDKを利用 AWS IoTのDevice SDKは MQTTを利用 AWS IoTは汎用のオープン ライブラリも利用可能 HTTPS/MQTTS以外の プロトコル利用の場合は 独自で実装が必要 PHP AWS CLI.NET Java AWS Toolkit for Visual Studio Ruby JavaScript AWS Toolkit for Eclipse Node.js C-SDK (Ideal for embedded OS) JS-SDK (Ideal for Embedded Linux Platforms) Arduino Library (Arduino Yun) Mobile SDK (Android and ios) Python (boto) AWS Tools for Windows PowerShell Open Library 37
デバイスの認証 デバイス独自の認証方式の場合は EC2 で自前のアプリケーションで認証 Kinesis をはじめとした AWS サービスの利用は Cognito を推奨 AWS IoT ではクライアント証明書認証にも対応 独自 AWS サービス AWS IoT のみ 認証要求 認証要求 認証 OK Cognito サービス利用 認証 OK EC2 サービス利用 インストール 発行 AWS IoT Kinesis 証明書 38
利用できるプロトコル HTTPS/MQTTS 以外のプロトコルは EC2 上で自前のアプリケーションを利用 Kinesis をはじめとした AWS リソースは各 API(SDK) で HTTPS を利用 AWS IoT は HTTPS に加え MQTTS に対応 どんなプロトコルでも OK HTTPS のみ MQTTS/HTTPS 何でも OK Kinesis EC2 AWS IoT API Gateway 39
生データはS3へアーカイブ 高い堅牢性により生データが 安全に保管できる 生データから2次データ以降の 加工済データを再生可能 40 S3にデータがあるとAWS サービスとの連携が容易 アクセスしない過去データは さらにGlacierにアーカイブ することで安価に長期保管
時系列データの扱い DynamoDB 短期 ~ 長期の時系列データの保存 アプリからの時系列データ読み出し データの可視化 Redshift 長期的なデータの保存には S3 を利用 時系列データの集計 分析に利用 必要なときに S3 などからデータを読込み DynamoDB 時系列データへのアクセスパターンを理解する http://docs.aws.amazon.com/ja_jp/redshift/latest/dg/c_best-practices-time-series-tables.html 41 Redshift 時系列データベースの使用 http://docs.aws.amazon.com/ja_jp/redshift/latest/dg/c_best-practices-time-series-tables.html
コスト サービスにより課金体系が異なる 開発 運用コストなどトータルコストでサービスを選定 プロセッシング データ収集 AWS IoT Kinesis Stream 42 $8/100万メッセージ Kinesis Application $0.0195/h,1シャード $0.0215/100万PUTレコード API Gateway データ保管 $4.25/100万リクエスト $0.14/GBのデータ送出 Lambda S3 $0.033/GB(最初の1TB/月) $0.0047/1,000リクエスト(PUT等) $0.0037/10,000リクエスト(GET) $0.14/時間(c4.large) DynamoDB $0.0742/10ユニットの書込/時 $0.0742/10ユニットの読込/時 $0.000000208(128M, 100ms) Simple Monthly Calculator http://calculator.s3.amazonaws.com/index.html?lng=ja_jp# 表示価格は東京リージョンの価格です
アジェンダ イントロダクション IoTシステムの事例 IoTシステムの技術的要件 IoTシステムでのAWS 活用デザインパターンまとめ 43
44
ケース 1 工場のセンサーデータをリアルタイムに閲覧したい 将来的に分析を行なうために データを保管しておきたい < 要件 > センサーデータを集約しているゲートウェイは HTTP 対応 将来的にセンサー数は数十万となる見込み 45
SQS S3 AZ-a データ受信 Web サーバ ワーカー ゲートウェイ機器 専用線 ELB アプリサーバ RDS AZ-c VPN データ受信 Web サーバ ワーカー アプリケーション アプリサーバ Auto Scaliing RDS 46 センサーデータ書込 センサーデータ読込
ゲートウェイはセンサーデータを集約 デバイス用とアプリケーション用のアプリは ELB+EC2 でスケーラブルな構成 SQS+ ワーカーで RDS への Insert を非同期に行い 書込負荷を均質化 データ受信 Web サーバ SQS ワーカー S3 AZ-a S3へ生データをアーカイブ ゲートウェイ機器 専用線 ELB アプリサーバ RDS AZ-c VPN データ受信 Web サーバ ワーカー アプリケーション 工場と AWS 間は専用線や VPN で安全な接続 アプリサーバ RDS Auto Scaliing Auto Scaling により 負荷に応じた自動スケール 47 センサーデータ書込 センサーデータ読込
ケース 2 環境センサーのデータをクラウドに収集し 収集したデータを開発者に API として公開したい < 要件 > センサーは全国 1 万ヶ所 データは 5 分に 1 回アップロード 48
Cognito 気象センサー API Gateway Lambda S3 インターネット アプリケーション API Gateway Lambda DynamoDB 49 センサーデータ書込 センサーデータ読込
Cognito でデバイスとアプリケーションの双方を認証 Lambda でサーバレスなバックエンド処理 デバイスからの POST を API Gateway で処理 Cognito S3 へ生データをアーカイブ 気象センサー API Gateway Lambda S3 インターネット アプリケーション アプリケーションからの GET/POST も API Gateway で処理 API Gateway Lambda DynamoDB DynamoDB に時系列データを格納 50 センサーデータ書込 センサーデータ読込
ケース 3 車の走行データをクラウドにアップロードし 分析したい < 要件 > 車載器は 1 万台の車に搭載 回線は 3G を利用 データは 10 秒に 1 回 100ms 間隔で取得したデータをまとめて送信 51
BI ツール NEW!! Cognito Kinesis Firehose 車載器 Kinesis Stream Kinesis Application S3 Redshift インターネット アプリケーション API Gateway Lambda DynamoDB 52
BIツール Kinesisを利用するための認証 FirehoseでS3/Redshift にデータを格納 NEW!! AWS SDKでKinesisを利用 (PutRecord(s)) 車載器 KCLの利用で柔軟性の 高いプロセッシング処理 Cognito Kinesis Firehose Kinesis Stream Kinesis Application S3 Redshiftで高速な 時系列データ分析 インターネット アプリケーション Kinesisでデータを受信 シャード数を調節で スケーラブルな受信性能 API Gateway Lambda DynamoDB センサーデータ書込 53 Redshift センサーデータ読込
ケース 4 室温 湿度データを取得し それらのデータを利用してビニールハウスの環境を最適化したい < 要件 > 温度 湿度のデータが一定のしきい値を超えたらアラート送信 かつ自動的に窓の開閉を行なう 54
S3 Cognito センサーデータ用トピック ルール ( すべて ) DynamoDB ビニールハウス シャドウ用トピック AWS IoT ルール ( しきい値 ) SNS Lambda アプリケーション センサーデータ書込 センサーデータ読込 55
AWS IoT で発行された証明書をインストール 到着したメッセージは S3 と DynamoDB にストア 特定の MQTT トピックでデータを受信 S3 Cognito センサーデータ用トピック ルール ( すべて ) DynamoDB ビニールハウス アプリケーション SNS デバイス SDK を組込み シャドウ用トピック ルール ( しきい値 ) しきい値を超えた場合 AWS SNS IoTとLambdaにメッセージが転送される Lambda アプリケーションに通知 センサーデータ書込 センサーデータ読込ビニールハウスへ窓を開閉するようにコマンド送信 56
アジェンダ イントロダクション IoTシステムの事例 IoTシステムの技術的要件 IoTシステムでのAWS 活用デザインパターンまとめ 57
まとめ AWSのサービスを組み合わせることで様々な 要件のIoTシステムが構築可能 AWSを利用することで IoTによる新しい価値 の創造に最大限注力できる 58
Q&A 59
AWSトレーニングでは様々な学習方法をご提供しています メリット 提供方法 AWS について実習や実践練習を通じ て学習できる AWS を熟知したエキスパートから直 接 AWS の機能について学び 疑問の 答えを得られる 自信をもって IT ソリューションに関 する決定を下せるようになる e ラーニングや動画 セルフペースラボ クラスルーム トレーニング 詳しくは http://aws.amazon.com/training をご覧ください 60
公式 Twitter/Facebook AWS の最新情報をお届けします @awscloud_jp 検索 61 もしくは http://on.fb.me/1vr8ywm 最新技術情報 イベント情報 お役立ち情報 お得なキャンペーン情報などを日々更新しています!
AWSの導入 お問い合わせのご相談 AWSクラウド導入に関するご質問 お見積り 資料請 求をご希望のお客様は 以下のリンクよりお気軽にご相 談ください https://aws.amazon.com/jp/contact-us/aws-sales/ 62 AWS 問い合わせ で検索してください
ご清聴ありがとうございました!