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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Ojima Hikaru
August 07, 2025
Technology
2.3k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
家族の思い出を形にする 〜 1秒動画の生成を支えるインフラアーキテクチャ
Ojima Hikaru
August 07, 2025
More Decks by Ojima Hikaru
See All by Ojima Hikaru
Railsの限界を超えろ!「家族アルバム みてね」の画像・動画の大規模アップロードを支えるアーキテクチャの変遷
ojima_h
5
1.2k
Podのオートスケーリングに苦戦し続けている話
ojima_h
1
420
ディメンショナルモデリングのすすめ
ojima_h
8
4.9k
モンスターストライクを支えるデータ分析基盤と準リアルタイム集計
ojima_h
7
5.9k
データ分析基盤の変遷とデータレイクの作り方
ojima_h
2
1.9k
Other Decks in Technology
See All in Technology
技術・能力を向上する原理原則 #きのこセッションa #きのこ2026
bash0c7
0
120
新しいUbuntu/GNOMEが使いたいからXからWaylandへ移行頑張ってるの巻 2026-06-20
nobutomurata
0
160
AI Agentをシステムに組み込む前にゆるく向き合ってみる
hayama17
0
130
現場のトークンマネジメント
dak2
1
190
從開發到部署全都交給 AI:實作 AI 驅動的自動化流程
appleboy
0
160
AI時代のコスト管理を考えよう〜明日から使える実践AWSノウハウ~
yoshimi0227
0
860
AWS Security Hub CSPMの成功・失敗体験
cmusudakeisuke
0
540
事業会社における 機械学習・推薦システム技術の活用事例と必要な能力 / ml-recsys-in-layerx-wantedly-2026
yuya4
0
160
WebGIS AI Agentの紹介
_shimizu
0
550
GitHub Copilot 最新アップデート – 「一歩先」の実践活用術
moulongzhang
5
1.7k
Deep Data Security 機能解説
oracle4engineer
PRO
2
110
コミュニティの有益性 ~JAWS Days 2026 での体験を通して~ / The Benefits of a Community ~Through My Experience at JAWS Days 2026~
seike460
PRO
0
270
Featured
See All Featured
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
44k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4k
HDC tutorial
michielstock
2
720
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
180
Facilitating Awesome Meetings
lara
57
7k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
140
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
450
Design in an AI World
tapps
1
250
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
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 ありがとうございました