Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
IoTサービスのエッジからクラウドまでServerlessFrameworkで構築する / D...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Takanori Suzuki
August 12, 2020
Technology
370
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
IoTサービスのエッジからクラウドまでServerlessFrameworkで構築する / Deploying-IoT-Service-from-Edge-to-Cloud-with-ServerlessFramework
Serverless Meetup Japan Virtual #4
#serverlessjp
IoTサービスのエッジからクラウドまでServerlessFrameworkで構築する
Takanori Suzuki
August 12, 2020
More Decks by Takanori Suzuki
See All by Takanori Suzuki
Amazon Bedrock で生成AI活用サービスをセキュアに構築する方法
takanorig
2
310
Strands Agents × インタリーブ思考 で変わるAIエージェント設計 / Strands Agents x Interleaved Thinking AI Agents
takanorig
6
4.1k
ChatGPTとKarateで実現するシン・BDD / Realizing New BDD through ChatGPT and Karate
takanorig
2
3.8k
KarateによるBDDベースのAPIテスト / BDD based API-Testing with Karate
takanorig
1
1.2k
AIカメラで社内販売の品切れを検知して残念な結果になるのを回避した話 / Detecting out of stock items with using AI Camera
takanorig
0
2.4k
フル・サーバーレスでサービスを作る話 / Make the full-stack-serverless service
takanorig
1
340
[SORACOMUG]S+Cameraを利用して在庫チェックをやってみた / InventoryManagement-with-SORACOM-SCAMERA
takanorig
0
120
Karateによる UI Test Automation 革命 / UITests-Automation-with-Karate
takanorig
0
430
スマート工場に向けたIoTデータ分析の実際のところ / SmartFactory-IoT-Data-Analytics
takanorig
0
220
Other Decks in Technology
See All in Technology
AI時代のAPI開発を加速する品質ガードレール / API Quality Guardrails in the AI Era
yokawasa
0
180
AI時代のPRレビューにどう向き合うか?
kairim0
1
170
Jetson Orin Nanoとk3sとローカルLLMで音声文字起こしシステム作ってみた
y_sera15
0
120
Essential architectural thinking (revised edition)
ufried
0
110
ai_cording_with_k8s_knowledge.pdf
mochizuki875
1
330
「Docker Desktop不要の時代」は 来たのか?
ueponx
0
510
宣言型部分更新は何を解決しどこへ向かうのか
shuta13
1
310
More Freedom on the Same Shared GPU Cluster: A Small Team’s Experience with vCluster
nttcom
0
150
3つのアプローチで目指す チームを強くするAI駆動開発
thkt
0
160
AIがコードを書く時代に、エンジニアは何で自分の価値を証明するのか / In an era where AI writes code how do engineers prove their value
carta_engineering
2
830
ブラウザとサーバーから考えるAI時代のフロントエンド監視
shogo4131
3
830
子育てエンジニアの可処分時間が減っても成長を諦めない戦い方
sudoakiy
6
4.4k
Featured
See All Featured
Building AI with AI
inesmontani
PRO
1
1.3k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
320
WENDY [Excerpt]
tessaabrams
14
40k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
580
Why Our Code Smells
bkeepers
PRO
340
58k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
300
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Transcript
1 Copyright © Acroquest Technology Co., Ltd. All rights reserved.
IoTサービスの エッジからクラウドまで Serverless Framework で構築する 2020/08/12 Acroquest Technology Co., Ltd. 鈴木 貴典 Serverless Meetup Japan Virtual #4
本日の話のポイント Copyright © Acroquest Technology Co., Ltd. All rights reserved.
2 サーバーレスなIoTサービスで クラウド側だけでなく エッジ側の構成も踏まえて 高速なデプロイフローを構築する
前提 Copyright © Acroquest Technology Co., Ltd. All rights reserved.
3 ① クラウド環境はAWSを利用 ② Serverless Framework でデプロイを実施 ③ エッジ側のデバイスはそれなりスペックが必要 ※CPU > 1GHz-ARM/x86, メモリ > 128MB RAM ※Raspberry Pi であれば問題なし
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 4
自己紹介 ◼ 所属 • Acroquest Technology Co., Ltd. ◼ 主な業務分野 • システムアーキテクト • IoTサービス開発 • ビッグデータ処理プラットフォーム • サーバーレス・アーキテクチャ ◼ バックグラウンド • エンタープライズ/ミッションクリティカル • SEPG/開発/マネジメント • Java/Python 鈴木 貴典 シニアテクニカルアーキテクト Acro = 先端を quest = 探究する
今回のIoTサービスの構成 Copyright © Acroquest Technology Co., Ltd. All rights reserved.
5 AWS IoT Greengrass Core Lambda Function AWS IoT Core AWS Lambda Amazon DynamoDB IoT Rule エッジデバイス (Raspberry Pi) AWS Cloud Raspberry Pi のモニタリング情報をエッジ側で取得し 定期的にクラウドに通知 それをクラウド側では時系列データとして保存 CPU温度、CPU使用率、メモリ使用率 などを計測し、クラウドに通知 受信したデータを随時保存 MQTT
AWS IoT Core IoTデバイスとAWSクラウドの 双方向通信を可能にし、 デバイスとのメッセージングや データ同期などを実現するサービス • デバイスとのセキュアな接続管理 •
デバイスの状態の同期 • メッセージブローカーとして振る舞い、 デバイスとのMQTTメッセージング処理を実施 • デバイスからのメッセージ処理や、他AWSの サービスとの統合を可能にするSQLベースの ルールエンジン • デバイスに対するジョブ実行の定義と管理 など
AWS IoT Greengrass • Lambda 関数のデプロイとデバイス上での実行 • センサー群とLambda関数とのMQTTメッセージング • Lambda関数とAWS
IoTとのMQTTメッセージング • デバイスとAWSクラウド間のセキュアな接続 • Dockerコンテナのサポート など エッジデバイス上で動作し、 AWS IoT 関連のサービスと連携した メッセージングやデータ管理などを 実現するモジュール
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 8
Analytics Kinesis Data Stream Kinesis Data Firehose Elasticsearch Service SNS SQS Step Functions Integration Lambda IoT Analytics IoT Events Compute S3 CloudWatch DynamoDB IoT その他 IoT Core IoT Greengrass IoT Core を通して 様々なAWSの マネージドサービスと シームレスに連携可能
今回のIoTサービスの構成 Copyright © Acroquest Technology Co., Ltd. All rights reserved.
9 AWS IoT Greengrass Core Lambda Function AWS IoT Core AWS Lambda Amazon DynamoDB IoT Rule エッジデバイス (Raspberry Pi) AWS Cloud CPU温度、CPU使用率、メモリ使用率 などを計測し、クラウドに通知 受信したデータを随時保存 MQTT クラウド側はサンプルも多く 構築しやすい
今回のIoTサービスの構成 Copyright © Acroquest Technology Co., Ltd. All rights reserved.
10 AWS IoT Greengrass Core Lambda Function AWS IoT Core AWS Lambda Amazon DynamoDB IoT Rule エッジデバイス (Raspberry Pi) AWS Cloud CPU温度、CPU使用率、メモリ使用率 などを計測し、クラウドに通知 受信したデータを随時保存 MQTT 毎回デプロイするの大変 (デバイスに手動でデプロイ)
Lambda関数 on Greengrass のデプロイ Copyright © Acroquest Technology Co., Ltd.
All rights reserved. 11 デバイス AWSコンソール Lambda関数の登録 バージョン/エイリアスの作成 GreengrassへのLambda追加 GreengrassでのLambda動作設定 サブスクリプション(メッセージ送信)設定 デプロイ実行 デプロイ メッセージ送信 Lambda関数 on Greengrass 特有の手順
Lambda のバージョン/エイリアス機能 Copyright © Acroquest Technology Co., Ltd. All rights
reserved. 12 Lambda 関数のバージョン バージョンを使用して、AWS Lambda 関数のデプロイを 管理できます。たとえば、安定した実稼働バージョンの ユーザーに影響を与えることなく、ベータテスト用の 新しいバージョンの関数を公開できます。 Lambda 関数のエイリアス AWS Lambda 関数の 1 つ以上のエイリアスを作成でき ます。Lambda エイリアスは Lambda 関数の特定の バージョンに対するポインタのようなものです。 ユーザーはエイリアス ARN を使用して関数バージョンに アクセスできます。
Lambda関数 on Greengrass のデプロイ Copyright © Acroquest Technology Co., Ltd.
All rights reserved. 13 GreengrassへのLambdaのデプロイ時は エイリアス or バージョンの指定が必須
Lambda関数 on Greengrass のデプロイ Copyright © Acroquest Technology Co., Ltd.
All rights reserved. 14 GreengrassへのLambdaのデプロイ時は エイリアス or バージョンの指定が必須 $LATEST は指定できず Lambda か Greengrass のデプロイ時に 毎回指定を変更する必要がある
エッジ側の処理は 実際に動かしてみないと 分からないことも多い ↓ 何度もデプロイする ことになる
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 16
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 17
高速なサーバーレス開発サイクルを実現したい Serverless Framework を使って クラウド側もデバイス側も “いい感じ” にデプロイしたい
Serverless Framework を使っての対応 Copyright © Acroquest Technology Co., Ltd. All
rights reserved. 18 AWS IoT Core AWS IoT Greengrass AWS Lambda Events で 標準対応可能 serverless-plugin-greengrass を使って対応可能 https://github.com/daaru00/serverless-plugin-greengrass
Serverless Framework を使っての対応 Copyright © Acroquest Technology Co., Ltd. All
rights reserved. 19 AWS IoT Greengrass Core Lambda Function AWS IoT Core AWS Lambda Amazon DynamoDB IoT Rule エッジデバイス (Raspberry Pi) AWS Cloud ロジックとなる部分(デプロイを繰り返す部分)は Serverless Framework を使ってデプロイ可能 CPU温度、CPU使用率、メモリ使用率 などを計測し、クラウドに通知 受信したデータを随時保存 MQTT
Serverless Framework の定義 Copyright © Acroquest Technology Co., Ltd. All
rights reserved. 20 functions: pisys_save_messages: handler: pisys_handler.save_message_handler events: - iot: sql: "SELECT * FROM 'gg-example/+/monitor'" Lambda関数 IoT Core ルール クラウド側の定義(IoT Core/Lambda)
AWSコンソールでの定義した場合 Copyright © Acroquest Technology Co., Ltd. All rights reserved.
21 IoT Core のルール設定
Serverless Framework の定義 Copyright © Acroquest Technology Co., Ltd. All
rights reserved. 22 custom: greengrass: groupId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx autoDeploy: false defaults: pinned: false memorySize: 16384 # (=16MB) encodingType: json Greengrass グループID sls deploy 時に Greegrassまで デプロイするか エッジ側の定義(Greengrass)①
Serverless Framework の定義 Copyright © Acroquest Technology Co., Ltd. All
rights reserved. 23 functions: pisys_monitor: handler: pisys_monitor_gg_handler.function_handler greengrass: pinned: true accessSysfs: true subscriptions: - target: "cloud" subject: gg-example/# Lambda関数 on Greengrass Lambdaのライフサイクル -> false: オンデマンド -> true : 無制限に実行 エッジ側の定義(Greengrass)② /sysにアクセス可能か サブスクリプションの定義
AWSコンソールでの定義した場合 Copyright © Acroquest Technology Co., Ltd. All rights reserved.
24 Greengrass での Lambda 設定
Lambda関数 on Greengrass のデプロイ Copyright © Acroquest Technology Co., Ltd.
All rights reserved. 25 デバイス AWSコンソール sls deploy sls greengrass deploy デプロイ メッセージ送信 シンプルなデプロイフローを実現 Serverless Framework を使ってデプロイを簡単に (serverless-plugin-greengrass 込み)
まとめ Copyright © Acroquest Technology Co., Ltd. All rights reserved.
26 AWSでのIoTサービスに対して Serverless Framework を活用したデプロイフローを検討 ① AWS IoT Core + AWS IoT Greengrass を活用 ② これによって、クラウド側のデプロイだけでなく、 エッジ側へのLambdaのデプロイも自動化 ③ IoTサービスの開発において、デプロイの手間が かかる部分も解消され、サーバーレスのメリットが拡大 ④ 開発サイクルも高速化
付録 Copyright © Acroquest Technology Co., Ltd. All rights reserved.
27 ⚫ AWS IoT Core ドキュメント • https://docs.aws.amazon.com/iot/index.html ⚫ AWS IoT Greengrass ドキュメント • https://docs.aws.amazon.com/greengrass/index.html ⚫ 今回のサンプル • https://github.com/takanorig/aws-greengrass-lambda
ご清聴ありがとうございました。 Evolve the Earth with Emotion of Technology Copyright ©
Acroquest Technology Co., Ltd. All rights reserved. 28