セルフホスト vs マネージド動画ホスティング — 2026年版TCO分析
売り文句は魅力的です:「Cloudflare R2は$0.015/GB/月で送信料無料。1 TBを$15で保存できるのに、なぜマネージド動画ホストに月$100払うのか?」
そして、その売り文句は誤解を招きます。R2の請求書は、セルフホスト動画スタック全体の中で最小の項目です。この記事は、その正直な勘定書きです。
マネージドプラットフォームが実際に提供しているもの
コストを比較する前に、マネージドホストに払うとき何を買っているかを並べます。典型的な月$100の請求書には次が含まれます:
- ストレージ — ソースファイル+マルチビットレートバリアント
- エンコードパイプライン — アップロードをHLSバリアントに変換するGPU/CPUファーム
- HLSパッケージング — プレイリスト生成、セグメント結合
- AES-128暗号化 — セグメント単位の暗号化+キーローテーション
- キー配信インフラ — 署名URL、IP結合、有効期限
- CDN配信 — 全世界のエッジ配信
- 埋め込みプレイヤー — HLS.jsラッパー、キャプションメニュー、画質ピッカー、ブランディング
- アナリティクス — 取り込み、保存、クエリ、ダッシュボード
- 不正利用制御 — レート制限、異常検知
- 字幕パイプライン — VTTアップロード、任意でAI生成
- Webhookイベント — アプリ向けの再生イベント
- 管理ダッシュボード — アップロード、管理、設定
- カスタマーサポート — 深夜2時に何かが壊れたとき
セルフホスト相当を作るとは、これらを1つずつ作り直すことです。
インフラのみのコスト比較
ストレージと帯域だけ、エンジニアリング時間は除外:
| リソース | Cloudflare R2 | AWS S3 | Bunny Stream | AVCaption Premium |
|---|---|---|---|---|
| 1 TBストレージ / 月 | $15 | $23 | バンドル | バンドル |
| 5 TB送信 / 月 | $0 | $409 | 約$50〜80 | バンドル |
| 20 TB送信 / 月 | $0 | $1,720 | 約$200〜400 | $100定額 |
R2は無敵に見えます。実際、純粋なインフラだけならその通り。ただし「純粋なインフラ」は実際の請求書のごく一部です。
エンジニアリングコストの内訳
R2の数字に含まれないものを並べます。MP4のバケットを使い物になる動画プロダクトに変えるには、以下を構築(またはOSSから組み立て)する必要があります:
エンコードパイプライン — 2〜4週間
- GPU環境ならFFmpeg + NVENC、なければlibx264
- キュー(Redis、SQS、または自作)— 同時アップロードでCPUがバーストしないように
- マルチビットレートのラダー(1080p / 720p / 480p / 360pを妥当なビットレートで)
- HLSパッケージング — FFmpegの
-hls_timeまたはBento4mp4hls - 失敗ハンドリング — エンコードがジョブ途中でクラッシュしたら?
- 監視 — キューが詰まったらアラート
暗号化+キー配信 — 1〜2週間
- 動画ごとのAES-128キー生成、理想的にはNセグメントごとにローテーション
- プレイリスト内の
EXT-X-KEYURI生成 - 認証付きのキー配信サーバー — JWT、署名URL、またはOAuth
- 有効期限、IP結合、キーエンドポイントの不正利用対策
埋め込みプレイヤー — 2〜4週間
- HLS.jsをフォーク、または上に構築
- キャプションメニュー、画質ピッカー、フルスクリーン、PiP
- モバイル(iOSはネイティブHLS、AndroidはHLS.js)
- ブランディングフック — 色、ロゴ、ウォーターマーク
- 親ページ向けのpostMessageイベント
アナリティクス — 1〜2週間
- 取り込みエンドポイント(恐らくWebSocketまたはbeacon)
- イベント保存(ClickHouse、Postgres、BigQuery)
- 集計クエリ — 同時視聴者数、完視聴率、離脱
- ダッシュボードUI
管理・運用 — 1〜2週間
- 大容量対応のチャンクアップロードUI
- ライブラリ閲覧 / 編集 / 削除
- 動画ごとの設定(ドメインホワイトリスト、ウォーターマーク、字幕)
- プログラマティック管理用API
オンコールインフラ — 継続
- 監視ダッシュボード(Grafana、Datadog)
- アラート(PagerDuty)
- インシデント対応のランブック
- バックアップ+ディザスタリカバリ
MVP-本番までの合計:有能なソロエンジニアで3〜6か月。維持コスト:継続的なバックグラウンド作業+24/7オンコール。
エンジニアリングコストに数字を入れる
米国のシニアエンジニアの完全負荷コストはおよそ$200k〜300k/年——フルロードで月$20kとします。動画保守に時間の10%を割くだけでも、月$2,000の注意コスト。
AVCaption Premium($100/月)やBunny Stream($50/月)と比べれば、エンジニアの取り分だけでもプラットフォーム費用の20〜40倍です。
これがスプレッドシートを開いた瞬間に「セルフホストでやろう」案を殺す計算です。
セルフホストが本当に勝つとき
3つの実シナリオ:
1. 動画は付随的。 一部のページに学習動画を含むSaaSを出荷していて、再生失敗で売上が落ちるリスクはない。暗号化、ウォーターマーク、アナリティクスは不要。R2 + <video>タグで十分。セルフホスト。
2. すでにチームがある。 プロダクトの他部分のインフラを動かしているプラットフォームチームがあり、動画追加の限界コストが低い。類似システムのランブックが既にあるから。
3. 巨大なスケール。 マネージドプラットフォームのマージン($X/TB)が、自社のスケールにおけるエンジニアリングコスト($Y/TB)を上回る規模。稀で、通常は月数百TBの送信を超えてから算数が反転します。
反証シナリオ: 「自分はコース制作者で、エンジニアリングは趣味」。これがメンテナンス税を最も過小評価するシナリオです。一度作ったあと、数か月後に気付くと、教える代わりにローンチ週の20%をパッケージング回帰のデバッグに費やしています。
マネージドが明らかに正解になるとき
- 動画が売上の中核(コース、有料メンバーシップ、B2B研修)。
- エンジニアリングチームが小さい、またはそもそもいない。
- 月額コストの予測性が欲しい(GB単価のクジ引きは避けたい)。
- 自社のコア能力ではない機能(暗号化、署名URL、ウォーターマーク、AI字幕、アナリティクス)が必要。
- 稼働率が重要で、動画用のページャーを背負いたくない。
これらに該当するなら、計算は接戦にすらなりません。マネージド$100/月は、セルフホスト相当を維持するエンジニア時間コストに対して劇的に安いです。
中間策:「マネージド配信、セルフホストストレージ」
生の動画ファイルを自社R2/S3に置き、エンコード、暗号化、プレイヤー、CDNのためにマネージド配信レイヤーを通すチームもあります。これが効くのは:
- マスターファイル保持を求めるコンプライアンス制約がある。
- マネージドベンダー依存にならないキルスイッチが欲しい。
- すでに別途ストレージに支払っている。
ニッチな選択肢です。ほとんどのチームは完全にどちらかに振り切ります。
判断マトリクス
| 状況 | 推奨 |
|---|---|
| 個人プロジェクト、カジュアル動画 | R2 + 素の <video> タグ |
| コース制作者、動画がプロダクト本体 | マネージド(AVCaption / Bunny / Mux) |
| 埋め込みヘルプ動画付きのSaaS | R2 + 素の <video>、または最安マネージド |
| インフラチーム持ちの大企業 | どちらでも — 既存プラットフォーム次第 |
| ハリウッドライセンスコンテンツ | DRM対応マネージド(VdoCipher) |
| 成長中のメンバーシップサイト | マネージド(定額、AVCaption Premium) |
| 学習目的のエンジニア | 学習プロジェクトとしてセルフホスト、後にマネージドへ |
AVCaptionの考え方
AVCaptionは「マネージド側の答え」です。多くのチームはこれを自分で構築すべきではないという前提で作られています。定額$100/月で5 TB、AES-128マルチキーHLS、署名済み埋め込みトークン、ブランドプレイヤー、EnterpriseでAI字幕。本来3か月かけて組み立てるスタックの一式。
セルフホストでやると決めたなら作ってください——優れた学習プロジェクトです。ただし$15/月で見積もって4か月目に驚かないように。
詳しいコスト比較:1 TB以上のライブラリで一番安い動画ホスティング。プラットフォーム別比較:比較セクション。
まとめ
R2 + nginxは素晴らしい趣味プロジェクトです。売上に直結する動画では、エンジニアリング税がマネージドプラットフォームの価格を一桁上回ることが普通です。インフラの行ではなく、総保有コストで最適化してください。
最速の正気チェック:AVCaptionのアカウントを開設し、最大のソース動画をアップロードし、アップロードから埋め込みiframeまでに何分かかるか数えてください。同じ最終状態をR2 + nginxから構築するのに、正直何エンジニア日かかるかを見積もってみてください。