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
「フィニッシャーズ・スマイル」の開発と当日運用のお話
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Kazuki Miura
PRO
September 06, 2025
Technology
160
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
「フィニッシャーズ・スマイル」の開発と当日運用のお話
https://jaws-tohoku.connpass.com/event/352957/
#jawsug #jawsugtohoku #jawsugakita
Kazuki Miura
PRO
September 06, 2025
More Decks by Kazuki Miura
See All by Kazuki Miura
Kiro Crewしか勝たん!?
miu_crescent
PRO
0
200
Kiro Crew で始める マルチエージェント開発
miu_crescent
PRO
1
250
Lambdaで動画のエンコードしたら MediaConvertに勝てるのか
miu_crescent
PRO
0
74
AWS Summit 報道現場で磨き上げた、 文字起こしシステムの開発。
miu_crescent
PRO
0
48
報道現場で磨き上げた、 ⽂字起こしシステムの開発
miu_crescent
PRO
0
38
地域のCCoEの拡大を目指す 企業間コミュニティ 「re:light local」について
miu_crescent
PRO
0
82
us-east-1 に障害が起きた時に、 ap-northeast-1 にどんな影響があるか 説明できるようになろう!
miu_crescent
PRO
13
5.4k
これだけはやっておいた方がよさそう?awsにおけるランサムウェア対策
miu_crescent
PRO
1
180
生成AIを活用した音声文字起こしシステムの2つの構築パターンについて
miu_crescent
PRO
4
500
Other Decks in Technology
See All in Technology
安心して変更できるWebフロントエンドの作り方
pirosikick
5
2.9k
時うどん〜Socket.getifaddrsで学ぶネットワーク編 / Tokiudon: The Socket.getifaddrs Edition
coe401_
4
220
開発投資の期待値を上げるプロダクトロードマップづくり ~プロダクトエンジニアが越境して事業を伸ばす~
kekekenta
1
240
銀行勘定系システムにおける開発プロセス刷新×AIによる環境モダナイゼーション / Development Process Transformation and AI-Driven Environment Modernization
muit
1
2.6k
CLIライブラリ開発を支える技術
htnabe
0
150
「どのログを見ればいい?」 から始めた サーバーレス障害解析
y_waka1
1
130
aws-iot-platform-architecture-use-cases.pdf
ma2shita
0
530
Goodbye ShellScript, Hello File-based App
shunsock
0
790
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
12k
白金鉱業Meetup Vol.25 アウトカムが二値のデータに対するCausal Impact
brainpadpr
0
290
Genieを崇めよ
kameitomohiro
0
170
Claude in Chrome 入門 / Introduction to Claude in Chrome
cielo1985
0
890
Featured
See All Featured
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
540
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.6k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
280
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Accessibility Awareness
sabderemane
1
220
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
380
Everyday Curiosity
cassininazir
0
320
Exploring anti-patterns in Rails
aemeredith
4
510
How GitHub (no longer) Works
holman
316
150k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Transcript
「フィニッシャーズ・スマイル」 の開発 と 当 日 運 用 の お 話
jawsugakita #
MIURA KAZKI heptagon inc. Favorite: AWS MediaServices VPC の外側のサービス AWS
Samurai AWS Community Hero AWS Ambassador AWS Top Engineer Cloud Architect Sapporo 189 cm → 2018 年に 未経験からスタート 2022 年にVOD とEC を 開発運用スタート
秋田出身です! ついに地元・秋田に帰ってきました!!
JAWS-UG 秋田で登壇できるの とても嬉しいです!
改めまして
「フィニッシャーズ・スマイル」 の開発 と 当 日 運 用 の お 話
jawsugakita #
現地からの動画配信を実施するときの 気をつける点なんかも触れつつ 動画配信する中でのAWSの使い方 また、AWSのサービスを使って 付加価値をどう実現していきますか
jawsugakita #
実行委員でもある 野口さんからご依頼
実行委員でもある 野口さんからご依頼
コースの各地からの映像をYouTube に向けてスイッチする環境の構築 ゴールでフィニッシュした時の 笑顔を集めるWebサービス 「フィニッシャーズ・スマイル」の構築 今回のご依頼内容
コースの各地からの映像をYouTube に向けてスイッチする環境の構築 ゴールでフィニッシュした時の 笑顔を集めるWebサービス 「フィニッシャーズ・スマイル」の構築 今回のご依頼内容
大会の進行に 合わせて簡単 に移動ができ るスマートフ ォンでライブ 配信
配信用PCの画面 をキャプチャして OBSの入力とし て使用する
各配信用PCで 移したい箇所を 全画面表示して もらう PC上で他の画 面も見ながら映 像も横で見れる ように縦長に並 べる
PC上で他の画面も見ながら映像も 横で見れるようにプレイヤーを縦長に並べると便利 chrome1 chrome2
Amazon Interactive Video Service Amazon Simple Storage Service (Amazon S3)
AWS Amplify Larix Broadcaster: Live Stream OBS スマホ PC AWS スマホの映像をRTMP で飛ばす 他のプロトコルにも対応 ※ 無料版は配信時間に制限あり スイッチャー/ ミキサー 配信と収録ができる OSS デスクトップアプリ RTMP を受けて、配信できる 利点:低レイテンシー 観測できるようになる 静的なWeb サイトをデプロイして 公開する一番簡単な方法 ライブ配信基本セット 今はAmplify が推奨されている フロントエンド 動画プレイヤー デファクトスタンダートOSS 一旦これ使いましょう
Amazon Interactive Video Service Amazon CloudWatch Alarm AWS AppSync Events
WebSocket オブザーバビリティ モバイル通信 不安定になる 配信運用を考えると 1つの画面で全て判 断したい 将来拡張
コースの各地からの映像をYouTube に向けてスイッチする環境の構築 ゴールでフィニッシュした時の 笑顔を集めるWebサービス 「フィニッシャーズ・スマイル」の構築 今回のご依頼内容
jawsugakita #
実物を見ていただきましょう https://finishers-smile.net/tritakamatsu2025/timeline
None
Amazon Rekognition
Amazon Rekognition DEMO
Amazon Rekognition Amazon Rekognition image Amazon Rekognition video 最終が静止画なので 静止画を採用
Amazon EventBridge アーキテクチャ
アーキテクチャ 配信用にも 分岐してる Amazon EventBridge
アーキテクチャ Amazon EventBridge 3つのパートに分けて 何やってるのかを説明していきます
映像入力と静止画切り出し カメラからPCにキャプチャした映像を OBSを使用してAWSに向けて映像を アップロード RTMPで受け取った映像を MediaLiveのチャンネルで受ける EC2上で動いているGStreamer か ら、KVSが受け取れるHTTPSへ変換 LambdaにてKVSの映像から
1秒間に2枚ずつ静止画を生成しS3バ ケットへ保存 Amazon EventBridge
Amazon EventBridge rekognitionと画像処理 映像から切り出した静止画からRekognitionの顔 検出機能を使用し1人1枚の顔写真にして保存する フレーム画像から顔を検出 検出された顔の数だけ下記の処理を行う 検出された顔の笑顔スコアと顔スコアを計算 似ている顔画像同士を同一人物としてグルー ピング
検出された顔と類似した顔を検索する。 類似した顔があれば、検出された顔を類 似した顔の所属する人物のグループに紐 付ける。 類似した顔がなければ、新たな人物のグ ループを作成する。 下記の値から算出した顔スコアを元に、人物 のグループの中でもっとも写りの良い写真を タイムラインに表示する。 顔のサイズ(画素数) 向き 信頼度 笑顔度 こう 切り抜く
表示部分 画像処理部のによってDynamoDBに保存したデータから、 Webページの表示に必要なデータをJSON形式で作成 上記JSON形式のデータをAmplifyにて構築したWebペー ジで表示 顔画像についてはオリジンサーバーをS3としCDNとして CloudFront経由してWebへ配信
Amazon Rekognition パラメータの調整
かなり画角揃えられた
rekognitionと画像処理 クライアントのイメージに近づける Rekognitionの推奨値に合わせる カメラをできるだけ正面に設置する
クライアントのイメージに近づける 共通言語のすり合わせから どれくらいの画角なのかをパラメータ として決めないと出力ができない
クライアントのイメージに近づける WSとKSの間くらい バンザイしても映るくらい
Rekognitionの推奨値に合わせる カメラセットアップの推奨事項 1920x1080の全体画像のうち顔のサイズ は50x50以上が最小値 顔の向き PITCH 30度未満 ROLE 制限なし 45度以下
https://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/recommendations-camera-image-video.html ドキュメントにちゃんと書いてあります
カメラをできるだけ正面に設置する カメラ設置位置
かなり画角にムラなく出力させることができた
当日の事件
順調に1時間くらい過ぎたあたりで 私はタイムラインを見ながら カメラの微調整をしていました
None
新しい顔が来ない!!
15分後 原因判明
さて、何が悪かったでしょうか
アーキテクチャを眺めてみよう ヒント: 最初のゴールから1時間が経過し 次々とゴールする人が増えてきた
正解は
Amazon DynamoDB キャパシティモードが プロビジョニングモードに オンデマンドモードに変更して解決 SQSのキューが再び流れでデータ損 失ゼロ 読み込みのスロットリングを確認
Amazon DynamoDB プロビジョンドキャパシティモード Read Capacity Unit Wright Capacity Unit をそれぞれ設定してあげる必要がある
プロビジョンドキャパシティモードからオンデマンドキャパシティモードに切り替えると、 DynamoDB は、テーブルやパーティションの構造にいくつかの変更を行います。この処理に は数分かかることもあります。 切り替え期間中、テーブルは以前にプロビジョニングされた書き込みキャパシティーユニットお よび読み込みキャパシティーユニットの両方と整合性のあるスループットを提供します。 オンデマンドキャパシティモード ある範囲で自動的に動いてくれる 切り替えても大丈夫なことは何かで見て知ってた
反省 ちゃんと負荷試験をすること 観測できる状態を整えておくこと
今後の展望
次のイメージ ビジネス化していきたい 付加価値もっと出していきたい 高解像度化 動画化
サーバレスのいいところ 簡単に追加機能が生やせる
自動的に動画の切り出しができないか
来年乞うご期待
ONE MORE THING...
ヘプタゴンの谷口が金沢で Deep Dive します!