Upload
masahiro-nakayama
View
1.465
Download
0
Embed Size (px)
Citation preview
~BLE Mesh×クラウドの “裏” 見せます!!~
細かすぎて伝わらないSORACOM Funnelのオプション紹介
株式会社WHEREなかやままさひろ
2017-07-05 SORACOM UG #7
BLE Mesh×クラウド
•例:従業員や物品の在籍把握システム• iBeaconみたいなBLEビーコンをヒト/モノに持たせる
• 弊社EXBeaconで受信し、BLE Meshでゲートウェイに転送
• ゲートウェイからSORACOM Funnel経由でクラウドで分析・表示
(ウフルさんがこのオフィスでやっているのとだいたい一緒)
•例:測位用ビーコンインフラ• iBeaconみたいなBLEビーコンを固定で設置
• BLE Mesh経由で定期的にバッテリー残量等を収集、設定変更
• 同上
在籍把握システムの例
未公開
EXBeacon♥SORACOM
•ゲートウェイの上位回線にSORACOMを採用• ゲートウェイの処理量を減らしたい⇒SORACOM Funnel
• 各種エンドポイントの管理を一括化⇒SIMグループ
• メンテナンス用リモートアクセス ⇒SORACOM Gate/Canal
システム上の特徴
•高トラフィック・リアルタイム• たくさんのBLEビーコン情報をたくさんのEXBeaconで受信したログが際限なく上がり続けて、リアルタイムで処理
• そこまで多くは無いけど、ビッグデータ系技術への入口
• AWSベースのストリーミング処理基盤を採用• Amazon Kinesis Streams(でっかいパイプ)で収集
• AWS Lambda(サーバーレス実行環境)で逐次集計
• Amazon DynamoDB(ごっついDB)に保存してAPIで最新データを提供
• いわゆるIoTサーバーレスのテンプレ構成
全体アーキテクチャ(簡略版)
EXBeacon
AWS
Credential
SORACOM
FunnelKinesis
Streams
LambdaDynamoDB
BLE Mesh
BLEビーコン
全体アーキテクチャ(簡略版)
EXBeacon
AWS
Credential
SORACOM
FunnelKinesis
Streams
LambdaDynamoDB
BLE Mesh
BLEビーコン
Kinesis Streams × AWS Lambda
• Kinesis StreamsからLambdaへのデータ送信• 決まった量ごとにLambdaに渡される
⇒ Lambdaの処理能力が足りなくなると詰まる
• Lambdaの同時実行数を増やしたい
⇒ Kinesis StreamsのShard数(パイプの本数)を増やす必要がある
• Kinesis StreamsのShard数を増やせば良い(2倍/半分にするのはコンパネからぽちぽちできる)
Lambda同時実行数の引き上げ
Kinesis
StreamsLambda
Function
Function
Function
Function
SORACOM
Funnel
Shard
Shard
Shard
Shard
落とし穴
• Kinesis StreamsのShardの特性• 「どのShard」に入るかは「パーティションキー」で決まる
• 同じShardに入ったものは、入った順序で出てくる。(別のShardとの同期はされない)
• SORACOM Funnelでパーティションキーはどうなる……?
これ(IMSI=SIMごと)⇒分散されない…
EXBeacon
AWS
Credential
SORACOM
FunnelKinesis
Streams
LambdaDynamoDB
BLE Mesh
BLEビーコン
2017-04-18 新規機能発表
•当初のパーティションキー• IMSI
•新仕様でランダム化に対応• 要望から一瞬で対応
• 週末消えずに済んだ\(^o^)/
注意事項
•ランダムなパーティションキー=ランダムなShardに入る• Lambdaに届いたときの前後関係が一切担保されない
• 後ろの処理で前後依存がある場合は注意• SORACOM側で付与されるタイムスタンプ等を利用する
• 別のパーティションキーで高速に投げ直す
で、誰?
• 通称Aki (@nekoruri)
• BLEなIoTシステムのクラウド側担当
• ちょろっと執筆も• 「薄い本」も出しています
• 最近はすっかりセキュリティ教育畑に……• セキュリティ・キャンププロデューサー
• SecHack365 実施協議会委員
• ProjectDIVA Arcade LV.624 / ミリシタはじめました
NEW!