Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWS IoTのい・ろ・は
Search
daiki.mori
July 14, 2017
Technology
0
510
AWS IoTのい・ろ・は
event: R3 x SW - IoT x Beer Bash (
https://serverworks.doorkeeper.jp/events/62471
)
daiki.mori
July 14, 2017
Tweet
Share
More Decks by daiki.mori
See All by daiki.mori
いい感じにグラフを表示、やっぱWebでやりたいね。それをAWSで実現!
daikimori
0
74
サーバーレスアーキテクチャを使って、小さく作って大きくする取り組み
daikimori
0
3.4k
AWS RDK 〜AWS ConfigのカスタムルールをLambdaで書くときに使うツールキット〜
daikimori
0
360
JAWS-UG Osaka ZERO-ETL/jawsug osaka zero-etl
daikimori
0
48
JAWS DAYS 2022/Osaka/プログラムは作ったら終わり︖︖ その後が⼤事なんだよ︕︕/20221008_X-Ray_LambdaPowertools
daikimori
0
110
データを受け取って、データを加工して、データを可視化する直前までのお話 / AWS DATA ETL
daikimori
0
160
[JAWS DAYS 2021] Amazon Connect and Serverless
daikimori
1
190
JAWS-UG Kansai Meetup(2020/11) Amazon Connectの今
daikimori
0
61
Playing in re:Invent
daikimori
0
110
Other Decks in Technology
See All in Technology
祝!Iceberg祭開幕!re:Invent 2024データレイク関連アップデート10分総ざらい
kniino
2
250
DevOps視点でAWS re:invent2024の新サービス・アプデを振り返ってみた
oshanqq
0
180
LINE Developersプロダクト(LIFF/LINE Login)におけるフロントエンド開発
lycorptech_jp
PRO
0
120
多領域インシデントマネジメントへの挑戦:ハードウェアとソフトウェアの融合が生む課題/Challenge to multidisciplinary incident management: Issues created by the fusion of hardware and software
bitkey
PRO
2
100
Amazon VPC Lattice 最新アップデート紹介 - PrivateLink も似たようなアップデートあったけど違いとは
bigmuramura
0
190
MLOps の現場から
asei
6
640
Wvlet: A New Flow-Style Query Language For Functional Data Modeling and Interactive Data Analysis - Trino Summit 2024
xerial
1
110
社内イベント管理システムを1週間でAKSからACAに移行した話し
shingo_kawahara
0
180
GitHub Copilot のテクニック集/GitHub Copilot Techniques
rayuron
27
12k
フロントエンド設計にモブ設計を導入してみた / 20241212_cloudsign_TechFrontMeetup
bengo4com
0
1.9k
10個のフィルタをAXI4-Streamでつなげてみた
marsee101
0
160
Opcodeを読んでいたら何故かphp-srcを読んでいた話
murashotaro
0
110
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
The Language of Interfaces
destraynor
154
24k
The Invisible Side of Design
smashingmag
298
50k
Visualization
eitanlees
146
15k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Documentation Writing (for coders)
carmenintech
66
4.5k
Making the Leap to Tech Lead
cromwellryan
133
9k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
28
900
Into the Great Unknown - MozCon
thekraken
33
1.5k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
Transcript
AWS IoTの 株式会社 サーバーワークス 技術3課 森 ⼤樹 い・ろ・は(仮)
Who am I ? ◦ 株式会社サーバーワークス 技術3課 グッド・ルッキング・エンジニア ◦ 元アプリケーションエンジニア
◦ 呼称:「本物の⼤樹」 →経理課の「元祖 ⼤樹」と対決中 ◦ AWS Lambda(Python) ◦ ⼤阪⽣まれ⼤阪育ちの後厄(お祓い済) • 森 ⼤樹 (2017年01⽉JOIN)
とは l AWSに特化したインテグレーション事業とサービスの提供 l 「クラウドで、世界を、もっと、はたらきやすく」 l 3年連続 APN プレミアコンサルティングパートナー l
550社 3200+プロジェクトの実績 (2017年07⽉現在) l 東京・⼤阪・福岡・仙台・札幌に拠点 l 絶賛、エンジニア・営業・営業アシスタントを募集中
IoT 今回のテーマ
IoT is なに? IoT
IoT is なに? l “Internet of Things”の略
IoT is なに? l “Internet of Things”の略 l モノのインターネット
IoT is なに? l “Internet of Things”の略 l モノのインターネット l
モノ=地球上の何か
IoT is なに? l “Internet of Things”の略 l モノのインターネット l
モノ=地球上の何か l モノの情報をインターネット経由で収集
IoT is なに? l “Internet of Things”の略 l モノのインターネット l
モノ=地球上の何か l モノの情報をインターネット経由で収集 l 収集した情報を分析
IoT is なに? l “Internet of Things”の略 l モノのインターネット l
モノ=地球上の何か l モノの情報をインターネット経由で収集 l 収集した情報を分析 l 分析した情報を活⽤
IoTでできること
IoTでできること l 環境のモニタリング 温度、湿度、気圧、照度、⾳など
IoTでできること l 環境のモニタリング 温度、湿度、気圧、照度、⾳など l 動きのモニタリング 衝撃、振動、落下、移動など
IoTでできること l 環境のモニタリング 温度、湿度、気圧、照度、⾳など l 動きのモニタリング 衝撃、振動、落下、移動など l 位置のモニタリング 存在確認、近接確認、通過確認
IoTでできること 環境 動き 位置 分析 改善 / 活⽤
今⽇のお話 AWS IoTの い・ろ・は
まずは、AWS IoT
まずは、AWS IoT その前に、IoTについて覚える5つのこと
AWS IoTの前に覚えておくこと(その1) l MQTT l Message Queueing Teremetry Transfer プロトコル
l 制約された環境での使⽤を想定 l ネットワークコストが⾼い l 帯域幅が狭い l 信頼性が低い l 低リソースなプロセッサやメモリを持つ組み込み機器
AWS IoTの前に覚えておくこと(その1) ー MQTTの特徴 lMQTTの特徴 l ⼩さなヘッダ(最⼩2Byte、HTTPは最⼩50Byte) l Pub/Sub型のプロトコル l
データはブローカー(仲介者)を経由して通信 l 1対多の配信が可能 l QoS (Quality of Service)の設定が可能 l 電源切れやネットワーク断を想定した機能を保有 l Retain, Will (Last Will and Testament)
AWS IoTの前に覚えておくこと(その2) l Pub(Publisher)/Sub(Subscriber) l Publisher lデータを発信 l Subscriber lデータを受信(購読)
Ø PublisherとSubscriberは直接通信しない
AWS IoTの前に覚えておくこと(その3) l Broker l データを仲介するところ l PublisherもSubscriberもBrokerと通信 l Subscriberは基本的にBrokerと常時接続
AWS IoTの前に覚えておくこと(その4) l Topic l データを送受信する際につける件名みたいなの l スラッシュ (/)を使うことで階層的に⾒せる Topicの例
Tokyo/RoomA/Temperature Tokyo/RoomA/Humidity Tokyo/RoomB/Temperature Osaka/RoomA/Temperature
AWS IoTの前に覚えておくこと(その4) l Topic l Subscribeする時にTopicをワイルドカード指定可能 l #(以下の階層全部) l Tokyo/#
東京オフィスの全部の部屋のすべての値 l +(その階層全部) l Osaka/+/Temperature ⼤阪オフィスの全部の部屋の気温
AWS IoTの前に覚えておくこと(その5) l QoS (Quality of Service) l ネットワーク上で提供するサービス品質 l
QoSレベル l QoS0 : 最⾼1回(届くかは保証しない) l QoS1 : 必ず1回届くが複数回もありえる l QoS2 : 正確に1回届く l QoSレベルが⾼くなると確認(ACK)が⼊り、通信量増
AWS IoTの前に覚えておくこと 5つのこと MQTT Pub(Publisher) / Sub(Subscriber) Broker Topic QoS(Quality
of Service)
やっと、AWS IoT
AWS IoTとは
AWS IoTとは
AWS IoTとは
AWS IoTとは
AWS IoTとは
AWS IoTとは 認証・インタフェース デバイスレジストリ デバイスシャドウ ルールエンジン
AWS IoTとは
AWS IoTとは 認証、認可・インタフェース データをMQTTかHTTPSでAWSに送れる 認証は証明書、IAM、Cognito デバイスから利⽤する場合、基本は証明書による認証 デバイス向けのSDKも提供されている Embedded C, JavaScript,
Arduino Yun, Java, Python, iOS, Android
AWS IoTとは 認証、認可・インタフェース IAM PolicyやAWS IoTのPolicyを使って、証明書別、ユーザ 別に実⾏可能な動作を詳細に定義可能 Policyの例 { "Version":
"2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iot:Subscribe", "Resource": “arn:aws:iot:us-east-1:xxxxxxx:topic/toilet" },{ "Effect": "Allow", "Action": "iot:Receive", "Resource": "arn:aws:iot:us-east-1:xxxxxx:topic/toilet" }] }
AWS IoTとは
AWS IoTとは デバイスレジストリ ManagementConsoleに仮想的なデバイス「Things」を作れる 最⼤50組のKey/ValueをThingに紐付けられる ThingsにJSONを保持させられる(Shadow)
AWS IoTとは
AWS IoTとは デバイスシャドウ Thingsに紐づくJSON MQTT, HTTPS, SDKでアクセス可 Get, Update, Deleteができる
このJSONを通して⾮同期にコミュニケーションを⾏える (MQTTのPublishを受け取れなかった時でも、デバイスシャド ウに残しておけば、後から能動的に取りにいける)
AWS IoTとは デバイスシャドウの2つの属性 ReportedとDesiredの2つの状態(属性)を持つ Reportedはデバイス⽤、Desiredはアプリケーション⽤に⽤意 されている ReportedとDesiredの間に差分がある場合は、その差分が Delta属性としてJSONに付与される 差分が発⽣すると、その旨のメッセージがPublishされる
AWS IoTとは デバイスシャドウのJSON構造
AWS IoTとは デバイスシャドウの注意点 デバイスシャドウはDiffと通知機能を持ったJSON置き場で、そ れ以上の事は⾏わない デバイスシャドウのユースケースとしてデバイスのファーム ウェアアップデートが挙がることが多いが、AWS IoTの機能だ けでできるわけではない AWS
IoTが⽤意しているのは⼿段のみであり、ユーザ側でも多 少作ることが必要になる
AWS IoTとは
AWS IoTとは l ルールエンジン l データのフィルタリングや加⼯を⾏ったり、サービスと連携が できる機能 l 条件を指定するQueryと、連携を指定するActionの2つで構成 される
l QueryはSQL Likeな⽂法で書ける
AWS IoTとは l ルールエンジンのクエリ l SQL⾵ l JSONをパースして、クエリの中でJSON属性にアクセス可能 (データはJSONで送った⽅がいい)
AWS IoTとは l ルールエンジンのクエリ l SQL⾵ l SELECT * FROM
ʻTokyo/RoomA/temperatureʼ WHERE temperature > 30 JSONの属性「temperature」を 参照している この条件がTRUEの時にAction が実⾏される このTopicを受信した時に Queryが実⾏される 想定されるデータ Topic Tokyo/RoomA/temperature Payload { “temperature”: 32 }
AWS IoTとは l ルールエンジンのクエリ l 四則演算やTimestampも利⽤可能
AWS IoTとは l ルールエンジンのクエリ l 四則演算やTimestampも利⽤可能 l SELECT (temperature *
1.8) + 32 as fahrenheit, timestamp() as ts FROM ʻTokyo/RoomA/temperatureʼ WHERE temperature > 30 四則演算で摂⽒を華⽒に変換 タイムスタンプを発⾏ (ミリ秒表記のunixtime) 加⼯されたデータ Topic Tokyo/RoomA/temperature Payload { “temperature”: 32, “fahrenheit”: 89.6, “timestamp”: 1478660309204 }
AWS IoTとは l ルールエンジン l アクションで他のAWSサービスとの連携を設定可能 l 指定したサービスにデータを流せる l ⼀つのルールに複数のアクションが設定可能
AWS IoTと聞いて覚えておくこと l 認証、認可・インタフェース l デバイスレジストリ l デバイスシャドウ l ルールエンジン
AWS IoT と 連携できるサービス
AWS IoT と 連携できるサービス Amazon S3
AWS IoT と 連携できるサービス l Amazon S3 l オブジェクトストレージ l
1GBあたり、約3円、耐久性は99.99999999% l 連携できる機能 l AWS IoTで受け取ったデータをS3のオブジェクトとして保存 (1データ:1オブジェクト) l Kinesis Firehoseを経由して利⽤すると複数のデータをまとめて 1ファイルにしてS3に出⼒可能
AWS IoT と 連携できるサービス Amazon S3 Amazon SNS
AWS IoT と 連携できるサービス l Amazon SNS l メールやモバイルなど様々な通知をするサービス l
SNSの通知を起点にアクションを実⾏できるAWSサービスあり l 連携できる機能 l AWS IoTで受け取ったデータをSNSのTopicに対してPublish可能
AWS IoT と 連携できるサービス Amazon S3 Amazon SNS Amazon DynamoDB
AWS IoT と 連携できるサービス l Amazon DynamoDB l NoSQLデータベース l
検索に使えるキーが限られるなど、クセがつぇえ少しあり l 秒間あたりの書き込み、読み込みのキャパシティ設定が必要 l キャパシティによる⾦額は算出しておく必要あり l 連携できる機能 l AWS IoTで受け取ったデータをDynamoDBのテーブルに書き込 み
AWS IoT と 連携できるサービス Amazon S3 Amazon SNS Amazon DynamoDB
AWS Lambda
AWS IoT と 連携できるサービス l AWS Lambda l プログラムの実⾏環境を提供するサービス l
Node.js/Java/Python/C#などが利⽤可能 l プログラムの実⾏時間で課⾦(秒単位) l 連携できる機能 l AWS IoTで受け取ったデータを引数にしてプログラムを実⾏可能
AWS IoT と 連携できるサービス Amazon S3 Amazon SNS Amazon DynamoDB
AWS Lambda Amazon SQS
AWS IoT と 連携できるサービス l Amazon SQS l キューの仕組みを提供してくれるサービス l
連携できる機能 l AWS IoTで受け取ったデータをメッセージとしてキューとして 溜める
AWS IoT と 連携できるサービス Amazon S3 Amazon SNS Amazon DynamoDB
AWS Lambda Amazon SQS Amazon Elasticsearch Service
AWS IoT と 連携できるサービス lAmazon Elasticsearch Service l Elastic社のElasticsearchを利⽤したマネージドサービス l
データの蓄積や検索が可能 l 可視化ツール(kibana)がプリインストールされていてデータを 簡単に可視化可能 l 連携できる機能 l AWS IoTで受け取ったデータをElasticsearchへ lKinesis Firehose経由で登録することも可能
AWS IoT と 連携できるサービス Amazon S3 Amazon SNS Amazon DynamoDB
AWS Lambda Amazon SQS Amazon Elasticsearch Service Amazon Kinesis
AWS IoT と 連携できるサービス l Amazon Kinesis l Amazon Kinesis
Streams l Amazon Kinesis Firehose
AWS IoT と 連携できるサービス l Amazon Kinesis Streams l ⼤規模なストリーミングデータをリアルタイムで処理するサービス
l Input / Output共に⾼いスループット l Inputデータは24時間以内であればいつでも取り出し可能 l 連携できる機能 l AWS IoTで受け取ったデータをKinesis Streamsに流す
AWS IoT と 連携できるサービス l Amazon Kinesis Firehose l ⼤量のデータを効率良くDBなどにロードするサービス
l ストリーミングデータを⼀時的にバッファリングして、 ⼀定間隔で⼀括で登録可能(Bulk Insert) l 連携できる機能 l AWS IoTで受け取ったデータをFirehoseへ流す (FirehoseからS3 / Redshift / Elasticsearch Serviceへも)
AWS IoT と 連携できるサービス Amazon S3 Amazon SNS Amazon DynamoDB
AWS Lambda Amazon SQS Amazon Elasticsearch Service Amazon Kinesis Amazon CloudWatch
AWS IoT と 連携できるサービス l Amazon CloudWatch l AWSリソースを監視するサービス l
独⾃のデータをカスタムメトリクスとして監視可能 l 連携できる機能 lAWS IoTで受け取ったデータを蓄積する l閾値を設けてアラームを設定する (さらにAWSリソースと連携も可能) lグラフ化も可能
AWS IoT と 連携できるサービス AWSが提供するサービスだけじゃない!!
詳しくは... 検 索
AWS IoT と 連携できるサービス
AWS IoT と 連携できるサービス l Salesforce l AWSを基盤として利⽤ l CRM
(顧客管理) や 営業⽀援、データ集計・分析を実施 l 連携できる機能 l Wave Analyticsを使って分析・可視化が可能
AWS IoT と 連携できるサービス の おさらい Amazon S3 Amazon SNS
Amazon DynamoDB AWS Lambda Amazon SQS Amazon Elasticsearch Service Amazon Kinesis Amazon CloudWatch Salesforce
AWSを使ったIoT基盤の構築パターン
IoT基盤の構築パターン l IoTにおけるデータの流れ 1. 集める 2. 加⼯する 3. 溜める 4.
提供する
IoT基盤の構築パターン IoTにおけるデータが流れる例 ूΊΔ Ճ͢Δ ཷΊΔ ఏڙ͢Δ
ूΊΔ Ճ͢Δ ཷΊΔ ఏڙ͢Δ IoT基盤の構築パターン IoTにおけるデータが流れる例 デバイスから AWS IoTに Publish
AWS IoTから Kinesis Firehoseへ Lambdaで データを加⼯ 加⼯されたデー タをKinesis Firehoseへ Kinesis Firehoseから Elasticsearchへ定期的 にINSERT kibanaで 可視化
IoT基盤の構築パターン どんなサービスがあるの? ूΊΔ Ճ͢Δ ཷΊΔ ఏڙ͢Δ
IoT基盤の構築パターン どんなサービスがあるの? ूΊΔ Ճ͢Δ ཷΊΔ ఏڙ͢Δ
IoT基盤の構築パターン どんなサービスがあるの? ूΊΔ Ճ͢Δ ཷΊΔ ఏڙ͢Δ SORACOM Beam : デバイス→SORACOMの次の宛先を指定
SORACOM Funnel : SORACOM経由でクラウドサービスへデータを転送
IoT基盤の構築パターン どんなサービスがあるの? ूΊΔ Ճ͢Δ ཷΊΔ ఏڙ͢Δ それぞれのフェーズにおいて⽤途に応じた サービス選択が不可⽋
IoT基盤の構築パターン 考慮ポイント データの送受信 データの利⽤⽅法
IoT基盤の構築パターン 考慮ポイント データの送受信 頻度 プロトコル ⼀⽅向 or 双⽅向 データの利⽤⽅法
IoT基盤の構築パターン 考慮ポイント データの送受信 頻度 プロトコル ⼀⽅向 or 双⽅向 データの利⽤⽅法 W
h y
IoT基盤の構築パターン 考慮ポイント データの送受信 頻度 プロトコル ⼀⽅向 or 双⽅向 データの利⽤⽅法 Ø選択するサービスが変わる
Ø料⾦が⼤きく変わる W h y
IoT基盤の構築パターン 考慮ポイント データの送受信 頻度 プロトコル ⼀⽅向 or 双⽅向 データの利⽤⽅法 頻度
クエリ
IoT基盤の構築パターン 考慮ポイント データの送受信 頻度 プロトコル ⼀⽅向 or 双⽅向 データの利⽤⽅法 頻度
クエリ W h y
IoT基盤の構築パターン 考慮ポイント データの送受信 頻度 プロトコル ⼀⽅向 or 双⽅向 データの利⽤⽅法 頻度
クエリ Ø溜めるサービスが変わる Øパフォーマンスに影響 Ø操作性に影響 W h y
IoT基盤の構築パターン lパターンを3つ紹介 計測機器等の情報を収集 1. 可視化したい 2. クラウドからデバイスを制御 3. 分析したい
IoT基盤の構築パターン 計測機器から情報収集+可視化 ूΊΔ Ճ͢Δ ཷΊΔ ఏڙ͢Δ Ø プロトコルはHTTPS (http://docs.aws.amazon.com/ja_jp/general/latest/gr/rande.html#fh_region )
Ø 通信はデバイス→クラウドの⼀⽅向のみ Ø 可視化する場合は kibana or ElasticsearchのAPIを呼び出す Ø データの加⼯が必要な場合は、AWS Lambdaを挟む
IoT基盤の構築パターン 計測機器から情報収集+可視化+デバイス制御 ूΊΔ Ճ͢Δ ཷΊΔ ఏڙ͢Δ Ø プロトコルはMQTT(Pub / Sub)
Ø 通信はデバイス⇔クラウドの双⽅向になりリアルタイム制御可能 Ø AWS IoT(ルールエンジンの利⽤)でデータ加⼯やフィルタリングが可能 Ø 可視化する場合は kibana or ElasticsearchのAPIを呼び出す
IoT基盤の構築パターン 計測機器から情報収集+可視化+分析 ूΊΔ Ճ͢Δ ཷΊΔ ఏڙ͢Δ Ø プロトコルはHTTPS or MQTT
Ø デバイスから取得した情報は AWS IoTで集め、Redshiftに格納 Ø BIツールで気象データは売上データを結合して分析
まとめ
AWS IoTの い・ろ・は l AWS IoT l 認証/インタフェース、デバイスレジストリ、 デバイスシャドウ、ルールエンジン l
AWS IoTと連携できるサービス l l AWSを使ったIoT基盤の構築パターン
最後に
サーバーワークスは... l きてくれる⽅を絶賛募集中(※) l エンジニア/営業/営業アシスタントを募集 l 東京/⼤阪/名古屋/福岡 l リモートでの仕事もOK!!w l(※)切腹の強要はされません。ご安⼼ください。
l(※)切腹は代表のギャグですのであしからず。
IoT案件も多数実践中。 お仕事は是⾮、Serverworksへ!!
Thanx.