Slide 1

Slide 1 text

組み込みエンジニアが知っておきたい、 IoT デバイスとクラウドのアーキテクチャ Nov. 4, 2021 Design Solution Forum 2021 株式会社ソラコム テクノロジー・エバンジェリスト 松下 享平 (Max / @ma2shita)

Slide 2

Slide 2 text

自己紹介 株式会社ソラコム / テクノロジー・エバンジェリスト 松下 享平 (まつした こうへい) “Max” 静岡県民 🗻 新幹線通勤族 🚅 講演や執筆を中心に活動、登壇回数400以上 経歴: 東証二部ハードウェアメーカーで情シス部門、 EC 事業責任者、IoT 事業開発を経て2017年より現職 好きな言葉: 論よりコード AWS ヒーロー (IoT 部門) Twitter: @ma2shita

Slide 3

Slide 3 text

IoT や SORACOM の情報収集や イベントの振り返りにご活用ください! ハッシュタグ #DSF2021 #SORACOM

Slide 4

Slide 4 text

クラウド センサー/デバイス “モノ” ネットワーク 現場をデジタル化 現場とクラウドをつなげる デジタルデータの活用 モノやコトをデジタル化 現場を知る、現場を動かす IoT とは?

Slide 5

Slide 5 text

SORACOM は IoT の「つなぐ」を簡単に IoT デバイス クラウドサービス ✓ 遠隔操作 ✓ メンテナンス ✓ 蓄積・見える化 ✓ アラート通知 通信 デバイス センサ キット IoT 通信 IoT SIM LPWA パートナー デバイス パートナークラウド (AWS / Microsoft / Google) Wi-Fi / 有線 3G / LTE / 5G LTE-M

Slide 6

Slide 6 text

20000以上のお客様、300万を超える IoT 契約回線 1回線の検証から 数十万回線のビジネス活用まで 通信回線をクラウドのように セルラー、Sigfox、LoRaWAN を含む SORACOM Air 総回線数

Slide 7

Slide 7 text

新たなビジネス創出 テレワーク支援や労働力の置き換え 遠隔地のインフラ管理 省エネ・コスト削減 農業や漁業のスマート化 既存ビジネスの顧客体験向上 現場と利用者をデジタルでつなぐ レガシー設備のアップデート あらゆる “モノ” がつながり、社会を変え始めている

Slide 8

Slide 8 text

クラウド センサー/デバイス “モノ” ネットワーク 現場をデジタル化 現場とクラウドをつなげる デジタルデータの活用 モノやコトをデジタル化 現場を知る、現場を動かす IoT とは?

Slide 9

Slide 9 text

データ活用までには3つの工程 受付 変換 蓄積 データ活用 《可視化・通知》 HTTP や MQTT 等 プロトコルの API 公開と 変換処理への橋渡し フォーマット変換や マッピング(意味づけ) 集計処理 データ活用側で 利用するための 保管 IoT デバイス

Slide 10

Slide 10 text

クラウド側、どうやって作るのか? 準備 仮想サーバーを作ってから、PHP + Laravel を インストールして API と変換処理を実装した 後、ストレージに MySQL を設定して… 実装 MQTT 対応は?認証処理は?規模やワーク ロード調整は?ストレージ見積は? 運用や費用 モニタリングは?スケールできる? データが流れていない時のコストは?

Slide 11

Slide 11 text

IoT で活用すべきは サーバーレス Serverless

Slide 12

Slide 12 text

オンプレミス / IaaS / マネージドサービス [JAWS-UG初心者支部]AWSはじめの一歩と学びのススメ https://speakerdeck.com/tttak/jaws-ugchu-xin-zhe-zhi-bu-awshazimefalse-bu-toxue-bifalsesusume?slide=69

Slide 13

Slide 13 text

サーバーレスとは?マネージドサービスとの関係性 サーバーレス (Serverless) マネージドサービスの一形態 ミドルウェアやコード実行環境が構築済みの環境を、 エントリーポイントを通じて利用できるサービス 「コードを書く」 「機能を使う」だけに集中できる仕組み マネージドサービスとの関係は? 可用性やスケーラビリティの制御主体が異なる ➢ ユーザー側で行えるのがマネージドサービス ➢ サービス提供側によって行われる仕組みがサーバーレス

Slide 14

Slide 14 text

IoT データは「いつ発生するかわからない」 ➢ 稼働時間で課金 ➢ 常にデータを処理している ワークロード向き ➢ 実行時間で課金 ➢ データ発生時のみ処理する ワークロード向き 例) ドアの開閉をセンシングしたい IoT のデータ処理に適している データの待ち時間がムダに 仮想サーバーや マネージドサービス サーバーレス

Slide 15

Slide 15 text

工程毎に対応するサービスの例 受付 変換 蓄積 Amazon API Gateway AWS IoT Core Azure Application Gateway Azure IoT Hub Cloud IoT Core API Gateway AWS Lambda Amazon Kinesis AWS IoT Analytics Azure Event Hubs Azure Functions Azure Stream Analytics Cloud Functions Cloud Pub/Sub Cloud Storage BigQuery Firestore Azure Cosmos DB Storage Account Data Lake Storage Gen2 Amazon S3 Amazon DynamoDB Cloud Dataflow

Slide 16

Slide 16 text

構成例 Amazon API Gateway AWS Lambda Web API Azure Cosmos DB Power BI Azure Stream Analytics Azure IoT Hub Amazon S3 BigQuery ML Data Portal Cloud Dataflow Cloud IoT Core Cloud Pub/Sub HTTPS で受け付けてデータの蓄積をしつつ、条件によって外部 API を呼び出し MQTT で受け付けて Power BIにリアルタイム連携しつつ、データ蓄積と表示 HTTP と MQTT で受け付けて、実データと機械学習の推論を表示 IoT デバイス

Slide 17

Slide 17 text

サーバーレス アーキテクチャを考えるポイント 1/2 1つのプログラム(サービス)には1つのことをうまくやらせる • サービスは「コマンド」、連携は「パイプ」 ※ UNIXという考え方 (P23) 1つのサービスで、受付と変換の機能を持つ場合もある • Azure Functions《変換》内の HTTP トリガー機能《受付》 • AWS IoT Core《受付》内のルール機能《変換》 「1個流し」のコスト算出が可能か • データが流れていないときには、コストを抑えらえるのが望ましい

Slide 18

Slide 18 text

サーバーレス アーキテクチャを考えるポイント 2/2 集計や他データソース参照は《変換》上で実装 • Amazon Kinesis Data Firehose や Azure Stream Anaytics の ウィンドウ関数 • 変換用 Lambda 関数を経由したルックアップテーブル参照 蓄積サービスは、データ活用側(アプリケーション)が対応して いるデータソース要件から選定 • Amazon QuickSight で使いたい → Amazon S3 に蓄積 • Power BI で使いたい → Azure Stream Analytics からの リアルタイムストリーミング

Slide 19

Slide 19 text

サーバーレス アーキテクチャも「銀の弾丸」ではない ランタイム(言語)やライブラリ利用の制約やチューニングの可否がある • AWS Lambda runtimes や AWS Fargate 等、コンテナを利用したミドルウェア 制御の方法も出現 サーバーレスは「ステートレス」設計が原則、ステートが必要な アプリケーション設計には工夫が必要 • デバイスシャドウ機能や AWS IoT Events といったステート管理の仕組みも 利用できる データが常時発生するワークロードの場合は、コストとスループットの 両面で時間課金タイプが有利な場合もある • “1つのサービスには1つのことをうまくやらせる” ができていれば、当該部分 の差し替えも可能に

Slide 20

Slide 20 text

ここまでのまとめ サーバーレスはイベント駆動型のアーキテクチャー ✓ 「コードを書く、機能を使う」に集中できる仕組み ✓ いつ発生するかわからない「IoT データ処理向け」 データ処理の工程は受付/変換/蓄積の3つ、 クラウド上にも対応したサービスが存在する ✓ つなげる、組み合わせて実現する ✓ ゼロから作らない、在るものを利用する

Slide 21

Slide 21 text

サーバーレスアーキテクチャーの理解は “UNIX” にあり 定理2 1つのプログラムには1つのことをうまくやらせる 定理6 ソフトウェアを梃子(てこ)として使う 定理9 全てのプログラムをフィルタとして設計する

Slide 22

Slide 22 text

組み込みハードウェアから クラウド使うのって大変ですよね、 わかります。

Slide 23

Slide 23 text

IoT におけるクラウド活用 3 つの課題

Slide 24

Slide 24 text

SORACOM Funk SORACOM Beam / Funnel / Funk による デバイス開発の工数削減 デバイス セキュア&クラウドネイティブな プロトコル • メガクラウド PaaS / SaaS • パートナー ソリューション SORACOM Beam SORACOM Funnel プリミティブな プロトコル • SIM を鍵としてクラウドの認証情報との紐づけ • クラウド向けプロトコルへ変換 HTTP, MQTT, TCP, UDP HTTPS(+JSON), MQTTS, TCPS SDK や認証情報をデバイスから取り払ってシンプル化 デバイス開発の工数や 運用の手間を削減

Slide 25

Slide 25 text

デバイス開発工数や運用の手間を削減 SORACOM Funk 活用例 Amazon API Gateway AWS Lambda AWS Lambda • TLS ライブラリのインストール 済 • TLS 証明書のインストール 済(更新含) • 認証情報のインストール ➢ ユーザーコンソールから設定 • HTTP リクエストへの署名実装 済 • HTTP リクエスト中継 SORACOM Funk • TLS ライブラリのインストール • TLS 証明書のインストール(更新含) • 認証情報のインストール • HTTP リクエストへの署名実装 • HTTP リクエスト実装 • TLS ライブラリのインストール • TLS 証明書のインストール(更新含) • 認証情報のインストール • HTTP リクエストへの署名実装 • HTTP リクエスト実装 • クラウド対応の開発? • 認証情報の盗難防止? • 仕様変更や SDK 更新? お客様から見えづらい 開発・運用部分を SORACOM で肩代わり

Slide 26

Slide 26 text

クラウドと「つなぐ」を簡単に SORACOM Beam / Funnel / Funk データ転送 SORACOM Beam クラウドアダプタ SORACOM Funnel クラウドファンクション SORACOM Funk ビーム ファネル ファンク ✓ MQTT(S) 中継 ✓ HTTP の TLS 変換 ✓ TCP/UDP を HTTPS へ変換 ✓ HTTP ヘッダ追加、編集 既存システム接続や MQTT 利用に ✓ 6つのパブリッククラウド用 アダプタ ✓ 11の SORACOM パートナ ソリューション用アダプタ 新規 IoT システムを 迅速に展開 ✓ パブリッククラウドの FaaS を 直接呼出し ✓ 実行結果をデバイスへ 返送可能 クラウドを 「デバイスの関数」化

Slide 27

Slide 27 text

パーソナルモビリティの走行距離 など遠隔から車体状況を把握し、 利用中のトラブル軽減へ。 利用したSORACOMサービス:SORACOM Air, Beam サービス 導入事例 WHILL株式会社

Slide 28

Slide 28 text

IoT プラットフォームの機能を 利用するお話

Slide 29

Slide 29 text

SORACOM って Wi-Fi からは使えないよね…?

Slide 30

Slide 30 text

SORACOM のコネクティビティ IoT 向けデータ通信サービス SORACOM Air セルラー LPWA GSM / 3G / LTE / 5G LTE-M Sigfox あらゆる現場を つなげる通信 セキュリティや 付加機能 IoT ビジネス向けの 料金体系 セキュアリンクサービス SORACOM Arc Wi-Fi / 有線 LAN

Slide 31

Slide 31 text

MQTT over WireGuard で MQTTS (AWS IoT Core) へ 接続するには? WireGuard NGINX + Stream モジュール MQTT MQTTS AWS IoT Core Wi-Fi SORACOM Arc SORACOM Beam MQTT Wi-Fi NGINXのStreamモジュールでMQTT <=> MQTTS変換をしてAWS IoT Coreへ接続する https://qiita.com/ma2shita/items/e0b83868bf64834f3bc6 ESP32(M5Stack Basic)上でWireGuardを使用したMQTT実装サンプル https://qiita.com/ma2shita/items/0f0dce8ff0e45cf9fbac MQTTS 自前構築 SORACOM 利用

Slide 32

Slide 32 text

https://speakerdeck.com/soracom/vpn-for-esp32-using-wireguard-and-iot-platform-soracom

Slide 33

Slide 33 text

クラウド利用の本質 ハードウェア単体では成しえない 機能やサービスの実現

Slide 34

Slide 34 text

ソースネクスト株式会社 「POCKETALK Ⓡ 」 外国語での双方向コミュニケーショ ンを実現するAI通訳機。 グローバル通信搭載で、電源を 入れれば、世界中ですぐに利用可能。 導入事例 利用したSORACOMサービス:SORACOM Air (plan01s / planX1)チップ型SIM(eSIM)搭載 サービス * 対応言語の詳細は製品ウェブサイトをご確認ください 協力パートナー:JENESIS株式会社

Slide 35

Slide 35 text

選択肢と組み合わせの自由 ― “Agnostic” Cloud Agnostic クラウドの自由 Connectivity Agnostic 通信の自由 アグノスティック グローバル プラットフォーム お互いに依存しない IoT “Agnostic” Wireless Agnostic セルラー Sigfox Wi-Fi 有線 データセンター SaaS、インターネット AWS、Azure、Google Cloud パートナークラウド

Slide 36

Slide 36 text

Build the Future https://TechDays.soracom.jp #TechDays2021

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

世界中のヒトとモノをつなげ 共鳴する社会へ