Slide 1

Slide 1 text

徹底解説!大規模IoTを支える SORACOMの技術基盤 株式会社 ソラコム プリンシパルソフトウェアエンジニア 小熊 崇 株式会社 ソラコム シニアソリューションアーキテクト 渡邊 大輔

Slide 2

Slide 2 text

本日のハッシュタグ #SORACOM 使用例 #SORACOM の検索で、最新情報が! @SORACOM_PR fb.com/soracom.jp youtube.com/c/SORACOM_Japan instagram.com/soracom.official

Slide 3

Slide 3 text

Speakers 小熊 崇 (ogu) プリンシパルソフトウェアエンジニア 担当業務 • SORACOM API 開発 • モバイルコアネットワーク開発 • ソラカメ API 開発 • 新サービス開発 渡邊 大輔 (dai) シニアソリューションアーキテクト 担当業務 • Solutions Architect • Telecom Team • Network Subject Matter Expert 好きな SORACOM サービス • SORACOM Flux • SORACOM Orbit • SORACOM CLI 好きな SORACOM サービス • Virtual Private Gateway Type-F2 • SORACOM Arc • Soracom Mobile

Slide 4

Slide 4 text

セッションの概要 • なぜ1回線から即時利用できるのか • 大規模なIoTビジネスにもSORACOMが選ばれている 背景 IoTの通信選びで技術的な裏付けを得たい方や、 MVNO・通信サービスの今を知りたい方にお届けします。

Slide 5

Slide 5 text

昨年のおさらい

Slide 6

Slide 6 text

SORACOM の PGW のしくみ • PGWはスケールさせやすく するため、LBとの二段構成 (2-Tier) になっている • session manager は ECS (AWS Fargate)、データは DynamoDB など使い分け

Slide 7

Slide 7 text

各国通信キャリアとのローミング接続 • IPX経由で各国通信キャリ アとのローミング接続 • PGWを現地に配置する Local Break Out によって 通信遅延を軽減

Slide 8

Slide 8 text

SORACOM のスケーラビリティ なぜ 1 回線から大規模まで使えるのか

Slide 9

Slide 9 text

SAとして、PoCを目的としたお客様や 社会インフラを扱う大規模なお客様からの お問い合わせを受けています。 SIM 1枚からセルフサービスで始める案件と 商用向けの大規模な案件の両方を 1つのプラットフォームで提供するにはどんな仕組みが 必要なんですか?

Slide 10

Slide 10 text

キーワード - API ファースト - マイクロサービスアーキテクチャ - 水平スケーラビリティ

Slide 11

Slide 11 text

キーワード1: API ファースト SORACOM のすべての機能は API 経由で利用可能 • SIM の購入も API でできる o SIM 1 枚から気軽にコンソールで買える • 大規模ユーザーはシステムに組み込んで自動化がで きる • それを支える SORACOM 側も高度に API 化 / 自動化 されている

Slide 12

Slide 12 text

API による高度な連携 注文操作 ユーザー ユーザーコンソール 注文管理 課金管理 商品管理 発送管理 配送センター スタッフ 商品配送 API SIM をデバイスに挿して Activate HSS BSS / OSS PGW モバイルコア SIM 認証 通信セッション管理 通信量記録 ユーザー認証 SMSC ユーザー管理 API

Slide 13

Slide 13 text

数字で見る API → 43 2015/09/30 448 2024/07/17 Public に提供している API の数 (Open API 形式の定義ファイル中に含まれる operationId の数)

Slide 14

Slide 14 text

数字で見る API 35,000,000 Requests / Day as of 2024/7/17

Slide 15

Slide 15 text

大量のリクエストを処理するには? • バックエンドサーバーの負荷分散 o マイクロサービス化することで、必要な部分だけを自在にスケールアウト • スロットリング o システムに過大な負荷をかけるようなリクエストを抑制 • 監視

Slide 16

Slide 16 text

キーワード2: マイクロサービスアーキテクチャ

Slide 17

Slide 17 text

キーワード2: マイクロサービスアーキテクチャ サービス開始当初(2015 年)は EC2 ベース SORACOM API Gateway API Clients ELB EC2 DynamoDB マイクロサービス 1 ELB EC2 DynamoDB マイクロサービス 2 EC2

Slide 18

Slide 18 text

キーワード2: マイクロサービスアーキテクチャ 近年はコンテナ化 (ECS Fargate) SORACOM API Gateway API Clients ELB ECS Fargate DynamoDB マイクロサービス 1 ELB DynamoDB マイクロサービス 2 ECS Fargate ECS Fargate

Slide 19

Slide 19 text

キーワード2: マイクロサービスアーキテクチャ サーバーレス(Lambda)化も進めている SORACOM API Gateway API Clients ELB ECS Fargate DynamoDB マイクロサービス 1 API Gateway DynamoDB マイクロサービス 2 Lambda ECS Fargate

Slide 20

Slide 20 text

キーワード3: 水平スケーラビリティ 負荷の変動に合わせて柔軟に設備を増強 =スケールアウト • EC2 / ECS / DynamoDB など = Auto Scaling • Lambda はスケーリングに関してはほぼ気にしなく てよい • マイクロサービス単位にスケールアウトできるので 無駄が少ない

Slide 21

Slide 21 text

グローバル 600 万回線 世界中で使えるコネクティビティと それを支える運用

Slide 22

Slide 22 text

182の国と地域でサービスを提供していますが、 ソラコムの社員はグローバルを合わせても 150人ほどです。 一人1国担当しても足りない計算ですが、 どのような体制や仕組みでグローバルなサービスを 世界中で提供できているのですか?

Slide 23

Slide 23 text

グローバルでつながる!IoT SIM全体カバレッジ サブスクコンテナにより必要プロファイルを追加可能 全体で182の国と地域、417キャリア、LTE: 306キャリア plan01s 171 (+9) (4G) 246 (+18) (2G/3G) 361 (+33) planX3 101 (+3) (4G) 133 (+9) (2G/3G) 165 (+14) planP1 62 (+3) (4G) 110 (-) (2G/3G) 109 (-1)

Slide 24

Slide 24 text

他社の設備を使わせてもらう「ローミング」 により実現 A社 B社 C社 インターネット

Slide 25

Slide 25 text

ローミング接続ができるまで • 契約 • ネットワーク設計 o アーキテクチャ o パラメータ • ネットワーク構築 • 接続試験 o 正常時、異常時のプロトコルを一通り

Slide 26

Slide 26 text

417 オペレーター全部と相互接続? IPX と呼ばれるローミング接続中継事業者を介して接続 A社 B社 IPX: IP exchange X 国 Y国 IPX C社

Slide 27

Slide 27 text

417 オペレーター全部と相互接続? IPX 1 社ではすべての国やキャリアをカバーできない A社 B社 IPX: IP exchange X 国 Y国 IPX 1 C社 IPX 2 D社 E社 Z 国 Y国 F社 複数のIPXと接続

Slide 28

Slide 28 text

417 オペレーター全部と相互接続? 物理的には IPX を介した接続だが、 最終的には MNO と一社ずつ論理的な接続試験を行う ただし現地に出向いて試験をするとなると 莫大な費用と時間がかかってしまうので、 Global Roamer というサービスを利用

Slide 29

Slide 29 text

世界中で使われるようになると・・・ • IoT はもはやグローバルな社会のインフラの一つ o 24 時間 365 日世界中で使われている ▪ 障害対応も 24 / 365 • 障害の検知〜復旧までを極力自動化 o プロセスの再起動 o 系統の切り替え (Active Standby) o それでも回復しない場合は人間を呼び出す

Slide 30

Slide 30 text

スケールが大きくなってくると・・・ いわゆる "いつも必ずどこかが壊れている" 状態 • 急激なトラフィック増加 • 接続先事業者側で発生したトラブル • サーバー上で動作するプログラムの不調 • アップデートされずに運用されているソフトウェア • 悪意を持った者からの攻撃 etc. ... このようなことが起こっても、可能な限りお客様に提供するサービスに 影響を与えないように日々努力しています

Slide 31

Slide 31 text

スケールが大きくなってくると・・・ いわゆる "いつも必ずどこかが壊れている" 状態 • 急激なトラフィック増加 • 接続先事業者側で発生したトラブル • サーバー上で動作するプログラムの不調 • アップデートされずに運用されているソフトウェア • 悪意を持った者からの攻撃 etc. ... このようなことが起こっても、可能な限りお客様に提供するサービスに 影響を与えないように日々努力しています

Slide 32

Slide 32 text

Andon • Slack 上に作られる Virtual War Room oトヨタ生産方式のアンドンに由来 • システムに何か致命的な障害が発生している可能性 に気づいた人が躊躇なく #andon チャンネルに発報 o 「監視システム上でアラートがたくさん発生してい る」 o「デプロイ直後のテストで問題が見つかった」 o「お客様から○○に関するお問い合わせが急に増え た」 etc. ...

Slide 33

Slide 33 text

ローミング接続の問題が起こったとき - 問題の切り分け - エスカレーション - 言語の問題 - 時差

Slide 34

Slide 34 text

スケールが大きくなってくると・・・ いわゆる "いつも必ずどこかが壊れている" 状態 • 急激なトラフィック増加 • 接続先事業者側で発生したトラブル • サーバー上で動作するプログラムの不調 • アップデートされずに運用されているソフトウェア • 悪意を持った者からの攻撃 etc. ... このようなことが起こっても、可能な限りお客様に提供するサービスに 影響を与えないように日々努力しています

Slide 35

Slide 35 text

アップデートされないソフトウェア • 現時点で致命的な問題が起きているわけではない o セキュリティなどの面でリスク は抱えている • Platform Guardians という取り組み o システムの健全性をレポートする Lambda(10数種類) が 1 日 1 回動作 o レポート内容をエンジニア3名が持ち回りで毎朝30分確認 o 「Platfrom Guardian 方面から参りました〜 」 o アーキテクチャのナレッジシェア、自分ごと化

Slide 36

Slide 36 text

スケールが大きくなってくると・・・ いわゆる "いつも必ずどこかが壊れている" 状態 • 急激なトラフィック増加 • 接続先事業者側で発生したトラブル • サーバー上で動作するプログラムの不調 • アップデートされずに運用されているソフトウェア • 悪意を持った者からの攻撃 etc. ... このようなことが起こっても、可能な限りお客様に提供するサービスに 影響を与えないように日々努力しています

Slide 37

Slide 37 text

セキュリティ上の取り組み • SOC2 Type 1 報告書を受領 o C-1 セッション: 安全と運用の証明「SOC2」担当者が語る取得の意義と 取り組み • Bug Bounty Program o 外部のホワイトハッカーがセキュリティ上の問題を 報告してくれた場合、報奨金を提供

Slide 38

Slide 38 text

まとめ

Slide 39

Slide 39 text

まとめ なぜ 1 回線から大規模まで使えるのか? • API 化(自動化) • マイクロサービスアーキテクチャによる柔軟なスケーリング 少人数なのにグローバルで大規模なサービスを提供できている のはなぜ? • IPX を介したローミングのおかげ • 運用はめっちゃ大変 o自動化できるところはしてるけど、それでもやっぱり最後は人

Slide 40

Slide 40 text

SORACOM の願い クラウド ⇒ 多くの Web サービス SORACOM ⇒ 多くの IoT システム 日本から、世界から、たくさんの IoT プレイヤーが生まれますように

Slide 41

Slide 41 text

IoTの「つなぐ」を簡単に You Create. We Connect.