SORACOM
IoTスケールなプラットフォームの構築と運用
安川 健太, Ph. D.
株式会社ソラコム CTO
2017/4/20
Inside
Internet of Things
Internet CloudThings
IntelligenceConnected
Devices
©2016 SORACOM, INC 2
Internet CloudThings
セキュリティ
デバイスの
制限
ネットワークへ
の接続
デバイス
管理
クラウドとの
インテグレーション
IoTシステムを構築する際の様々な課題
Public
Endpoints
The Internet
Customer
VPC
Private /
Public
Cloud
SORACOM
Funnel
Devices with
SORACOM Air
3G/LTE
Any Access
Network
SORACOM
Endorse
AWS IoT
SORACOM
Beam
SORACOM
Canal
VPC
Peering
SORACOMのサービス
LoRaWAN
SORACOM
Direct / Door
SORACOM
Harvest
SORACOM
Gate
AWS IoT
Microsoft Azure
EventHubs
Amazon
Kinesis
Public
Endpoints
The Internet
Customer
VPC
Private /
Public
Cloud
SORACOM
Funnel
Devices with
SORACOM Air
3G/LTE
Any Access
Network
SORACOM
Endorse
AWS IoT
SORACOM
Beam
SORACOM
Canal
VPC
Peering
SORACOMのサービス
LoRaWAN
SORACOM
Direct / Door
SORACOM
Harvest
SORACOM
Gate
AWS IoT
Microsoft Azure
EventHubs
Amazon
Kinesis
この中はどうなっているのか?
パケット転送
帯域制御
アクセス制御
アプリケーションサービス
回線・セッション管理
認証
課金
イベント通知
API
コンソール
Polaris
Dipper
Hubble
監視・デプロイ
SORACOMプラットフォームの構成要素
PolarisとDipper
APIで連携する機能コンポーネント群
セッション管理 認証 課金
API Gateway
User Data
API
API
User Data
パケット転送
帯域制御
…
Amazon DynamoDB
Polaris Dipper
このアーキテクチャはローンチ以来変わっていません
IoTスケールなプラットフォームを実現するために
Scalability & Availability
地理的&
技術的な
カバレッジ
進化のAgility
運用の
効率
進化のAgility
1. Horizontal Scalability と Built-in Resilience
5,000以上のお客様がSORACOMを利用
• 負荷に応じてサーバ台数を増やす
Horizontal Scalability
Availability Zone
Availability Zone
Built-in Resilience
Availability Zone
Availability Zone
• SPOFのない構成
• 障害箇所を自動で置き換え
• 負荷に応じてサーバ台数を増やす
Horizontal Scalability
全レイヤにHorizontal Scalability &
Built-in Resilience
セッション管理 認証 課金
API Gateway
API
パケット転送
帯域制御
…
Amazon
DynamoDB
Polaris Dipper
API
User Data
2. Global前提の設計とLayeredアーキテクチャ
2016年11月 USにてSORACOM SIMの発売を開始
2017年2月 SORACOM Air for LoRaWAN発表
2017年3月 EuropeにてSORACOMローンチ
SORACOM User Consoleはローンチ時からグローバル対応
API
Amazon
CloudFront
AmazonS3
開発者
User Console =
Single Page Application
HTML / JS / CSS
Global前提の設計の例1
• Day 1から
多言語対応
• Day1からタイムゾーンはUTC
Global前提の設計の例2
SORACOM Airが拡がれば上に乗る全サービスが拡がる
Layeredアーキテクチャ
SORACOM Air SIM for Globalのローンチ
= 120を超える国と地域でSORACOMの全サービスが利用可能に
Layeredアーキテクチャの恩恵の例1
SORACOM Air for LoRaWANのローンチ
LoRa
ゲートウェイ
LoRa
デバイス
SORACOM
Funnel
SORACOM
Beam
SORACOM
Harvest
データの
収集&
可視化
= LoRaデバイスからBeam, Funnel, Harvestが即時利用可能に
Layeredアーキテクチャの恩恵の例2
=> Global展開も新しい無線技術のサポートもスムーズに
Global前提の設計とLayeredアーキテクチャの効果
SORACOM Air
for LoRaWAN
SORACOM Air
Coverage Type: Global
日本国内 グローバルカバレッジ
3. 疎結合化と非同期化
お客様フィードバックを基に迅速な開発
新サービス&リリース 12個
新機能発表 38回
カスタム DNS
メタデータサービス
製造番号
Beam新機能
AWS IoT連携
UDP to HTTP変換に対応
HTTPカスタムヘッダ対応
Webサイトエントリポイント
SORACOM Canal
SORACOM Direct
SORACOM Endorse
SORACOM Funnel
SIMのアカウント間移動
IMEIの取得が可能に
SAM
API Sandbox
請求書払いへの切替
イベントハンドラ有効期限
Webhook対応
Canal API対応
soracom-cli
Session イベント
認証情報ストア
CanalのWebコンソール
セッション切断API
SORACOM Door
SORACOM Gate
LoRaWAN PoCキット
グローバル用SIM PoC
SIMのSuspended
非同期データエクスポート
IMEIロック
Beam/Funnelエラーログ
SORACOM BeamのGA
Airの料金計算ツール
SORACOM Harvest
米国でのサービス提供開始
Public Gate
SIM検索の高機能可
イベントハンドラSIM状態遷移
Beam TCP/UDPグラフ化
コンソールからセッション切断
メタデータクエリ
8 リリース
2015 Q4 2016 Q1 2016 Q2 2016 Q3 2016 Q4
8 リリース 9 リリース 10 リリース 8 リリース
2017 Q1
6 リリース
Air for LoRaWAN
LoRa共有サービスモデル
欧州でのサービス提供開始
Funnel AWS IoT対応
LoRaでデバイスID署名
Funnelで高レート送信対応
データ通信量履歴はS3バケットを通じて
課金サービスと非同期連携
セッション管理 認証
API Gateway
User Data
API
API
User Data
Amazon DynamoDB
課金
パケット転送
帯域制御
…
1. データ通信量 2. S3 notification
3. ダウンロードして処理
疎結合化と非同期化の例1
SORACOM Funnelはクラウドリソースアダプタ
認証情報とリソース指定だけでクラウド連携を実現
認証情報
各種
クラウド
サービス
簡易なプロトコル
プロトコル変換
認証ロジック
バッファリング
エラー処理
TCP
UDP
HTTP
LoRaWAN
SORACOM Funnel
疎結合化と非同期化の例2
SORACOM Funnelの内部アーキテクチャ
AWS API
AWS API
Azure API
SORACOM
Funnel
Endpoint
Amazon
Kinesis
Stream
Amazon
Kinesis
Firehose
Microsoft
Azure
EventHubs
AWS API
New
AWS IoT
新サービスの追加 ≒ 新たなLambda Functionの追加
疎結合化と非同期化の例2
4. 運用を考えた開発 DevOpsと
運用のための開発 OpsDevの両輪
SORACOM Service Health Dashboard
• 各コンポーネントにはPrimary Owner
• Primary OwnerはOwnershipを持って
開発・メンテナンス・運用に携わる
開発と運用の基本原則
By Devops.png: Rajiv.Pantderivative work: Wylve - このファイ
ルの派生元 Devops.png:, CC 表示 3.0,
https://commons.wikimedia.org/w/index.php?curid=20202905
ソラコムの開発者は全員DevOpsを実践
D
• ありがちなストーリー:
• 開発者がどんどん攻めるけど
運用の守りが手薄に
• システム規模の拡大 =>
運用者の追加と増え続ける手順書
OpsDevエンジニア:運用を中心に見る開発者
SORACOMでの解決方法
• OpsDev エンジニアの導入
• 運用作業省力化のための開発
=> 監視・復旧や繰り返し作業を自動化
Image from: http://6iee.com/788192.html
DevOps OpsDev
パケット転送
帯域制御
アクセス制御
アプリケーションサービス
回線・セッション管理
認証
課金
イベント通知
API
コンソール
Polaris
Dipper
Hubble
監視・デプロイ
SORACOMプラットフォームの構成要素
監視・運用システムHubble
1. Slackに
警告通知
2. 自動復旧
を試行
3.アラート継続
ならエンジニア
を順に呼び出し
• EC2 Tagで各インスタンスのRoleを設定
• Hubbleは自動で対象インスタンスとその監視項目を認識
監視項目の連携も疎結合
D
DevOps
D
OpsDev
Tags: Role1, Role2
Tags: Role3
デプロイ&タグ付け
Roleごとの監視項目と
自動復旧方法を設定
Hubble
IoTスケールなプラットフォームを実現するために
Scalability & Availability
地理的&
技術的な
カバレッジ
進化のAgility
運用の
効率
進化のAgility
Horizontal ScalabilityとBuilt-in Resilience
Global前提の設計とLayeredアーキテクチャ
疎結合化と非同期化
DevOpsとOpsDevの両輪
SORACOMの上にBuild upすることで
皆様がIoTのアプリケーション開発に集中できますように
世界中のヒトとモノをつなげ
共鳴する社会へ

if-up 2017 | SORACOM Inside