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
家族の思い出を形にする 〜 1秒動画の生成を支えるインフラアーキテクチャ
Search
Ojima Hikaru
August 07, 2025
Technology
2.2k
3
Share
家族の思い出を形にする 〜 1秒動画の生成を支えるインフラアーキテクチャ
Ojima Hikaru
August 07, 2025
More Decks by Ojima Hikaru
See All by Ojima Hikaru
Railsの限界を超えろ!「家族アルバム みてね」の画像・動画の大規模アップロードを支えるアーキテクチャの変遷
ojima_h
5
1.1k
Podのオートスケーリングに苦戦し続けている話
ojima_h
1
410
ディメンショナルモデリングのすすめ
ojima_h
8
4.9k
モンスターストライクを支えるデータ分析基盤と準リアルタイム集計
ojima_h
7
5.8k
データ分析基盤の変遷とデータレイクの作り方
ojima_h
2
1.9k
Other Decks in Technology
See All in Technology
Building Production-Ready Agents Microsoft Agent Framework
_mertmetin
0
150
色を視る
yuzneri
0
320
Percolatorを廃止し、マルチ検索サービスへ刷新した話 / Search Engineering Tech Talk 2026 Spring
visional_engineering_and_design
0
310
ServiceNow Knowledge 26 の歩き方
manarobot
0
340
もっとコンテンツをよく構造化して理解したいので、LLM 時代こそ Taxonomy の設計品質に目を向けたい〜!
morinota
0
170
バイブコーディングで3倍早く⚪⚪を作ってみた
samakada
0
220
GKE Agent SandboxでAIが生成したコードを 安全に実行してみた
lamaglama39
0
190
音声言語モデル手法に関する発表の紹介
kzinmr
0
160
試作とデモンストレーション / Prototyping and Demonstrations
ks91
PRO
0
170
20260428_Product Management Summit_tadokoroyoshiro
tadokoro_yoshiro
15
18k
Microsoft 365 / Microsoft 365 Copilot : 自分の状態を確認する「ラベル」について
taichinakamura
0
450
Digital Independence: Why, When and How
wannesrams
0
280
Featured
See All Featured
KATA
mclloyd
PRO
35
15k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
270
Git: the NoSQL Database
bkeepers
PRO
432
67k
RailsConf 2023
tenderlove
30
1.4k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
350
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
240
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
140
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
270
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
A designer walks into a library…
pauljervisheath
211
24k
Transcript
©MIXI 家族の思い出を形にする —1秒動画の⽣成を⽀えるインフラアーキテクチャ 2025/08/07 インフラアーキテクチャ選択のジレンマ
©MIXI ⾃⼰紹介 ⽣島 光 @ojima_h 2019年から『家族アルバム みてね』のSREグループで活動しています。 データ分析基盤の構築、EKS移⾏、CI/CDの改善などに関わってきました。 海が好きです。 3児の⽗です。
©MIXI 『家族アルバム みてね』について * iOS‧Android™ アプリ登録者数、ブラウザ版登録者数の合計
©MIXI 『家族アルバム みてね』について 1秒動画 フォトブック 写真プリント
©MIXI 今⽇のテーマ 1秒動画の⽣成を⽀えるインフラアーキテクチャにおける様々な⼯夫とジレンマ を紹介します - ⼤量の写真‧動画データを扱う⼤規模なバッチ処理における⼯夫 - 機械学習やBigQueryなどの複数の技術スタックとの連携 - ⼤量のジョブフローをリソース効率よく処理する⼯夫
©MIXI 今⽇は話さなないこと 1秒動画を⽣成するためのアルゴリズムなどについては話ません。 1秒動画のつくり⽅ ― 「家族アルバム みてね」における動画エンコードパイプラインと その最適化事例 | gihyo.jp
BigQuery で1秒動画の配信対象家族を爆速で抽出する / How to create 1sec movie schedules with bigquery - Speaker Deck いい感じの素材選択ロジック / How to select videos for 1sec Movie - Speaker Deck 「家族アルバム みてね」年間版1秒動画2023 ⼤量配信の裏側 - Kyohei Hamada - Medium
©MIXI インフラアーキテクチャ概観
©MIXI ステージ1:画像‧動画アップロード アップロードされた写真‧動画を保存 し、スコアリングなどを⾏う ステージ2:対象家族抽出処理 1秒動画⽣成の対象となる家族を抽出し、 ジョブキューに積む ステージ3:1秒動画⽣成 スコアを元に素材となるメディアを選択‧ 加⼯‧結合し、最終成果物となる1秒動画
を⽣成 3つのステージ
©MIXI ステージ1:画像‧動画アップロード アップロードされた写真‧動画に対してスコアリングやタグ付け
©MIXI アーキテクチャ詳細 メインサービス - サムネイル⽣成 - アップロード完了通知 解析パイプライン - 画像‧動画に含まれる顔情報など
を分析しスコアを算出 - 算出されたスコアは「メインサー ビス」のDBに保存 - 複数のMLモデルをジョブオーケス トレータにより統合 各コンポーネントはSQSにより結合 - リクエスト送信⽤とレスポンス受 信⽤の2つのSQSキューのペア
©MIXI Amazon S3 99.999999999% の耐久性 - データを⽋損することなく保存で きることが何より重要 スケーラビリティ -
⼤量の画像‧動画のアップロード や閲覧のリクエストを遅延なく処 理 - ⼤規模なバッチ処理の読み取り負 荷に耐えられる 様々な機能 - 署名付きURL:クライアントから 直接アップロード - CloudFront:快適な閲覧体験
©MIXI 異なる技術スタック メインサービス - 単⼀のRailsアプリケーション - いくつかのAPIサーバー‧Web サーバー - ⾮常に多数のジョブワーカー
- Sidekiq - Shoryuken 解析パイプライン - ジョブオーケストレーター ‒ Railsで実装 - 解析器 ‒ TensorflowやPyTorch などそれぞれ個別の技術で実 装。リポジトリも独⽴。
©MIXI 異なる技術スタック バックエンド全体の管理が複雑化 - メインサービスと解析パイプライン でそれぞれ保持するデータベース 間の整合性 - リポジトリごとにCI/CDを整備 -
セキュリティアップデートなどのメ ンテナンス サービス・リポジトリを分割することによる 柔軟性と、それと引き換えの管理コスト
©MIXI ステージ2:対象家族抽出 1秒動画⽣成の対象となる家族を抽出し、ジョブキューに積む
©MIXI アーキテクチャ詳細 対象家族をBigQueryで抽出 - 素材が少ない家族は対象から外 す - ⾮常に複雑なクエリ 初めはRDBを使⽤していたが、 BigQueryへ移⾏
- DB負荷への懸念が解消 - メインサービスから分離 - 実⾏時間の劇的な短縮
©MIXI MySQL→BigQuery ⼀⽇1回のETL処理により、Aurora MySQL からBigQueryへデータ転送 - MySQLのデータサイズは数TB - Apache Spark
を Kubernetes 上で5時間ほどかけて実⾏ 運⽤負荷が課題
©MIXI ステージ3:1秒動画⽣成 スコアを元に素材となるメディアを選択‧加⼯‧結合し、最終成果物となる1秒動画を⽣成
©MIXI アーキテクチャ詳細 いくつものステップで構成 1. 素材選択 2. 回転や切り抜きなどの整形処理 3. タイトルやBGMを追加 4.
etc… 各ステップは Sidekiq Job として実装 全体を Sidekiq Batch により統合 ジョブの並列分散実⾏により1秒動画 の⽣成時間を短縮
©MIXI 課題 ⼤量のジョブの処理が課題 - 数百万の家族に対するバッチ処理 - ジョブは複数のステップにわたる
©MIXI Amazon EKS コンピュートリソースの安定供給が必 要 - Amazon EKSを利⽤ - ジョブキューの⻑さに応じて即
座にスケールアウト - スポットインスタンスの利⽤ キャパシティプランニング - ノードも多数起動する - Cluster autoscaler のメ モリ不⾜ - スポットインスタンスの クォータ - 定常時とは異なるリソース使⽤ 状況が発⽣することに注意
©MIXI ジョブキュー構成の⼯夫 BEFORE: - 全てのステップを単⼀のジョブキューに 追加 - 1つ⽬のステップで全てのジョブが完了 するのを待ち、次に2つ⽬のステップで 全てのジョブが完了するのを待ち‧‧
- 最終的な1秒動画が出来上がりを確認で きるまでにかなりの時間が必要 - AFTER: - 1つ⽬のステップだけ優先度の低いジョ ブキューを利⽤ - 1つのジョブが全てのステップを完了し たら次のジョブへ‧‧ - 1秒動画の⽣成が完了次第順次配信す る、といった運⽤も可能に
©MIXI まとめ
©MIXI まとめ - 信頼できる基盤に⽀えられている - Amazon S3 - Amazon EKS
- 複数の技術スタックを組み合わせることのトレードオフ - MLパイプライン - BigQuery - 継続的なチューニングが⼤切 - ジョブキューの構成など
©MIXI https://team.mitene.us WE ARE HIRING!!! SREメンバー募集中!
©MIXI ありがとうございました