Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SORACOMで実現するIoTのマルチクラウド対応 - IoTでのクリーンアーキテクチャの実現 -
Search
Ken'ichirou Kimura
September 07, 2024
Technology
910
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SORACOMで実現するIoTのマルチクラウド対応 - IoTでのクリーンアーキテクチャの実現 -
2024/09/07に開催された、クラウドお遍路2024での登壇資料です
Ken'ichirou Kimura
September 07, 2024
More Decks by Ken'ichirou Kimura
See All by Ken'ichirou Kimura
“1つのエージェントに全部やらせる“のをやめた理由 - Copilotエージェント設計の実践 -
kenichirokimura
1
95
AI Agentがコードを書く時代に僕たちは何故C#を選ぶのか
kenichirokimura
0
330
設計は最強のプロンプト - AI時代に武器にすべきスキルとは?-
kenichirokimura
1
5.3k
新潟国際アニメーション映画祭の逆シャア上映記念で行われた御大と出渕裕氏の対談に救われた一人のエンジニアのお話
kenichirokimura
0
69
AI時代こそ求められる設計力- AWSクラウドデザインパターン3選で信頼性と拡張性を高める-
kenichirokimura
3
920
マルチクラウド対応サービスでCloudflareを使った話
kenichirokimura
1
65
モック作りのお供にGitHub Coding Agent
kenichirokimura
1
170
モック作りのお供にGitHub Coding Agent
kenichirokimura
1
170
Serverlessだからこそコードと設計にはこだわろう
kenichirokimura
5
1.7k
Other Decks in Technology
See All in Technology
Amplify Gen2でbackend.tsにCDKを定義する/しない事によるCDKの挙動の違いとユースケース
smt7174
1
490
探索・可視化・自動化を一本化 Amazon Quickでデータ活用スピードを上げる方法
koheiyoshikawa
0
170
Vポイント分析基盤におけるデータモデリング20年史
taromatsui_cccmkhd
4
720
2年前に削除したPHPクラスが、 ある日突然決済をエラーにした
ykagano
1
770
[Droidcon Orlando '26] The Android Lens: Applying Mobile Forensics to AI Performance
amanda_hinchman
1
110
穢れた技術選定について
watany
19
6.1k
”AIを使う” から ”AIに任せる” へ ─ 開発プロセスを再設計してAIを組織標準にするまで
cyberagentdevelopers
PRO
1
140
AIコード生成×サプライチェーン攻撃 — PHPが直面する“二重の信頼問題
shinyasaita
0
450
Devsumi 2026 Summer 人もAIも使える共通基盤を事業の加速装置にする~デザインシステム運用に学ぶ組織レバレッジ~ 渡辺 凌央
legalontechnologies
PRO
1
280
AIエージェントがあれば技術書なんてすぐ書けるでしょ→無理でした
watany
2
240
インフラと開発の垣根を超えていき!〜元AWSインフラエンジニアがAWS開発で奮闘している話〜
hatahata021
3
390
なぜ、あなたのエージェントは言うことを聞かないのか
segavvy
1
370
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
340
Abbi's Birthday
coloredviolet
3
8.8k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
A designer walks into a library…
pauljervisheath
211
24k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
320
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
320
Building Adaptive Systems
keathley
44
3.1k
The SEO Collaboration Effect
kristinabergwall1
1
510
Transcript
SORACOMで実現するIoTのマルチクラウド対応 - IoTでのクリーンアーキテクチャの実現 - 2024/09/07 四国クラウドお遍路2024 @高知県民文化ホール
木村健一郎(きむらけんいちろう) 所属:SORACOM UG九州 JAWS-UG福岡 株式会社オルターブース 好きなSORACOMサービス:Funk、Arc、Orbit 好きなAWSサービス:Lambda、IoT Core Award:SORACOM MVC
2021,2023 AWS Samurai 2019 AWS APJ Community Leaders Award 2023 @show_m001 kenichirou.kimura
10 < 270
10 < 270
本日のまとめ • SORACOM UGは最高に楽しいです! • クリーンアーキテクチャとSORACOMサービス • SORACOMサービスで、マイコンのプログラムでも依存性の逆転 と関心・責務の分離を実現する •
依存性逆転によるマルチクラウド対応の容易さ • 関心/責務の分離によるメンテナンスの容易さや電力消費減の実現 IoTのなかまが集うハッシュタグ #SORACOM #SORACOMUG #jawsug_ohenro #jawsug
SORACOM UG とは?
SORACOM UG とは? 業種・職業問わず、IoTプラットフォーム SORACOMサービス を知りたい人、使ってみた い人、使っている人、より使い方を知りたい人は誰でも参加できるコミュ二ティです。 SORACOM User Group
は、 様々なバックグラウンドを持った方が 集まって互いに学び合い交流し合う 場を提供しています。
SORACOM UG 支部紹介 九州 福岡ほか九州各地で、地元 の事例紹介やハンズオンな どを開催、残るは鹿児島で 全県制覇! 広島 広島中心にSORACOM好
きが集まります E-SIM SORACOMの顧客企業コミ ュニティーです(会員制) 農業活用 SORACOMサービス を通じて農業従事者 とつながる場 北海道 試される大地 北海道で勉強 会やハンズオンを開催、この 地ならではのSORACOM活 用事例も紹介してます 岡山 岡山県で、SORACOM 好 きがハンズオンを中心とし た勉強会を開催 四国 四国四県で、それぞれ得意 なジャンルをテーマに勉強 会を開催しています 東海 Seeedさんの地元なので、 一緒にいろいろやってます これからも面白い企画して いきます 関西 JAWS-UG などと連携し てストーリー性のあるイベン トを行っています 信州 日本の(ほぼ)中心で、 SORACOM 愛を叫びあう ユーザーグループ! 東京 SORACOM サービスの最前線 にキャッチアップ! 集まる人数が多いので、IoT仲間 を見つけやすいですよ! 東北 仙台・山形・秋田・盛岡などで IoTの勉強会やハンズオンをゆ るゆると開催しています ビギナーズ もくもく会 オンライン
他のコミュニティとコラボイベントやってます 他のコミュニティと積極的にコラボイベントをやっています。IoT x 「何か」で生まれ る可能性は無限大ですが、ぜひ皆様のコミュニティとコラボすることで新たな可能性 を生み出したいです! これまで以下のようなコミュニティ(順不同)とコラボイベントを開催しています。 • JAWS-UG(複数地域) •
kintone Café(複数地域) • Tech-ON • NervesJP • LINE Developer Community
詳細については... SORACOM UG公式ページをご覧ください https://soracom-ug.jp/
SORACOMを使った IoTのマルチクラウド対応の実例
そもそもIoTって? センサー/デバイス “モノ” ネットワーク クラウド
そもそもIoTって? センサー/デバイス “モノ” ネットワーク クラウド モノやコトのデジタル化 モノに働いてもらう
モノ インターネット クラウド モノ インターネット クラウド SORACOM のパラダイムシフト
SORACOMプラットフォーム インターネットに出る前にデータに介在できる クラウドサービスへの依存関係を抽象化できる IoT開発に便利な機能を提供する 「SORACOMプラットフォーム」
Call for IoTプロトタイピング by SORACOM UG Call for IoT プロトタイピング
by SORACOM UGとは? • IoTで社会や生活を良くする・楽しくするアイデアや作品の展示企画 • SORACOM Discovery2023ではソラコム社員の皆様によるプロトタイプを 展示していたが、今年はSORACOM UGメンバーも参戦 • 厳正な審査の結果7名6チームの作品が採択され、7/17に東京六本木ミッド タウンで開催されたSORACOM Discovery2024の会場で展示された
前日設営と当日の様子
私の作品も採択されました 「パパ、ちゃんと休んでね ~Don’t keep working so hard, dad~」 • 対象者の在席状況を確認し、一定時間ごとに適切に休憩を挟むように促す
• その際、対象者の当日の予定を参照し、この先予定が入っていれば少し早めに 休憩を促したり、予定が終わってから休憩を取るように促す
構成図(Azure版) 初期構成はこんな感じ(お仕事の一環なのでAzure使ってます)
構成図(AWS版) お遍路に向けてAWS版を構築(M365の接続だけはPowerAutomate)
新旧対応表 機能 紺碧バージョン 橙バージョン センサー取得とユーザへのメッセ ージ表示(M5Stack) M5StackでSORACOM Beamの MQTTエンドポイントとやり取り M5StackでSORACOM
Beamの MQTTエンドポイントとやり取り SORACOM Beamの接続情報がIoT Hub Beamの接続情報がIoT Core センサーデータ取得 IoT HubからCosmos DBへ送ら れたデータをFunctionsが取得 IoT CoreからDynamoDBに送ら れたデータをLambdaが取得 スケジュールデータ取得 PowerAutomateで取得して CosmosDBへ送られたデータを Functionsが取得 PowerAutomateで取得して CosmosDBへ送られたデータを Functionsで作ったREST API経 由でLambdaが取得 次の休憩時刻の計算 タイマーで起動したFunctionsが 計算してIoT Hubへ送信 タイマーで起動したLambdaが計 算してIoT Coreへ送信 • 中心のロジックとマイコン上のプログラムには一切手を加えず、サービス依存部分だけ実装する • データルーティングはクラウドサービス(IoT Hub/IoT Core)の機能を使う
ソフトウェアアーキテクチャ • SOLID原則/クリーンアーキテクチャ ◦ 依存性の逆転(Dependency Inversion Principle) ◦ 単一責任の原則(Single Responsibility
Principle)/関心・責務の分離 • ビジネスロジックを実装の詳細に依存させない ◦ 例えば「データをDBに書き込む」という処理をビジネスロジックで書くとき、対象のDBが PostgreSQLやMySQLやSQL Serverと変わったとしてもビジネスロジックのコード自体は 変わらないようにする ◦ 変更に強く、テストしやすい設計 ◦ インターフェースや依存性の注入(Dependency Injection)を用いる
マイコンでクリーンアーキテクチャ? • 出来ないとは言わないが難しい ◦ CPU/メモリの制限 ◦ 利用できる言語の制限 • クラウド側のサービスを抽象化し、サービスへの依存を減らしたい ◦
ベンダーロックインを避けたい ◦ モックを使うことで、デバイス側のプログラム開発の効率をアップしたい ◦ サービスを変更するときにデバイス上のプログラムや認証情報を更新するのが大変 • そんなときはSORACOMを使おう!
SORACOM Beam • データ転送支援 • HTTP->HTTPSやMQTT->MQTTSの変換による、暗号化処理負荷のオフ ロード • 接続先サービスへの認証情報をSORACOM内に置き、デバイス側に置かない ◦
デバイスからSORACOMへのアクセスはSIMで認証が行われる • SIMが所属するSIMグループごとにBeamの異なる設定をしておくと、SIMグ ループを切り替えるだけで接続先を変更可能
依存性の逆転 デバイスのプログラムはクラウドサー ビスに依存している • クラウドサービスに合わせてプロ グラムの修正が必要になる • 全てのデバイスのプログラムを更 新しないといけない 依存
beamの エンド ポイント 依存 Beamの実装はMQTTエンドポイント(インタ ーフェース)に依存し、デバイスはインターフ ェースのみに依存する • デバイスのプログラムはクラウドサービ スに依存していないので、サービスを変 えても修正不要
関心・責務の分離 デバイスのプログラムはクラウドサ ービスにどうやって認証するかを知 っていなければならない。 通信の暗号化も行わなければならな い。 • 認証情報の更新時に全てのデバイ スを更新しないといけない •
暗号化処理は重い処理なので電力 消費も大きい beamの エンド ポイント 認証情報や手法はbeamが知っているので、デバイ スのプログラムは気にしなくていい。 通信の暗号化もbeamがやってくれる。 • 認証や暗号化という責務をSORACOMプラッ トフォームに分離できる • 処理が減れば電力消費も減る • デバイス内の認証情報の更新も不要
本日のまとめ • SORACOM UGは最高に楽しいです! • クリーンアーキテクチャとSORACOMサービス • SORACOMサービスで、マイコンのプログラムでも依存性の逆転 と関心・責務の分離を実現する •
依存性逆転によるマルチクラウド対応の容易さ • 関心/責務の分離によるメンテナンスの容易さや電力消費減の実現 IoTのなかまが集うハッシュタグ #SORACOM #SORACOMUG #jawsug_ohenro #jawsug
次回イベントのお知らせ ◆ 2024/9/11(水) 21:00~ SORACOM UG 夜のもくもく会 #90 みんなで集まってもくもくとやりたいことを やる会がもくもく会!
IoTに詳しい人達と情報共有できる!かも https://soracomug-tokyo.connpass.com/event/329790/
次回イベントのお知らせ ◆2024/09/13 SORACOM UG 東北 in 秋田 SORACOM UG東北、リブート後の第1回は秋田で開催! https://soracomug-tokyo.connpass.com/event/326028/
次回イベントのお知らせ ◆ 2024/09/14 JAWS-UG 東北 × SORACOM UG 東北 in
盛岡 #1の翌日、JAWS-UG 東北との合同勉強会を盛岡で開催。 秋田新幹線に乗って、移動するんだ! https://soracomug-tokyo.connpass.com/event/326049/
次回イベントのお知らせ ◆ 2024/09/28 SORACOM UG Okayama #5 ~IoTカメラと生成AIで画像分析ワークショップ~ 岡山では画像分析のワークショップを行います! https://soracomug-tokyo.connpass.com/event/321006/
次回イベントのお知らせ ◆ 2024/11/02 SORACOM UG Explorer2024 ~HUB-ing FAN!! ~ 全国9ヶ所(札幌、仙台、金沢、東京、名古屋、高知、広島、福岡、沖縄)のサテライトを結んでの
ハンズオン祭り!人と繋がり、新しい技術と繋がる熱い一日です`! 来週募集開始予定!
今後のイベント案内は SORACOM UGのConnpassにご登録を! https://soracomug-tokyo.connpass.com/
SORACOMサービス および SORACOM UG を よろしくお願いします。
None