SlideShare a Scribd company logo
1 of 58
Download to read offline
四国クラウドお遍路 2022年11月12日
香川大学 幸町キャンパス 総合教育棟
IoTシリーズ第4弾
コロナ禍でのリモートワークの
困りごとをAWSで爆速解決
自己紹介
• 氏名:藤田 義弘
• 所属:株式会社メイテック(派遣事業)
製造業のお客様先で派遣として勤務
• 組み込みソフトウェアエンジニア
• Twitter:@YSFT_KOBE
四国クラウドお遍路2019
「AWS IoTで、おうちの悩みを爆速で解決した話」
四国クラウドお遍路2020
「LineとAWSでおうち制御を改善した話」
四国クラウドお遍路2021
「仲間とコロナ禍という波にぶつかりながらIoT
工作を神戸&高松で合作した話」
そして、2022年
「コロナ禍でのリモートワークの困りごとをAWS
で爆速解決」
コロナ禍を経験して・・・
• テレワークが増えた
• 地方からフルリモートで仕事
• 学生の授業もリモートで実施
こんなことありませんか?
• テレワーク中の訪問
 宅急便の配達
 ガスや電気などのメーター類の点検
 各種勧誘
こんなことありませんか?
• 家族から荷物の受け取り依頼
承知!
荷物の受け取りお願い!
こんなことありませんか?
• TV会議中だと気づかないことも・・・
こんなことありませんか?
• TV会議中だと気づかないことも・・・
荷物受け取ってくれた?
あれ・・・・?
なんとか解決できない?
• TV会議中でも気づきたい
宅急便にはすぐに対応したい・・・
• 誰が来たかも手元で分かりたい
勧誘とかは出たくない・・・
AWSを使って解決!
ソラカメ(Soracom Cloud Camera Services )
Atom Cam 2(ネットワークカメラ)
Raspberry Pi Zero WH
ソラカメとは?
ソラコム公式サイト:https://soracom.jp/sora_cam/
ソラカメとは?
ネットワークカメラATOM Cam 2 を使って、クラウド
サービスを利用することができる。
• 映像を常時クラウドにアップロード(クラウド常時録画)
• カメラが動きを検知して映像をクラウドにアップロード(モーション
検知)
• 録画データは一定期間アプリから確認可能
• カメラのライブ映像を最大4台まで同時に視聴可能(ライブ映像)
• 録画データをシステムと連携するための API を提供
ソラコム公式サイト:https://soracom.jp/sora_cam/
謝罪・・・
今回、ネットワークカメラ(Atom Cam 2)のみの
使用で、ソラカメのサービスは利用していません。
原稿執筆時、ソラカメAPIはPreviewReleaseで、利
用できなかったため。
但し、10月6日にソラカメAPIが正式提供されていま
す。
謝罪・・・
詳しく知りたい方は、JAWS-UG高知 片岡さんが発表
された資料があります。
LINE BOT
• コンソール画面に従ってチャネルを作成し、友達
登録するだけでLINE BOTが使用可能になる。
• Messaging APIという仕組みで、少ないコードで
Lineへの通知機能が作成できる。
Line公式ドキュメントより:https://developers.line.biz/ja/docs/messaging-api/overview/
• Raspberry pi Zero WH
• 非常に安価なマイコン
• インターホンやネットワークカメラとの連携
ラズパイ
今回行いたいこと
• TV会議中でも気づきたい
→インターホンが押されたらLineに通知
• 誰が来たかも手元で分かりたい
→Lineでカメラからの画像を受け取る
構成図
インターホンが押されたらLineに通知
インターホンが押されたらLineに通知
①
インターホンが押されたらLineに通知
① ②
インターホンが押されたらLineに通知
① ②
③
インターホンが押されたらLineに通知
• ラズパイとIoT Coreとの通信
 ラズパイのアプリはpythonで動作。
 AWS IoT Coreとの通信は、SDKおよびサンプルコー
ドが公開されており、1からコードを書く必要はない!
 ラズパイセットアップやサンプルコードの説明は以下
のドキュメントが用意されている。
https://docs.aws.amazon.com/ja_jp/iot/latest/devel
operguide/connecting-to-existing-device.html
インターホンが押されたらLineに通知
• Iot CoreからLambdaへの連携
 コンソールで設定することで連携が可能になる。
①ルール名の設定
②メッセージのフィルタリング
③連携するサービスの設定
インターホンが押されたらLineに通知
• SQLステートメント
 初心者が最初に悩むところ。
 Lambdaと連携するのであれば、メッセージのフィルタ
リングはLambda内のプログラムで行えばいい!
SELECT * FROM <<トピック名>>
②メッセージのフィルタリング
インターホンが押されたらLineに通知
• LambdaからLineへのメッセージ送信
 Messaging API (LineBotライブラリ)を利用するだけ
from linebot import LineBotApi
from linebot.models import TextSendMessage, ImageSendMessage
from linebot.exceptions import LineBotApiError
line_bot_api = LineBotApi(<<channelAccessToken>>)
def lambda_linePush_chime_on_handler(event, context):
try:
line_bot_api.push_message(<<lineUserId>>, TextSendMessage(text=<メッセージ>))
except LineBotApiError as e:
print(e)
pass
return
python
Lineでカメラからの画像を受け取る
Lineでカメラからの画像を受け取る
①-1
①-2
①-3
②-2
②-3
②-1
③-1 ③-2
③-3
③-4
Lineでカメラからの画像を受け取る
①-1
Lineでカメラからの画像を受け取る
①-1
①-2
Lineでカメラからの画像を受け取る
①-1
①-2
①-3
Lineでカメラからの画像を受け取る
①-1
①-2
①-3
②-1
Lineでカメラからの画像を受け取る
①-1
①-2
①-3
②-2
②-1
Lineでカメラからの画像を受け取る
①-1
①-2
①-3
②-2
②-3
②-1
Lineでカメラからの画像を受け取る
①-1
①-2
①-3
②-2
②-3
②-1
③-1
Lineでカメラからの画像を受け取る
①-1
①-2
①-3
②-2
②-3
②-1
③-1 ③-2
Lineでカメラからの画像を受け取る
①-1
①-2
①-3
②-2
②-3
②-1
③-1 ③-2
③-3
Lineでカメラからの画像を受け取る
①-1
①-2
①-3
②-2
②-3
②-1
③-1 ③-2
③-3
③-4
• Lineからのメッセージ送信
 API GatewayのエンドポイントをWebhookに設定。
 API GatewayからLambdaの連携を設定することで
メッセージの受信が可能になる。
Lineでカメラからの画像を受け取る
import boto3
from botocore.exceptions import ClientError
iot = boto3.client('iot-data', region_name='ap-northeast-1')
def lambda_line_message_handler(event, context):
topic_name = os.environ["TOPICNAME"]
try:
iot.publish(topic=topic_name, qos=0, payload="Image request")
except ClientError as iotex:
print(iotex.args)
except Exception as e:
print(e.args)
return
python
Lineでカメラからの画像を受け取る
• LambaからAWS Iot Coreへの通知
SDKを使用することで、少ないコードで機能実装が可能。
Lineでカメラからの画像を受け取る
①-1
①-2
①-3
②-2
②-3
②-1
③-1 ③-2
③-3
③-4
• ラズパイからのカメラ画像の取得
カメラの画像はRTSPプロトコルを利用して、カメラから
直接画像を取得。
Lineでカメラからの画像を受け取る
• Real Time Streaming Protocolの略
• 最近、ネットワークカメラにおいて、最も一般的に利用
されている映像配信(映像取得)用プロトコル。データ
本体の伝送はRTSPではなくRTP(Real-time
Transport Protocol)によって行う。
• 「rtsp://」で始まるURL(URI)を用い、標準ではTCPの
554番ポートで通信する。
• Atom Cam 2はRTSPをサポート。
RTSPプロトコルとは?
import cv2
Async def task_image_create_proc():
try:
cap = cv2.VideoCapture(f”rtsp://{user_id}:{user_pw}@{host}/live”)
ret, frame = cap.read()
if ret == True:
filename = “image.jpg”
cv2.imwrite(‘./’+filename, frame)
cap.release()
cv2.destroyAllWindows()
s3.Bucket(bucket_name).upload_file(‘./’+filename, filename)
except Exception as e:
print(“Exception Occurred: {}”.format€)
finally:
cap.release()
cv2.destroyAllWindows()
• 画像の取得にはOpenCVを使用
Lineでカメラからの画像を受け取る
Lineでカメラからの画像を受け取る
①-1
①-2
①-3
②-2
②-3
②-1
③-1 ③-2
③-3
③-4
• カメラから取得した画像をS3へ保存
 画像をS3に保存し、Lineアプリから取得。
 S3へのアクセス権限の取得には、IAM Roles Anywere
を使用。
Lineでカメラからの画像を受け取る
• 信頼アンカー (trust anchor, root of trust) として登録
した 認証局(CA)から発行された証明書を元に、オン
プレのサーバーなどに一時的な AWS クレデンシャル
を発行するサービス。
• 認証局から発行された正当な電子証明書を持ったク
ライアントからのリクエストがあった場合に、IAM
Roles Anywereでその署名検証が行われ、一時的な
クレデンシャルが発行される。
IAM Roles Anywereとは?
IAM Role Anywereとは?
• 詳細は・・・・
AWSブログ
https://aws.amazon.com/jp/blogs/news/extend-aws-iam-
roles-to-workloads-outside-of-aws-with-iam-roles-
anywhere/
DevelopersIO produced by Classmethod
https://dev.classmethod.jp/articles/iam-roles-anywhere-
with-a-self-signed-certificate-created-with-openssl/#toc-11
IAM Roles Anywereとは?
Lineでカメラからの画像を受け取る
①-1
①-2
①-3
②-2
②-3
②-1
③-1 ③-2
③-3
③-4
• ラズパイからLineへ通知
 「インターホンが押されたらLineに通知」と同じ仕組み。
 ラズパイからは、画像情報(S3URL)をIoT Coreへ通知。
 Lambdaでは画像情報(S3URL)をもとに、
PresignedURLを発行し、Lineに通知。
 Lineアプリで、 PresignedURLから画像を取得して表示。
(Lineアプリで自動的に行われる)
Lineでカメラからの画像を受け取る
デモ動画を再生
まとめ
• AWSでバックエンドシステムを容易に構築することが
でき、爆速でシステム開発が行えます。
• 他のサービス(今回はLineを利用)との連携も容易に行
えます。
ご静聴ありがとうございました。
コロナ禍でのリモートワークの困りごとをAWSで爆速解決

More Related Content

Similar to コロナ禍でのリモートワークの困りごとをAWSで爆速解決

八子クラウド座談会230408事前配布
八子クラウド座談会230408事前配布八子クラウド座談会230408事前配布
八子クラウド座談会230408事前配布知礼 八子
 
インフラ野郎 Azureチーム at クラウド boost
インフラ野郎 Azureチーム at クラウド boostインフラ野郎 Azureチーム at クラウド boost
インフラ野郎 Azureチーム at クラウド boostToru Makabe
 
クラウドEXPO 2011春資料 20110418
クラウドEXPO 2011春資料 20110418クラウドEXPO 2011春資料 20110418
クラウドEXPO 2011春資料 20110418知礼 八子
 
座談会資料(当日メモ)_20230408.pdf
座談会資料(当日メモ)_20230408.pdf座談会資料(当日メモ)_20230408.pdf
座談会資料(当日メモ)_20230408.pdf知礼 八子
 
座談会資料(当日メモ)_20230408.pdf
座談会資料(当日メモ)_20230408.pdf座談会資料(当日メモ)_20230408.pdf
座談会資料(当日メモ)_20230408.pdf知礼 八子
 
俺と最近のクラウドAI系サービス
俺と最近のクラウドAI系サービス俺と最近のクラウドAI系サービス
俺と最近のクラウドAI系サービスMasayuki KaToH
 
Opening at cloudian seminar 2012
Opening at cloudian seminar 2012Opening at cloudian seminar 2012
Opening at cloudian seminar 2012CLOUDIAN KK
 
今日からはじめようAWS IoT
今日からはじめようAWS IoT今日からはじめようAWS IoT
今日からはじめようAWS IoTToshiaki Enami
 
新たなビジネスにおけるデータ活用 ~小田急電鉄のローカル・コミュニティ活性化アプリ「KYOUDOKO」の場合~(2021/9/15)
新たなビジネスにおけるデータ活用 ~小田急電鉄のローカル・コミュニティ活性化アプリ「KYOUDOKO」の場合~(2021/9/15)新たなビジネスにおけるデータ活用 ~小田急電鉄のローカル・コミュニティ活性化アプリ「KYOUDOKO」の場合~(2021/9/15)
新たなビジネスにおけるデータ活用 ~小田急電鉄のローカル・コミュニティ活性化アプリ「KYOUDOKO」の場合~(2021/9/15)オラクルエンジニア通信
 
2013 デブサミ 「SIの未来ってどうなのよ?」
2013 デブサミ 「SIの未来ってどうなのよ?」2013 デブサミ 「SIの未来ってどうなのよ?」
2013 デブサミ 「SIの未来ってどうなのよ?」Serverworks Co.,Ltd.
 
AWS Outposts/LocalZones/Wavelength勉強会
AWS Outposts/LocalZones/Wavelength勉強会AWS Outposts/LocalZones/Wavelength勉強会
AWS Outposts/LocalZones/Wavelength勉強会Mamoru Ohashi
 
ミッション : メガクラウドを安全にアップデートせよ!
ミッション : メガクラウドを安全にアップデートせよ!ミッション : メガクラウドを安全にアップデートせよ!
ミッション : メガクラウドを安全にアップデートせよ!Toru Makabe
 
[DevSumi2019]Cloud Native アプリケーションに最適!Oracle Cloud Infrastructureの魅力!
[DevSumi2019]Cloud Native アプリケーションに最適!Oracle Cloud Infrastructureの魅力![DevSumi2019]Cloud Native アプリケーションに最適!Oracle Cloud Infrastructureの魅力!
[DevSumi2019]Cloud Native アプリケーションに最適!Oracle Cloud Infrastructureの魅力!オラクルエンジニア通信
 
IoT/M2M展基調講演 - 「IoTビジネスの新潮流」 by SORACOM玉川 (Japan IT week 2017)
IoT/M2M展基調講演 - 「IoTビジネスの新潮流」 by SORACOM玉川 (Japan IT week 2017)IoT/M2M展基調講演 - 「IoTビジネスの新潮流」 by SORACOM玉川 (Japan IT week 2017)
IoT/M2M展基調講演 - 「IoTビジネスの新潮流」 by SORACOM玉川 (Japan IT week 2017)SORACOM,INC
 
手元の物理ネットワーク機器をクラウドにデプロイしてみる話 #npstudy
手元の物理ネットワーク機器をクラウドにデプロイしてみる話 #npstudy手元の物理ネットワーク機器をクラウドにデプロイしてみる話 #npstudy
手元の物理ネットワーク機器をクラウドにデプロイしてみる話 #npstudyaxsh co., LTD.
 
Introducing IBM Cloud & Cognitive
Introducing IBM Cloud & CognitiveIntroducing IBM Cloud & Cognitive
Introducing IBM Cloud & CognitiveAtsumori Sasaki
 
LineとAWSでおうち制御を改善した話
LineとAWSでおうち制御を改善した話LineとAWSでおうち制御を改善した話
LineとAWSでおうち制御を改善した話YoshihiroFujita8
 
Why we need blockchain for dx
Why we need blockchain for dxWhy we need blockchain for dx
Why we need blockchain for dxSBI R3 Japan
 

Similar to コロナ禍でのリモートワークの困りごとをAWSで爆速解決 (20)

八子クラウド座談会230408事前配布
八子クラウド座談会230408事前配布八子クラウド座談会230408事前配布
八子クラウド座談会230408事前配布
 
インフラ野郎 Azureチーム at クラウド boost
インフラ野郎 Azureチーム at クラウド boostインフラ野郎 Azureチーム at クラウド boost
インフラ野郎 Azureチーム at クラウド boost
 
クラウドEXPO 2011春資料 20110418
クラウドEXPO 2011春資料 20110418クラウドEXPO 2011春資料 20110418
クラウドEXPO 2011春資料 20110418
 
座談会資料(当日メモ)_20230408.pdf
座談会資料(当日メモ)_20230408.pdf座談会資料(当日メモ)_20230408.pdf
座談会資料(当日メモ)_20230408.pdf
 
座談会資料(当日メモ)_20230408.pdf
座談会資料(当日メモ)_20230408.pdf座談会資料(当日メモ)_20230408.pdf
座談会資料(当日メモ)_20230408.pdf
 
俺と最近のクラウドAI系サービス
俺と最近のクラウドAI系サービス俺と最近のクラウドAI系サービス
俺と最近のクラウドAI系サービス
 
Opening at cloudian seminar 2012
Opening at cloudian seminar 2012Opening at cloudian seminar 2012
Opening at cloudian seminar 2012
 
今日からはじめようAWS IoT
今日からはじめようAWS IoT今日からはじめようAWS IoT
今日からはじめようAWS IoT
 
新たなビジネスにおけるデータ活用 ~小田急電鉄のローカル・コミュニティ活性化アプリ「KYOUDOKO」の場合~(2021/9/15)
新たなビジネスにおけるデータ活用 ~小田急電鉄のローカル・コミュニティ活性化アプリ「KYOUDOKO」の場合~(2021/9/15)新たなビジネスにおけるデータ活用 ~小田急電鉄のローカル・コミュニティ活性化アプリ「KYOUDOKO」の場合~(2021/9/15)
新たなビジネスにおけるデータ活用 ~小田急電鉄のローカル・コミュニティ活性化アプリ「KYOUDOKO」の場合~(2021/9/15)
 
俺のDX
俺のDX俺のDX
俺のDX
 
2013 デブサミ 「SIの未来ってどうなのよ?」
2013 デブサミ 「SIの未来ってどうなのよ?」2013 デブサミ 「SIの未来ってどうなのよ?」
2013 デブサミ 「SIの未来ってどうなのよ?」
 
AWS Outposts/LocalZones/Wavelength勉強会
AWS Outposts/LocalZones/Wavelength勉強会AWS Outposts/LocalZones/Wavelength勉強会
AWS Outposts/LocalZones/Wavelength勉強会
 
ミッション : メガクラウドを安全にアップデートせよ!
ミッション : メガクラウドを安全にアップデートせよ!ミッション : メガクラウドを安全にアップデートせよ!
ミッション : メガクラウドを安全にアップデートせよ!
 
[DevSumi2019]Cloud Native アプリケーションに最適!Oracle Cloud Infrastructureの魅力!
[DevSumi2019]Cloud Native アプリケーションに最適!Oracle Cloud Infrastructureの魅力![DevSumi2019]Cloud Native アプリケーションに最適!Oracle Cloud Infrastructureの魅力!
[DevSumi2019]Cloud Native アプリケーションに最適!Oracle Cloud Infrastructureの魅力!
 
IoT/M2M展基調講演 - 「IoTビジネスの新潮流」 by SORACOM玉川 (Japan IT week 2017)
IoT/M2M展基調講演 - 「IoTビジネスの新潮流」 by SORACOM玉川 (Japan IT week 2017)IoT/M2M展基調講演 - 「IoTビジネスの新潮流」 by SORACOM玉川 (Japan IT week 2017)
IoT/M2M展基調講演 - 「IoTビジネスの新潮流」 by SORACOM玉川 (Japan IT week 2017)
 
自宅vSphereからニフクラに引っ越ししてみた
自宅vSphereからニフクラに引っ越ししてみた自宅vSphereからニフクラに引っ越ししてみた
自宅vSphereからニフクラに引っ越ししてみた
 
手元の物理ネットワーク機器をクラウドにデプロイしてみる話 #npstudy
手元の物理ネットワーク機器をクラウドにデプロイしてみる話 #npstudy手元の物理ネットワーク機器をクラウドにデプロイしてみる話 #npstudy
手元の物理ネットワーク機器をクラウドにデプロイしてみる話 #npstudy
 
Introducing IBM Cloud & Cognitive
Introducing IBM Cloud & CognitiveIntroducing IBM Cloud & Cognitive
Introducing IBM Cloud & Cognitive
 
LineとAWSでおうち制御を改善した話
LineとAWSでおうち制御を改善した話LineとAWSでおうち制御を改善した話
LineとAWSでおうち制御を改善した話
 
Why we need blockchain for dx
Why we need blockchain for dxWhy we need blockchain for dx
Why we need blockchain for dx
 

コロナ禍でのリモートワークの困りごとをAWSで爆速解決