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
Cloudflare を使って愛犬を監視する
Search
高江洲 順八
April 18, 2024
300
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Cloudflare を使って愛犬を監視する
https://shima-tech-hub.connpass.com/event/314854/
高江洲 順八
April 18, 2024
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
55
8.4k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Embracing the Ebb and Flow
colly
88
5.2k
Into the Great Unknown - MozCon
thekraken
41
2.8k
WENDY [Excerpt]
tessaabrams
14
40k
It's Worth the Effort
3n
188
29k
Automating Front-end Workflow
addyosmani
1369
210k
The Pragmatic Product Professional
lauravandoore
37
7.5k
Technical Leadership for Architectural Decision Making
baasie
3
600
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
How Software Deployment tools have changed in the past 20 years
geshan
2
35k
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
750
Transcript
Cloudflare を使って愛犬を監 視する 高江洲 順八(@EightTakaesu)
名前:高江洲 順八(たかえす じゅんや) 2021-06-01 ~ シーエー・アドバンス入社・在籍 得意技術:PHP, MySQL, AWS, などなど浅く広く 趣味:コーヒー、旅行
休日の過ごし方:技術の勉強、映画鑑賞 一言:最近 アマプラで Fallout 観てます
愛犬 0.5 歳
悪さしてるのか、 生きているのか、 いろいろ気になる
なので、ペットカメラをインストー ルして、職場からも見れるように してみました!
どんなLT? • 愛犬を仕事中も見守りたいので、監視したく、色々使ってペットカメラをインストールしたの で、どんな技術を使ったかご紹介 • 出てくる技術 ◦ Cloudflare, Raspberry Pi,
Nginx Unit などなど • ホントは Qiita か Zenn の記事にして、それも共有したかったですが、間に合わず ◦ 後日気が向けば記事にしようかなと思います!😇 • 日曜プログラマの方の参考になれば幸いです!(ぶっちゃけプログラミングしてない! )
ペットカメラ? • パナソニック、TP-LINK、Anker などなどいろいろなメーカーが出している • 値段はピンキリ 5,000 ~ 30,000 くらい?
• Raspberry Pi 3 と Raspberry Pi カメラモジュール v1.3 で構成
• 中古ラズパイ買ったときに、サービスでついてきたカメラ • 合計 5000 円 カメラ?
• カメラがあるなら、映像はどうやって取る? • プログラミング? → きつい・・・ • なにか OSS とかないだろうか? • あった
映像どうやって撮る?
• Motion という OSS をインストール(GPL-2.0) • apt コマンドなどで インストールしてすぐ つかえる
• mjpg-streamer というの もあり、ただ古すぎる& 事例少ない Motion Motion-Project/motion: Motion, a software motion detector. Home page: https://motion-project.github.io/ https://github.com/Motion-Project/motion
• sudo apt-get install motion でインストール、systemd のデーモンとして扱える systemctl なんちゃらのような。 •
設定ファイルは、/etc/motion/motion.conf Motionの簡単な紹介
• 例えば、 framerate を15 にしてそう • 以下のドキュメント見れば、 おそらくすべての項目の 説明が書いてあって親切 Motionの設定ファイルはシンプル
ドキュメント https://motion-project.github.io/motion_config.html
ところでどうやって映像を見る? • ネットでググると Motion インストールしたらすぐにストリーミング映像が見れるサーバー が起動するっぽかった • 8081 で motion
が Listen してた(8080 は motion を制御するインターフェース) Streaming Video with Motion - Raspberry Valley (raspberry-valley.azurewebsites.net) https://raspberry-valley.azurewebsites.net/Streaming-Video-with-Motion/
ところでどうやって映像を見る? • raspberry pi に 割り当てられた プライベートIPに ブラウザからアクセス して開けた! •
けど天地逆! 192.168.1.2:8081
Motion を設定してみる • 天地を逆にしたり、 • フレームレート設定したり、 • 動き検知時に録画を実行し、その録画映像の保存先を指定したり、 • etc….
Motionの設定ファイルはシンプル • いろいろ設定値を書き換えては再起動を繰り返し、以下のようになった # systemctl を使うために必要 daemon off # 録画した動画の保存先
(動きを認識したときだけ動画が保存される ) target_dir /mnt/pet_camera_vidoes # ファイル名(拡張子抜き) movie_filename %Y-%m-%d_%H-%M-%S_motion # mp4 で保存 movie_codec mp4 videodevice /dev/video0 norm 0 # フォーマット 8 = mjpg ということ v4l2_palette 8 width 640 height 480 framerate 30 # localhost 以外からでも stream にアクセスできるようにする stream_localhost off stream_maxrate 30 stream_quality 50 # 上下反転 flip_axis v
None
None
自宅内で見れるペットカメラはで きた! けど家の外から見たい・・・
自宅の外からはアク セスできない!
• 自宅のようなプライベートな ネットワークを Cloudflare のインフラとつなぐトンネル • 要するに、自宅の外から、 自宅の端末にアクセスできる! Cloudflare Tunnel
Cloudflare Tunnel · Cloudflare Zero Trust docs https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/
Cloudflare Tunnel のための cloudflared を常駐 ドメインを Cloudflare に紐づける。 Cloudflare上でトンネルを作成する。 踏み台
hoge.example.com に対応するサービ スにリクエストが送られる hoge.example.com にアクセスすると ・・ 踏み台
• ドメインのネームサーバーを Cloudflare のものに変更 • Tunnel を Cloudflare のダッシュボードで作成 ◦
ドメインと、自宅の踏み台で起動しているプロセスのポート番号を対応付ける ◦ 例: www.example.com → localhost:80 ◦ 例: ssh.example.com → localhost:22 • 詳細は公式のドキュメントご参照ください。Cloudflare Tunnel を使って自宅をデータセンターみたいにする (zenn.dev) という記事も Zenn に載せてるので良ければどうぞ! Cloudflare Tunnel の設定方法
ここには、Webサーバーは無い! www.example.com 踏み台 何かしらのサービスはこ こで起動している。
• Nginx Unit を使って、リクエストをリバースプロキシする • 通常の Nginx のようにプロキシサーバー、Webサーバーとして使える • Nginx
と比較して特徴的な違いは ◦ Rest API を通じてオンラインで設定変更ができる ◦ 設定の記述は JSON で書ける • 業務でも少し使い始めた Nginx Unit
Nginx Unit がプロキシ vid.example.com 踏み台 Motion まで到達でき る
Nginx Unit 経由で見れた!が・・・ • vid.example.com で 会社からも見れた! • やばい!自宅が世界中に 公開されてしまってる!
https://vid.example.com
• Cloudflare の機能で、セルフホストしているアプリケーションへのアクセスを制限すること ができる。 • Cloudflare のダッシュボードで、Cloudflare のメンバーを許可リストに追加する要領で アクセスを許可する Access
policies を設定
Access policies を設定
再度アクセスすると
コードを入力
Motion のサイトにアクセスできた! https://vid.example.com
Nginx Unit がプロキシ vid.example.com 踏み台 Motion まで到達でき る 所定のメアド所有者でないとアクセスが できない状態が作れた!
まとめ - いつでも愛犬監視できて安心!Cloudflare 様ありがとうございます! - 首振り機能とかほしい・・・ - 業務以外では普段と違う技術使うと楽しい! - cloudflare
とか nginx unit はインフラを作るときに便利に使えそうなので、今後も チェックしていきたい!
ご清聴ありがとうございました