Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

【Connected.T1】SORACOM Air 再発見 - プログラマブルな SIM で実現できること

3,595 views

Published on

eConnect Japan株式会社 CEO/Founder 小山 修平 氏
株式会社ソラコム シニアソフトウェアエンジニア 小熊 崇

ご紹介サービス:SORACOM Air

Published in: Technology
  • Be the first to comment

【Connected.T1】SORACOM Air 再発見 - プログラマブルな SIM で実現できること

  1. 1. SORACOM Air 再発見 プログラマブルな SIM で実現できること 株式会社ソラコム シニアソフトウェアエンジニア 小熊 崇 SORACOM Conference “Connected.” 2016 テクニカルトラック
  2. 2. Thanks to our sponsors | Platinum Sponsors | Gold Sponsors | Silver Sponsors | Beverage Sponsors
  3. 3. 本日のイベントのハッシュタグ #soracom @SORACOM_PR https://www.facebook.com/soracom.jp/
  4. 4. # whoami • 名前:小熊 崇(おぐま たかし) • 所属:株式会社ソラコム – シニアソフトウェアエンジニア • 2001年頃 IBM 東京基礎研究所 学生研究員 – WatchPad / CEO 玉川と出会う • SORACOM ではフロントエンド担当 – ユーザーコンソール – API Gateway – soracom-sdk-go – Web サイト
  5. 5. 《 本日の話題 》 • SORACOM の仕組み • SORACOM Air の特徴 • SORACOM Air の全機能のご紹介 • スペシャルゲスト登壇
  6. 6. 《 SORACOM の仕組み 》 おさらい
  7. 7. SORACOM の仕組み インターネットモノ 基地局 データセンター ISP パケット交換 帯域制御 顧客管理 課金・・・ 通信キャリア (NTT docomo) クラウドネイティブ設計 →大量の接続数でも スケーラブル/高可用性 ドコモとAWSを 専用線で直結
  8. 8. 《 SORACOM Air 》
  9. 9. SORACOM Air SIM データ通信SIM nano micro 標準 データ通信SIM (SMSあり) nano micro 標準
  10. 10. インターネット SORACOM Air の使い方 NTTドコモ の交換局 お客様 ① SIMを購入して モノに挿す Webコンソール ②Webから コントロール
  11. 11. インターネット SORACOM Air NTTドコモ の交換局 API Webコンソール ① SIMを購入して モノに挿す ②Webから コントロール お客様 ③APIで自動化
  12. 12. •通信回線自体の管理を自動化できる • 多数の回線を保有する場合は単に通信できれば良いと いうわけではなく、回線の監視や運用管理が必要 (従来の SIM では難しい) 初期設定、セキュリティ設定、条件に応じた処理、 配置後の設定変更 etc. API のメリット
  13. 13. 料金 • 初期費用 (契約事務手数料) 560円/枚 (直販サイトで1枚単位) *Amazon.co.jpでも購入可(888円 送料込み) • 基本料金 開通後 1日10円 (開通前 1日5円) SMS 付きは +5円 • データ通信料金 1MB/0.2円〜 (1GBで200円〜) ※ 上記金額は税別で表記しています 詳細: https://soracom.jp/services/air/price/
  14. 14. 安い 速い 上りの方が安い
  15. 15. SORACOM の約款に従っていただく限り、 ご自由にお使いいただけます • お客様のプロダクトに組み込んで、自由な料金プランで販売し ていただけます → お客様 独自のビジネスの構築 が可能です • 最低利用期間や契約枚数などの “縛り” はありません • もちろん個人での趣味の利用も歓迎 SORACOM Air は自由な SIM 注:電波法・電気通信事業法は遵守してください
  16. 16. SORACOM Air は・・・ • モノをクラウドに直接接続 • API で制御可能 • 上り・深夜が安い従量課金 • 縛りの少ない自由な SIM
  17. 17. 《 SORACOM Air 》 ただの格安 SIM ではなく、 IoT 向け SIM
  18. 18. API で「速度変更」「休止・再開」「解約」 だけでなく、 1. タグ 2. グループ 3. イベントハンドラー 4. カスタム DNS 5. メタデータサービス 6. SIM のオペレーター間移動 さらに便利に
  19. 19. SIM に個別にタグ付けできます タグ=キーと値のペア 任意のデータを入れていただけます • 管理情報(使用者・保管場所・納入先などの情報) • プログラムから利用したい情報 など API を用いるとタグで検索可能 通信量・通信料 明細にもタグが入ります 1. タグ 使用者:○○ 出荷先:XXX
  20. 20. SIM をグループ単位で管理できます • イベントハンドラーの適用対象 • カスタム DNS の設定 • メタデータの設定 • Beam の設定 • 新サービス Endorse, Funnel の設定 2. グループ
  21. 21. グループの使い方 出荷前グループ テスト用 DNS 設定 テスト用 Beam 設定 出荷後グループ 本番用 DNS 設定 本番用 Beam 設定
  22. 22. 3. イベントハンドラー できることの例) • SIMの1日の通信データ量が 一定のしきい値を超えたら メールを送信 • 通算のデータ通信量が 一定のしきい値を超えたら SIM を解約 一定の条件を満たした時にアクションを起こすことが できる機能
  23. 23. オペレーターが用意した独自の DNS サーバー を使うようにすることができる機能 4. カスタム DNS カスタム DNS 独自 DNS サーバー SORACOM DNS サーバー
  24. 24. • DNS の Query Log • デバイスの正常稼働の確認 • 不正利用の検出 • アクセス履歴の収集 • DNS フィルタリング • アクセス先を限定 • 悪質なサーバへのアクセスを回避 • DNS の応答を変えて接続先を切り替え カスタム DNS の使用例
  25. 25. SORACOM Airでキャプティブポータル インターネット API 未認証ユーザのGroup 認証済みユーザのGroup 認証ポータルしか 返さないDNS 認証ポータル3. 認証 4. Group変更 5. 回線切断
  26. 26. メタデータとは 通信を行っている SIM 自身の情報 メタデータサービスを使うと、 自身の情報だけは認証なしで取得・更新可能 SIM 自体ですでに呼び出し元の確認は済んでいるので、 認証なしでも安全。他の SIM からはアクセスできない。 5. メタデータサービス
  27. 27. $ 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 の情報の取得
  28. 28. # 現在の速度クラスを確認 $ 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” # 変更後の速度クラスを確認 $ curl -s http://metadata.soracom.io/v1/subscriber | jq .speedClass "s1.fast" 自分自身の設定変更も可能
  29. 29. http://metadata.soracom.io/v1/userdata •任意のデータを事前に登録(グループ単位) •SIM から認証なしでユーザーデータを取得可能 ユーザーデータもあります
  30. 30. •デバイスの自動構成 コンフィグファイルや起動スクリプトを入れておく •ポータルコンテンツの配信 HTML ファイルを入れておき、起動時にブラウザでアクセス ユーザーデータのユースケース
  31. 31. [準備完了] 状態(=未使用)の SIM を 他のオペレーターに譲渡することができます 6. SIM のオペレーター間移動 デバイス販売元 エンドユーザー
  32. 32. SORACOM Air には便利な機能がたくさん 1. タグ 2. グループ 3. イベントハンドラー 4. カスタム DNS 5. メタデータサービス 6. SIM のオペレーター間移動
  33. 33. eConnect Japan 株式会社 CEO/Founder 小山 修平 様 にご登壇いただきます SORACOM Air 活用事例 紹介
  34. 34. MVNO のはじめかた SIM & Mobile App for Travelers eConnect Japan Inc. CEO Shuhei Koyama 2016/01/27
  35. 35. 小山 修平 CEO / Founder eConnect Japan 株式会社 • 1988年 神戸生まれ • 明石高専卒 • オーストラリア、スイスに留学 • 旅が好き • 最近はイーロン・マスクを尊敬 自己紹介
  36. 36. IoT用途ではなく、スマホやタブレットで利用する データ通信専用のプリペイド SIM として サービスを提供している事例のご紹介 《 セッションの内容 》
  37. 37. SORACOM Air SIM / API を活用すれば、 誰でも MVNO のようにサービスを展開できます
  38. 38. 2012年1月 法人を設立し、インバウンド向け (訪日外国人向け) に SIM カードの販売をスタート 2015年9月 SIM カードを SORACOM Air にスイッチ 2015年12月 カスタマー向けのアプリ (iOS, Android, Web) をリリース eConnect Japan について
  39. 39. Japan Prepaid SIM
  40. 40. eConnect App iOS Android
  41. 41. 《 Japan Prepaid SIM の事例 》
  42. 42. • eConnect 独自のプランを用意 • 定量型プラン (1GB, 3GB など) • 日数型プラン (100MB/day x 日数) • 自動アクティベート • モバイルアプリから SIM の利用状況をチェック、コントロール • プランのリチャージ • 自動Terminate (プラン終了から3日後) • 帯域制限なし Japan Prepaid SIM の概要
  43. 43. これらをすべて SORACOM API を利用して実現 特に、イベントハンドラーと AWS Lambda の連携がパワフル
  44. 44. 《 プランについて 》
  45. 45. Before MVNO 事業者の規定のプランを利用するしかなかった After SORACOM SIM には一般的なプリペイド SIM のような プランの概念はないが、API でコントロール可能 プランについて
  46. 46. 自由に独自プランを提供できる
  47. 47. • 1GB / 15days • 3GB / 30days • 5GB / 30days データ通信容量を使い切るまで、 速度クラス s1.fast での高速通信 帯域制限は一切なし 定量型プラン
  48. 48. • 100MB/day (7days) • 100MB/day (15days) • 100MB/day (30days) 毎日 100MB まで速度クラス s1.fast で 高速通信 使い切っても s1.slow で使い放題 日数型プラン
  49. 49. 通信速度 POST: /subscribers/{imsi}/update_speed_class => 速度クラスを s1.fast に変更 有効期限 POST: /subscribers/{imsi}/set_expiry_time => プランの利用可能日数に応じて、日付を unixtime で指定 データ通信容量 POST: /event_handlers => プランごとのデータ通信容量をしきい値に指定し、 累積通信量が超過すると Lambda を呼び出すイベントハンドラーを登録 各プラン共通の基本的な実装
  50. 50. e.g. 3GB プランのイベントハンドラー 1.出荷時に、自社システムに SIM を登録 => 累積 3000MB で Lambda を呼び出す イベントハンドラーを登録 2. ユーザーのデータ通信量が 3000MB を超える => プラン終了用の Lambda ファンクションを呼び出す 3. Lambda ファンクションが実行される => プラン終了用の eConnect API を呼び出す IMSI やプラン情報などのパラメータを渡す 4. Deactivate ユーザーのデバイス 5. メール / Push 通知
  51. 51. e.g. 100MB/day のイベントハンドラー 1.出荷時に、自社システムに SIM を登録 => 累積 100MB で Lambda を呼び出す イベントハンドラーを登録 2. ユーザーの当日データ通信量が 100MB を超える => 速度変更用の Lambda ファンクションを呼び出す 3. Lambda ファンクションが実行される => 速度変更用の eConnect API を呼び出す IMSI やプラン情報などのパラメータを渡す 4. 速度クラスを s1.slow に変更 ユーザーのデバイス 5. メール / Push 通知
  52. 52. 毎日 JST 0時に、Cron でリセット処理 e.g. 100MB/day のイベントハンドラー • 速度クラスを s1.fast に戻す • 既存イベントハンドラーの削除 • 累積データ通信量をトリガーとしたイベントハンドラーの再登録 しきい値は [これまでの総データ通信量 + 100MB]
  53. 53. イベントハンドラーの評価基準は UTC ベースだが、 eConnect のサービスは JST ベースで提供可能に
  54. 54. Before 一般的な SIM カードは面倒なアクティベートが必要 => ネット環境を求めて SIM を買うのに、利用開始するために WiFi 環境が必要なのは本末転倒、クレームもあった After SORACOM SIM なら、利用開始していないステータス「準備完了」でも通 信を開始できる => イベントハンドラーで、ユーザーの初回通信をトリガーに Lambda を 呼び出してプラン登録・開始のアクティベートを行う 自動アクティベート
  55. 55. 自動アクティベート 1. 出荷時に、自社システムに SIM を登録 => SIM ステータスが「使用中」になると Lambda を呼び出すイベントハンドラーを登録 2. ユーザーが SIM の利用を開始し、初回通信を行う => ステータスが「準備完了」から「使用中」に変わり、 アクティベート用の Lambda ファンクションを呼び出す 3. Lambda ファンクションが実行される => アクティベート用の eConnect API を呼び出す IMSI などのパラメータを渡す 4. プラン設定のための 各 API を呼び出す ユーザーのデバイス 5. メール / Push 通知
  56. 56. 《 モバイルアプリの活用事例 》
  57. 57. • 初心者でも簡単に APN 設定 • SIM の概要、プラン履歴などの表示 • データの使用履歴、残量の表示 • プランのリチャージ • 任意のデータ通信量での Push 通知 モバイルアプリの基本機能 …And more
  58. 58. iOS アプリに APN プロファイルをバンドル済み => あらかじめアプリをインストールしておけば オフラインでも1タップで APN インストール Android APN 情報のコピーができ、 1タップで APN 設定メニューへ遷移 かんたん APN 設定
  59. 59. MSISDN、シリアル、有効期限などの表示 利用している主な API GET: /subscribers/{imsi} IMSI で指定した Subscriber (SIM) の情報を返す SIM の基本情報の表示
  60. 60. 日ごとのデータ通信量、 現プランの通信量・残量などの表示 利用している主な API GET: /stats/air/subscribers/{imsi} IMSI で指定した Subscriber の通信量履歴を 取得する => 集計単位を minutes で取得し、JSTに変換後、 日ごとやプランの期間で通信量を計算して表示 データの使用履歴、残量の表示
  61. 61. 追加のプランを購入する 利用している主な API => 前半に説明したプラン設定と同様の処理を行い、 ユーザーのプラン情報を更新する プランのリチャージ
  62. 62. ユーザーが指定した通信量に達すると、デバイスへ Push 通知を行う。日ごと、累積の2種を設定可能 利用している主な API POST: /event_handlers イベントハンドラーを新規作成する => 実行されるアクションに Lambda の呼び出しを指定し、 Lambda から Push 通知用の eConnect API を呼び出す 任意のデータ通信量での Push 通知
  63. 63. e.g. 3GBプランで2500MB使用時に通知 1. アプリで 2500MB での通知を設定 => 累積 2500MB で Lambda を呼び出す イベントハンドラーを登録 2. ユーザーのデータ通信量が 2500MB を超える => Push 通知用の Lambda ファンクションを呼び出す 3. Lambda ファンクションが実行される => Push 通知用の eConnect API を呼び出す IMSI やデータ通信量などのパラメータを渡す ユーザーのデバイス 4. Push 通知
  64. 64. 《 カスタム DNS の活用事例 》 ※ 近日ローンチ予定
  65. 65. Before プラン終了時に SIM を deactivate => 通信できないので、リチャージには WiFi 環境が必要 After プラン終了時に、SIM のグループを カスタム DNS 設定済みグループへ変更 => リチャージサイトにのみアクセスしてプラン購入可能 プラン終了後のリチャージ
  66. 66. プラン終了後のリチャージ インターネット API プラン終了済みSIMのGroup プランが有効なSIMのGroup リチャージサイトしか 返さないDNS リチャージサイト3. プランの再購入 4. Group変更 5. 回線切断、接続
  67. 67. Blank SIM とは? 販売時にはプランが何も設定されていない SIM のこと SIM 本体の購入後に、別途プランを購入 (= チャージ) する メリット 商品自体のバリエーションが1種類だけになるので、 モールや販売代理店での販売・納品がしやすい Blank SIM
  68. 68. Before 自由に通信できないよう出荷時に SIM を deactivate => WiFi 環境がないと初期プランを購入できない After Blank SIM の出荷時にグループを カスタム DNS 設定済みグループへ変更 => チャージサイトにのみアクセスしてプラン購入可能 Blank SIM のチャージ
  69. 69. Blank SIM のチャージ インターネット API Blank SIMのGroup プランが有効なSIMのGroup チャージサイトしか 返さないDNS チャージサイト3. プランの購入 4. Group変更 5. 回線切断、接続
  70. 70. カスタム DNS を設定することで、 SIM に有効なプランがない状態でも限定的な通信を許可 => WiFi 環境不要で プラン購入が可能に
  71. 71. 《 まとめ 》
  72. 72. SORACOM Air SIM / API なら 自由なプラン設定やサービスの機能拡張が可能 モバイルアプリを組み合わせることで、 ユーザーにとってより便利なサービスを提供できる
  73. 73. 誰でも MVNO のようにサービスを展開できる
  74. 74. 《 今後の事業展開 》
  75. 75. eConnect App のインストール率は Japan Prepaid SIM ユーザーの約80%
  76. 76. • モバイルアプリの多機能化 • ニュースフィード • ツアー / アクティビティー予約 • レストランリコメンデーション / 予約 • タクシー配車 • ロケーションデータ収集 / 解析 • 広告配信
  77. 77. SIM カード (ハード) とアプリ (ソフト) の両方を提供し、 インバウンド向けプラットフォームとなり、 包括的サービスを実現します
  78. 78. 《 エンジニア募集中!》 www.econnectjapan.co.jp お気軽にコンタクトしてください!
  79. 79. •SORACOM Air の可能性を 感じていただけましたか? •みなさまもぜひいろいろなアイディアを 試してみてください
  80. 80. •電子書籍 Amazon.co.jp にて発売中 •Web サイト SORACOM Developers (開発者サイト) https://dev.soracom.io/jp/ 参考資料

×