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
AWSにおけるムービーレイクの運用
Search
Shogo Tasai
March 01, 2021
Technology
0
120
AWSにおけるムービーレイクの運用
BigData-JAWS 勉強会#16 登壇用資料として利用
オンデマンド 動画群の運用を考える上で、大まかな観点について説明
Shogo Tasai
March 01, 2021
Tweet
Share
More Decks by Shogo Tasai
See All by Shogo Tasai
AWSで作るMCPサーバー集約基盤
tasaishogo
1
33
Other Decks in Technology
See All in Technology
Oracle Cloud Infrastructure:2025年12月度サービス・アップデート
oracle4engineer
PRO
0
190
純粋なイミュータブルモデルを設計してからイベントソーシングと組み合わせるDeciderの実践方法の紹介 /Introducing Decider Pattern with Event Sourcing
tomohisa
1
500
小さく、早く、可能性を多産する。生成AIプロジェクト / prAIrie-dog
visional_engineering_and_design
0
320
Introduction to Sansan Meishi Maker Development Engineer
sansan33
PRO
0
330
Bedrock AgentCore Evaluationsで学ぶLLM as a judge入門
shichijoyuhi
2
320
田舎で20年スクラム(後編):一個人が企業で長期戦アジャイルに挑む意味
chinmo
1
1k
1万人を変え日本を変える!!多層構造型ふりかえりの大規模組織変革 / 20260108 Kazuki Mori
shift_evolve
PRO
5
680
2025年 山梨の技術コミュニティを振り返る
yuukis
0
150
AWSと生成AIで学ぶ!実行計画の読み解き方とSQLチューニングの実践
yakumo
2
170
コールドスタンバイ構成でCDは可能か
hiramax
0
130
テストセンター受験、オンライン受験、どっちなんだい?
yama3133
0
200
ハッカソンから社内プロダクトへ AIエージェント ko☆shi 開発で学んだ4つの重要要素
leveragestech
0
550
Featured
See All Featured
For a Future-Friendly Web
brad_frost
180
10k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Embracing the Ebb and Flow
colly
88
4.9k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
2
77
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
330
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Technical Leadership for Architectural Decision Making
baasie
0
200
Art, The Web, and Tiny UX
lynnandtonic
304
21k
4 Signs Your Business is Dying
shpigford
187
22k
GitHub's CSS Performance
jonrohan
1032
470k
Transcript
株式会社サーバーワークス AWSにおけるムービーレイクの運⽤ BigData-JAWS 勉強会#16 登壇⽤資料 2021年3⽉1⽇ アプリケーションサービス部 ⽥⻫ 省吾
1.はじめに 2. 「受け取る」フェーズ 3. 「加⼯する」フェーズ 4. 「保存する」フェーズ 5. 「提供する」フェーズ 6.
おわりに 今⽇の内容
⾃⼰紹介 名 前 ⽥⻫ 省吾(たさい しょうご) 所 属 株式会社 サーバーワークス
アプリケーションサービス部 得意なサービス ・Amazon Connect ・Amazon WorkSpaces ・AWS Client VPN ・Ops系AWSサービス全般 最近Client VPNのホワイトペーパーを執筆しました︕ https://www.serverworks.co.jp/resources/form/8564/ 仲良くなりたい サービス ・AWS Glue(というよりPySpark) 今年やりたいこと ・地⽅でテレワーク・⼆地域居住 3
今回のプレゼンの主な題材となる案件について ▸⾃社製品を販売する加盟店のTVごし にPR動画を配信・再⽣する ▸ライセンスサーバー 、クライアント アプリはお客様開発 ▸オーダーはランニングコスト重視 4
オンデマンド動画基盤の運営上の観点 ▸配信したい動画の保存受け⼝を⽤意する ▸画質やファイルフォーマット等の品質を揃える ▸DRMによる暗号化を実施する ▸ 各⼯程の動画を適切に保存・アーカイブ・削除する ▸加⼯済み動画を配信する ▸配信結果を把握できるようにする 5 受けとる
1 加⼯する 2 溜める 3 配信する 4
オンデマンド動画基盤の運営上の観点 6 受け取る 加⼯する 溜める 配信する
1. はじめに 2.「受け取る」フェーズ 3. 「加⼯する」フェーズ 4. 「保存する」フェーズ 5. 「提供する」フェーズ 6.
おわりに 今⽇の内容
通常ビックデータの受け⼝としてよく出てくるサービス 8
通常ビックデータの受け⼝としてよく出てくるサービス 9
動画管理の受け⼝となりうるサービス ▸通常のデータ受け⼝⽤サービスは ペイロード制限でだいたいアウト ▸エンコード⽤EC2に直接アップロード するような⽅法もなしではないが・・ ▸S3に直接アップロードが無難︖ ▸Kinesis Video Streamで収集した動 画もオンデマンド配信に利⽤可
10
S3を受け⼝とする際の留意点 ▸単にPutObjectするだけではパラメー タを付与できない ▸変換処理⽤のパラメータも連携する 上では以下のような⼯夫が必要 ▸プログラム処理の場合︓タギング ▸⼈⼒の場合︓with 指⽰ファイル 11 動画処理⽤パラメータの連携
1. はじめに 2. 「受け取る」フェーズ 3.「加⼯する」フェーズ 4. 「保存する」フェーズ 5. 「提供する」フェーズ 6.
おわりに 今⽇の内容
動画の加⼯はMediaConvertにおまかせ ▸マネージドの動画変換サービス 1. 出⼒動画の分数に対する従量課⾦ 2. ごりごり使うワークロードではリザー ブド料⾦も提供 3. 多機能・多オプション 13
やはりマネージドサービスが⼀番
動画の加⼯はMediaConvertにおまかせ ▸プログラムにシンプルに組み込める 1. 所定のconfigをもとに変換処理を指⽰ (CreateJob) 2. 変換処理の確認コマンド(GetJob)も しくはEventBridgeで終了を補⾜ 14 コーディングもお⼿軽(コーディングは)
None
定義が⻑い! 200⾏~くらい
【閑話休題】⼀般的なETL処理と動画処理の違い ▸動画はさまざまなデータフォーマッ トへの変換要望がある ▸同じくさまざまな品質要求がある ▸仮に変更処理に成功しても、品質が 万全とは限らない ▸ex.ノイズが気になる、セグメント調整 ▸いきなり公開せずに⼀度内部確認するよ うなフローがあるとベター 17
多様な設定パターンに対応する⼯夫 ▸よくある定型パターンについては呼 び出し元でconfigを同梱しておく ▸こまかなパラメータ調整についても 対応できるようなつくりにしておく ▸どの動画に関してどの設定値で変換 したか記録を残しておくとよい 18
条件に応じた動画の配信はMediaPackageにおまかせ 19 やはりマネージドサービスが⼀番(⼆度⽬) ▸マネージドの動画配信サービス 1. 処理対象の動画容量に対する従量課⾦ 2. 個々の動画再⽣環境に即した配信プロ トコル・DRM処理を実施するエンドポ イントを提供
3. CloudFront等CDN経由での配信の強 制・オリジンの保護が可能
ただし︕︕︕
マネージドサービスを使えない・使わないケースもある ▸料⾦最重要視の場合 ▸使いたい・使い慣れたミドルウェア がある ▸再⽣環境のパターンが少なく定まっ ている 21
どのコンピューティングサービスを使うか 22
どのコンピューティングサービスを使うか 23
どのコンピューティングサービスを使うか 24 AWS Batchがおすすめ Fargateも少なからぬ場合で可
動画処理に⼤活躍のAWS Batch 25 ⼤容量ファイルを効率よくこなすならコレ︕ ▸⾼負荷処理をこなすジョブ・インス タンス群をコントロールできる 1. ⼤容量のストレージをもつECSタスク を必要なときに必要なだけ呼び出せる 2.
実⾏環境には⾃作Dockerイメージを利 ⽤可能 3. 万が⼀スポットインスタンスが途中終 了した場合のリトライ規定が可能
次点以降のサービスの理由 ▸EC2︓起動の⼿間がネック。AMI代 もったいない ▸Lambda︓動画のエンコード・DRM 処理にはvCPUもストレージも貧弱 ▸Fargate︓昨春パワーアップして⼤抵 の動画はこなせるようになった ▸+ もうBatchからも呼べるように 26
全体の動画処理フローはStep Functionsで管理 27 個々の動画の変換ワークフローの管理に適する ▸動画処理にかかわる各サービス・処 理のオーケストレーションが可能 1. EventBridgeを介して特定APIの実⾏を トリガーに⼀連のジョブフローを実⾏ 2.
各動画の処理履歴の可視化が可能 3. Lambdaをはじめ、複数のAWSサービ スとスムーズに連携が可能
1. はじめに 2. 「受け取る」フェーズ 3. 「加⼯する」フェーズ 4.「保存する」フェーズ 5. 「提供する」フェーズ 6.
おわりに 今⽇の内容
動画ファイルの保存場所はS3以外考えられない ▸他動画サービスとのインテグレー ションの相性からも、料⾦⾯からも S3で保管するのが⾃然 ▸EBSやEFS、FSxで敢えて保存するメ リットはあまり思いつかない ▸なにか⾯⽩いユースケースがあれば教えてく ださい︕ 29 みなさんご存知、超安価なストレージサービス
【閑話休題】ビックデータのアーカイブ上の留意点 ▸S3(標準)が0.025USD/GB、標準 Glacier ・Deep Archiveが 0.005USD/GB・ 0.002USD/GB(⽉) ▸⼀⽅ 標準Glacier ・Deep
Archive に 移す上ではそれぞれ0.0571USD・ 0.065USD per 1000reqかかる ▸零細な容量のファイルが多数あるよ うな場合に適⽤すると⾼くつく 30 Glacier実は⾼くつく(場合がある)問題
動画を⻑期アーカイブする場合 ▸ある程度具体的な試算を考えてみる ▸仮定 ▸総容量︓10TB(10GB動画1000本) ▸保存期間︓10年 31 動画の場合Gracierを使わない⼿はない
動画を⻑期アーカイブする場合 ▸S3の標準ストレージ => 累計約300,000円(⼗分安いが) ▸Deep Archive => 保存料は累計約24,000円、スト レージタイプ移⾏代⾦ 約7円
▸ただし、そもそも⻑期保存する動画 ファイルは限定すべき 32 動画の場合Gracierを使わない⼿はない
ライフサイクルポリシー管理になじまないファイルもある 33
ライフサイクルポリシー管理になじまないファイルもある 34 配信期間を 管理して削除 処理完了後 削除
1. はじめに 2. 「受け取る」フェーズ 3. 「加⼯する」フェーズ 4. 「保存する」フェーズ 5.「提供する」フェーズ 6.
おわりに 今⽇の内容
配信についてはCloudFrontにお任せ 36 昔から動画配信で⼤活躍の鉄板サービス ▸おなじみのCDNサービス 1. Cacheでストレスフリーな動画配信 2. OAIやMediaPackage連携を利⽤したオ リジン保護の実施 3.
別途AWS WAFやLambda Edgeを利⽤ することで柔軟なアクセス制御も可能
CloudFrontのアクセスログ 分析 ▸Athena上テーブルの主要カラム ▸date︓リクエスト発⽣⽇(UTC) ▸time︓リクエスト終了時刻(UTC) ▸bytes︓送出容量 ▸request_ip︓クライアントIP ▸uri︓FQDNおよびクエリ⽂字列を含まな いパス部分 ▸その他トラシュ⽤カラム
▸ result_type ▸ x_edge_detailed_result_type ▸ response_result_type ▸ fle_status 37
⽉次のアクセス数集計の例
None
dateとtimeを結合してJST化
サブクエリ結果をさらに 任意の集計単位でしぼり込み
あるuriに関するレコード数 = 特定⽉のある動画の再⽣数
あるuriに関するレコード数 = 特定⽉のある動画の再⽣数 動画ファイル名にID値等を 採⽤しておくとのちの整形で楽
1. はじめに 2. 「受け取る」フェーズ 3. 「加⼯する」フェーズ 4. 「保存する」フェーズ 5. 「提供する」フェーズ
6.おわりに 今⽇の内容
今回の発表のまとめ ▸S3にただ置くだけではなく、後続の処理⽤のパラメータ連携⽅法に留意 ▸Media Convert利⽤時に⼤切になるのはconfigの⽤意・カスタマイズ ▸Media XXXを使えない場合はAWS Batchを活⽤すべし ▸各処理はStep Functionsを使って連携・統合・可視化を図る ▸
⻑期保存⽤動画については積極的にGlacierを活⽤する ▸ 消すべきタイミングにすぐ消せるように⼯夫する ▸CloudFrontを有効活⽤する ▸再⽣数レベルの情報ならCloudFrontのログからAthenaで集計可 45 受けとる 1 加⼯する 2 溜める 3 配信する 4
None