Slide 1

Slide 1 text

minneのショート動画基盤の 設計と運用改善 yumu 2025.11.05 カバーとGMOペパボが語る、クリエイターの創作・表現活動を支える技術 1

Slide 2

Slide 2 text

2 自己紹介 GMOペパボ minne事業部 プロダクト開発チーム yumu (湯村 美吹香) 新卒3年目、エンジニア5年目、Rubyist5年目 バックエンド > インフラ >>> フロント 💎 推しの漫画 : メイドインアビス 💎 X : @myumura3

Slide 3

Slide 3 text

3 minneとは

Slide 4

Slide 4 text

4 動画投稿機能をリリースしました🎉

Slide 5

Slide 5 text

5 技術的な課題 大容量ファイルの取り扱い セキュリティリスク 変換処理に時間がかかる

Slide 6

Slide 6 text

6 1. システム設計のポイント

Slide 7

Slide 7 text

7 全体アーキテクチャ Shoryuken Shoryuken Shoryuken Shoryuken 署名付きURL 動画アップロード イベント送信 ウイルス スキャン イベント送信 メッセージ送信 動画を取得 ポーリング 動画にタグを付与 ポーリング 動画を取得 変換後の動画をアップロード 動画の変換 S3 SQS Lambda SQS

Slide 8

Slide 8 text

8 全体アーキテクチャ Shoryuken Shoryuken Shoryuken Shoryuken 署名付きURL 動画アップロード イベント送信 ウイルス スキャン イベント送信 メッセージ送信 動画を取得 ポーリング 動画にタグを付与 ポーリング 動画を取得 変換後の動画をアップロード 動画の変換 S3 SQS Lambda SQS ダイレクトアップロードで サーバー負荷軽減・高速

Slide 9

Slide 9 text

9 全体アーキテクチャ Shoryuken Shoryuken Shoryuken Shoryuken 署名付きURL 動画アップロード イベント送信 ウイルス スキャン イベント送信 メッセージ送信 動画を取得 ポーリング 動画にタグを付与 ポーリング 動画を取得 変換後の動画をアップロード 動画の変換 S3 SQS Lambda SQS 非同期処理で ユーザーを待たせない

Slide 10

Slide 10 text

10 2. 運用における改善

Slide 11

Slide 11 text

11 画面ごとの動画品質調整 ● 使用画面と元動画のサイズに応じて、適切なCRFを指定 [ # 作品一覧用 { ffmpeg_options: { video_codec: 'libx264', custom: ['-crf', small_square_crf.to_s, '-an', '-vf', crop_filter] } }, # 作品詳細用 { ffmpeg_options: { video_codec: 'libx264', audio_codec: 'aac', audio_bitrate: '128k', custom: ['-crf', large_crf.to_s] } } ]

Slide 12

Slide 12 text

12 モニタリング ● デッドレターキューの監視 ● メッセージの経過時間の監視

Slide 13

Slide 13 text

13 インフラリソースの最適化 CPUは3コアくらいが 適度かな メモリは1.5GiBは 必要そう ● ユーザーを待たせず、コストも削減

Slide 14

Slide 14 text

14 まとめ

Slide 15

Slide 15 text

15 実現したいこと ✨技術でクリエイターの創作・表現活動を支援する✨

Slide 16

Slide 16 text

16 今後の展望 サムネイルの設定 AI生成動画の活用 長時間動画への対応

Slide 17

Slide 17 text

17 Thank You! Thank You!