14
BLE Mesh×クラウドの 見せます!!細かすぎて伝わらない SORACOM Funnelのオプション紹介 株式会社WHERE なかやま まさひろ 2017-07-05 SORACOM UG #7

細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug

Embed Size (px)

Citation preview

Page 1: 細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug

~BLE Mesh×クラウドの “裏” 見せます!!~

細かすぎて伝わらないSORACOM Funnelのオプション紹介

株式会社WHEREなかやままさひろ

2017-07-05 SORACOM UG #7

Page 2: 細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug

BLE Mesh×クラウド

•例:従業員や物品の在籍把握システム• iBeaconみたいなBLEビーコンをヒト/モノに持たせる

• 弊社EXBeaconで受信し、BLE Meshでゲートウェイに転送

• ゲートウェイからSORACOM Funnel経由でクラウドで分析・表示

(ウフルさんがこのオフィスでやっているのとだいたい一緒)

•例:測位用ビーコンインフラ• iBeaconみたいなBLEビーコンを固定で設置

• BLE Mesh経由で定期的にバッテリー残量等を収集、設定変更

• 同上

Page 3: 細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug

在籍把握システムの例

未公開

Page 4: 細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug

EXBeacon♥SORACOM

•ゲートウェイの上位回線にSORACOMを採用• ゲートウェイの処理量を減らしたい⇒SORACOM Funnel

• 各種エンドポイントの管理を一括化⇒SIMグループ

• メンテナンス用リモートアクセス ⇒SORACOM Gate/Canal

Page 5: 細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug

システム上の特徴

•高トラフィック・リアルタイム• たくさんのBLEビーコン情報をたくさんのEXBeaconで受信したログが際限なく上がり続けて、リアルタイムで処理

• そこまで多くは無いけど、ビッグデータ系技術への入口

• AWSベースのストリーミング処理基盤を採用• Amazon Kinesis Streams(でっかいパイプ)で収集

• AWS Lambda(サーバーレス実行環境)で逐次集計

• Amazon DynamoDB(ごっついDB)に保存してAPIで最新データを提供

• いわゆるIoTサーバーレスのテンプレ構成

Page 6: 細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug

全体アーキテクチャ(簡略版)

EXBeacon

AWS

Credential

SORACOM

FunnelKinesis

Streams

LambdaDynamoDB

BLE Mesh

BLEビーコン

Page 7: 細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug

全体アーキテクチャ(簡略版)

EXBeacon

AWS

Credential

SORACOM

FunnelKinesis

Streams

LambdaDynamoDB

BLE Mesh

BLEビーコン

Page 8: 細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug

Kinesis Streams × AWS Lambda

• Kinesis StreamsからLambdaへのデータ送信• 決まった量ごとにLambdaに渡される

⇒ Lambdaの処理能力が足りなくなると詰まる

• Lambdaの同時実行数を増やしたい

⇒ Kinesis StreamsのShard数(パイプの本数)を増やす必要がある

• Kinesis StreamsのShard数を増やせば良い(2倍/半分にするのはコンパネからぽちぽちできる)

Page 9: 細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug

Lambda同時実行数の引き上げ

Kinesis

StreamsLambda

Function

Function

Function

Function

SORACOM

Funnel

Shard

Shard

Shard

Shard

Page 10: 細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug

落とし穴

• Kinesis StreamsのShardの特性• 「どのShard」に入るかは「パーティションキー」で決まる

• 同じShardに入ったものは、入った順序で出てくる。(別のShardとの同期はされない)

• SORACOM Funnelでパーティションキーはどうなる……?

Page 11: 細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug

これ(IMSI=SIMごと)⇒分散されない…

EXBeacon

AWS

Credential

SORACOM

FunnelKinesis

Streams

LambdaDynamoDB

BLE Mesh

BLEビーコン

Page 12: 細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug

2017-04-18 新規機能発表

•当初のパーティションキー• IMSI

•新仕様でランダム化に対応• 要望から一瞬で対応

• 週末消えずに済んだ\(^o^)/

Page 13: 細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug

注意事項

•ランダムなパーティションキー=ランダムなShardに入る• Lambdaに届いたときの前後関係が一切担保されない

• 後ろの処理で前後依存がある場合は注意• SORACOM側で付与されるタイムスタンプ等を利用する

• 別のパーティションキーで高速に投げ直す

Page 14: 細かすぎて伝わらないSORACOM Funnelのオプション紹介 #soracomug

で、誰?

• 通称Aki (@nekoruri)

• BLEなIoTシステムのクラウド側担当

• ちょろっと執筆も• 「薄い本」も出しています

• 最近はすっかりセキュリティ教育畑に……• セキュリティ・キャンププロデューサー

• SecHack365 実施協議会委員

• ProjectDIVA Arcade LV.624 / ミリシタはじめました

NEW!