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

165 Views

July 06, 17

スライド概要

2017-07-05 #soracomug LT
~BLE Mesh×クラウドの “裏” 見せます!!~
細かすぎて伝わらないSORACOM Funnelのオプション紹介

profile-image

秋葉原生まれ大手町育ちの歌って踊れる江戸っ子インフラエンジニア。 0と1が紡ぐ「ゆるやかなつながり」に魅せられ早20年、 SNSとCGMの力で世界を幸福にするのがライフワーク。 市民、幸福は義務です。 あなたは幸福ですか?

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

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

2.

BLE Mesh×クラウド • 例:従業員や物品の在籍把握システム • iBeaconみたいなBLEビーコンをヒト/モノに持たせる • 弊社EXBeaconで受信し、BLE Meshでゲートウェイに転送 • ゲートウェイからSORACOM Funnel経由でクラウドで分析・表示 (ウフルさんがこのオフィスでやっているのとだいたい一緒) • 例:測位用ビーコンインフラ • iBeaconみたいなBLEビーコンを固定で設置 • BLE Mesh経由で定期的にバッテリー残量等を収集、設定変更 • 同上

3.

在籍把握システムの例 未公開

4.

EXBeacon♥SORACOM • ゲートウェイの上位回線にSORACOMを採用 • ゲートウェイの処理量を減らしたい⇒SORACOM Funnel • 各種エンドポイントの管理を一括化⇒SIMグループ • メンテナンス用リモートアクセス ⇒SORACOM Gate/Canal

5.

システム上の特徴 • 高トラフィック・リアルタイム • たくさんのBLEビーコン情報をたくさんのEXBeaconで受信したログが 際限なく上がり続けて、リアルタイムで処理 • そこまで多くは無いけど、ビッグデータ系技術への入口 • AWSベースのストリーミング処理基盤を採用 • • • • Amazon Kinesis Streams(でっかいパイプ)で収集 AWS Lambda(サーバーレス実行環境)で逐次集計 Amazon DynamoDB(ごっついDB)に保存してAPIで最新データを提供 いわゆるIoTサーバーレスのテンプレ構成

6.

全体アーキテクチャ(簡略版) SORACOM Funnel Kinesis Streams BLE Mesh AWS Credential EXBeacon BLEビーコン Lambda DynamoDB

7.

全体アーキテクチャ(簡略版) SORACOM Funnel Kinesis Streams BLE Mesh AWS Credential EXBeacon BLEビーコン Lambda DynamoDB

8.

Kinesis Streams × AWS Lambda • Kinesis StreamsからLambdaへのデータ送信 • 決まった量ごとにLambdaに渡される ⇒ Lambdaの処理能力が足りなくなると詰まる • Lambdaの同時実行数を増やしたい ⇒ Kinesis StreamsのShard数(パイプの本数)を増やす必要がある • Kinesis StreamsのShard数を増やせば良い (2倍/半分にするのはコンパネからぽちぽちできる)

9.

Lambda同時実行数の引き上げ Shard Function Shard SORACOM Funnel Function Shard Function Shard Function Kinesis Streams Lambda

10.

落とし穴 • Kinesis StreamsのShardの特性 • 「どのShard」に入るかは「パーティションキー」で決まる • 同じShardに入ったものは、入った順序で出てくる。 (別のShardとの同期はされない) • SORACOM Funnelでパーティションキーはどうなる……?

11.

これ(IMSI=SIMごと)⇒分散されない… SORACOM Funnel Kinesis Streams BLE Mesh AWS Credential EXBeacon BLEビーコン Lambda DynamoDB

12.

2017-04-18 新規機能発表 • 当初のパーティションキー • IMSI • 新仕様でランダム化に対応 • 要望から一瞬で対応 • 週末消えずに済んだ\(^o^)/

13.

注意事項 • ランダムなパーティションキー=ランダムなShardに入る • Lambdaに届いたときの前後関係が一切担保されない • 後ろの処理で前後依存がある場合は注意 • SORACOM側で付与されるタイムスタンプ等を利用する • 別のパーティションキーで高速に投げ直す

14.

で、誰? • 通称Aki (@nekoruri) • BLEなIoTシステムの クラウド側担当 • ちょろっと執筆も • 「薄い本」も出しています • 最近はすっかり セキュリティ教育畑に…… • セキュリティ・キャンプ プロデューサー • SecHack365 実施協議会委員 • ProjectDIVA Arcade LV.624 / ミリシタはじめました NEW!