SORACOM Bootcamp Rec1
SORACOM Air
株式会社ソラコム
シニアソフトウェアエンジニア
小熊 崇
SORACOM とは
モバイルとクラウドが融合した
IoT 向け通信プラットフォーム
モバイルとクラウドの融合
インターネットモノ 基地局 データセンター
ISP
パケット交換
帯域制御
顧客管理
課金・・・
通信キャリア
(NTT docomo)
クラウドネイティブ設計
→大量の接続数でも
スケーラブル/高可用性
ドコモとAWSを
専用線で直結
2015年9月30日発表
1日10円〜、モノ向け通信サービス
SORACOM Air
一つのSIMで世界中でつながる
複数の通信キャリアと契約し
現時点で、120を超える国と地域に対応
グローバル用SIM
SORACOM Air – モバイル通信サービス
携帯電話会社
の交換局
お客様
① SIMを購入して
モノに挿す
インターネット
•スマートフォン、タブレット
•3G/LTE WiFi ルーター
•USB アダプター
•各種専用デバイス
:
SIM が入るデバイス
Japan: SIM フリー or ドコモ
Global: SIM フリーのみ
USB アダプターの例
FS01BU AK-020
Amazon.co.jp もしくは SORACOM ユーザーコンソールで
お買い求めいただけます!
専用デバイス
https://soracom.jp/support_partners/certified_device/
インターネット
SORACOM Air – モバイル通信サービス
NTTドコモ
の交換局
お客様
① SIMを購入して
モノに挿す
Webコンソール
②Webから
コントロール
SORACOM Air – モバイル通信サービス
NTTドコモ
の交換局
API
Webコンソール
① SIMを購入して
モノに挿す
②Webから
コントロール
お客様
③APIで自動化
インターネット
•API は SORACOM Air の最大の特徴の一つ
 API を使えばたくさんのことが実現できる
 しかも自動化できる
SORACOM API
• グループ管理
- カスタム DNS設定
- メタデータ管理
- Endorse 設定
- Funnel 設定
• イベントハンドラー管理
• 統計情報取得
• 発注
• 課金情報取得
• 支払情報登録
• メタデータ利用
130 以上の API を提供
• 認証
• オペレータ管理
- サインアップ
- メールアドレス変更
- パスワード変更
- 認証キー生成・削除
• セキュリティ情報管理
- ユーザー管理
- ロール管理
- 連携外部サービスの
認証クレデンシャル
管理
• SIM 管理
- 登録
- 通信速度変更
- アクティベート、休止
- 解約
- 有効期限管理
- タグ
- 移管
- IMEI ロック
- セッション履歴
• VPG 管理
• ログ管理
https://dev.soracom.io/jp/docs/api/
API リファレンス
https://dev.soracom.io/jp/docs/api_sandbox/
API Sandbox
• エンドポイント: https://api.soracom.io
• JSON をやり取りする REST API
→ いろいろな言語から呼び出すことが可能
• リクエストヘッダーに API Key と API Token を
入れて呼び出す
- API Key:ユーザー識別
- API Token:JWT、権限のコントロール等
SORACOM API の特徴
https://github.com/soracom/soracom-cli
soracom-cli
Mac ユーザーの方は homebrew で以下のコマンドだけでインストール完了
brew tap soracom/soracom-cli
brew install soracom-cli
Windows / Linux ユーザーの方も GitHub のリリースページから
バイナリをダウンロードして PATH が通っているディレクトリに配置するだけ
1. イベントハンドラー
2. カスタム DNS
3. メタデータサービス
4. IMEI Lock
是非ご活用いただきたい API と応用例
《 1. イベントハンドラー 》
1. イベントハンドラー
できることの例)
• SIMの1日のデータ通信量が
一定のしきい値を超えたら
メールを送信
• 通算のデータ通信量が
一定のしきい値を超えたら
SIM を解約
一定の条件を満たした時にアクションを起こすことが
できる機能
AWS Lambda
eConnect Japan 様 Japan Prepaid SIM
• 1GB / 15days
• 3GB / 30days
• 5GB / 30days
データ通信容量を使い切るまで、
速度クラス s1.fast での高速通信
帯域制限は一切なし
• 100MB/day (7days)
• 100MB/day (15days)
• 100MB/day (30days)
毎日 100MB まで速度クラス s1.fast で
高速通信
使い切っても s1.slow で使い放題
e.g. 3GB プランのイベントハンドラー
1.出荷時に、自社システムに SIM を登録
=> 累積 3000MB で Lambda を呼び出す
イベントハンドラーを登録
2. ユーザーのデータ通信量が 3000MB を超える
=> プラン終了用の Lambda ファンクションを呼び出す
3. Lambda ファンクションが実行される
=> プラン終了用の eConnect API を呼び出す
IMSI やプラン情報などのパラメータを渡す
4. Deactivate ユーザーのデバイス
5. メール / Push 通知
Before
一般的な SIM カードは面倒なアクティベートが必要
=> ネット環境を求めて SIM を買うのに、利用開始するために
WiFi 環境が必要なのは本末転倒、クレームもあった
After
SORACOM SIM なら、利用開始していないステータス「準備完了」でも通
信を開始できる
イベントハンドラーで、ユーザーの初回通信をトリガーに
Lambda を呼び出してプラン登録・開始のアクティベート
自動アクティベート
イベントハンドラーの API
https://dev.soracom.io/jp/docs/event_handler/
ドキュメント
《 2. カスタム DNS 》
オペレーターが用意した独自の DNS サーバー
を使うようにすることができる機能
2. カスタム DNS
カスタム DNS
独自 DNS サーバー
SORACOM
DNS サーバー
カスタム DNS でキャプティブポータル
インターネット
API
未認証SIMのGroup
認証済みSIMのGroup
認証ポータルしか
返さないDNS
認証ポータル3. 認証
4. Group変更 5. セッション切断
•Group 設定の一部
カスタム DNS の API
https://dev.soracom.io/jp/docs/group_configuration/#air
ドキュメント
《 3. メタデータサービス 》
メタデータとは
通信を行っている SIM 自身の情報
メタデータサービスを使うと、
自身の情報だけは認証なしで取得・更新可能
SIM 自体ですでに呼び出し元の確認は済んでいるので、
認証なしでも安全。他の SIM からはアクセスできない。
3. メタデータサービス
$ curl -s http://metadata.soracom.io/v1/subscriber | jq .
{
"imsi": "44010xxxxxxxxxx",
"msisdn": "81xxxxxxxxxx",
"ipAddress": "10.xxx.xxx.xxx",
"apn": "soracom.io",
"type": "s1.standard",
"groupId": ”xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"createdAt": 1437119287341,
:
SIM の情報の取得
SORACOM Air を搭載したデバイスで実行
# 現在の速度クラスを確認
$ curl -s http://metadata.soracom.io/v1/subscriber | jq .speedClass ↵
"s1.standard”
# 速度クラスを変更
$ curl -sX POST -d ‘{“speedClass”:“s1.fast”}’ 
-H ‘Content-Type: application/json’ 
http://metadata.soracom.io/v1/subscriber/update_speed_class | jq .speedClass ↵
"s1.fast”
自分自身の設定変更も可能
http://metadata.soracom.io/v1/userdata
•任意のデータを事前に登録(グループ単位)
•SIM から認証なしでユーザーデータを取得可能
ユーザーデータもあります
•デバイスの自動構成
コンフィグファイルや起動スクリプトを入れておく
•ポータルコンテンツの配信
HTML ファイルを入れておき、起動時にブラウザでアクセス
ユーザーデータのユースケース
https://api.soracom.io/v1/subscribers/{imsi}/ が
http://metadata.soracom.io/v1/subscriber/ に
マッピングされている
メタデータサービス API
https://dev.soracom.io/jp/start/metadata/
ドキュメント
《 4. IMEI Lock 》
IMEI = SIM が搭載されたデバイス固有の ID
SIM を特定のデバイスでのみ利用可能とする機能
4. IMEI Lock
SIM を盗んで
通信しよう
• IMEI が事前にわかっている場合:
IMSI (SIM の ID) と IMEI を使って事前に
/v1/subscribers/{imsi}/set_imei_lock API をコール
• 実際に利用開始するまで IMEI がわからない場合:
利用開始時に IMEI を指定せずに API をコール
→ SIM が現在使われているデバイスの IMEI にロックされる
IMEI Lock の設定のしかた
IMEI Lock の API
ロック時の引数(Body)
《 まとめ 》
•通信回線自体の管理を自動化できる
IoT では多数の回線の監視や運用管理が必要
初期設定、セキュリティ設定、条件に応じた処理、配置後の設定変更 etc.
•SORACOM を使って構築するサービスの運用も
自動化
SORACOM Air の API のメリット

SORACOM Bootcamp Rec1 - SORACOM Air (1)