
CDNコスト最適化の実践方法
まず決める指標と“見える化”の設計
闇雲にCDNを替えるより、先に数字を固めます。動画プラットフォームで機能するKPIは次の4つです。
- キャッシュヒット率(CHR):セグメント/サブマニフェスト単位。地域別・ISP別で見る
- オリジン帯域(Gbps)とオリジン転送量(GB/月):CHRと表裏一体
- 1視聴時間あたりの配信コスト(円/Viewer-hour):価格交渉時の基準線
- QoE指標:起動時間、再生失敗率、ABRの品質分布
計測の要はログの結合です。CDNエッジログ(リクエスト、キャッシュ結果、転送量)と、プレイヤーの再生ログ(起動、ビットレート遷移、エラー)を同一セッションIDで紐づけ、地域×デバイス×時間帯で集計します。SQLやクエリの雛形はChatGPTやClaudeに投げて初期案を出し、検算だけ人が行うとスピードが上がります。異常検知ルールの文案はCopilotに下書きを作らせ、運用RunbookをGeminiでレビューすると属人化も和らぎます。
料金モデルは「転送量」「リクエスト数」「無効化・ログ配信・WAF/TLSオプション」まで分解し、月次で次を必ず付け合わせます。
- 地域別単価(段階課金やコミットの到達率)
- リクエスト課金がある場合のセグメント長との相性(短いほど回数が増える)
- 無効化やログ配信の従量費(障害時に跳ねがち)
キャッシュ設計を“動画仕様”に作り直す
TTLと再検証の現実解
HLS/DASHでは、マニフェスト(master/variant)は短め、セグメントは長めが基本です。例として、master: 120秒、variant: 60秒、セグメント: 7日を起点に、stale-while-revalidateを併用します。これで人気コンテンツのヒットを維持しつつ、マニフェストだけを頻回更新できます。新規公開や編成差し替えが多い場合は、セグメントのバージョンパス(/v123/…)にしてパージを減らすのが効きます。
キャッシュキーの断捨離
キャッシュ断片化の典型は「署名トークンのクエリ混在」「不要なヘッダvary」です。次を徹底します。
- cache keyは「パス+解像度/ビットレート+コーデック+DRM有無」程度に限定
- 短寿命の署名やトラッキングはヘッダで検証し、キーから外す(CDNのignore-params機能)
- ETag/If-None-MatchとIf-Modified-Sinceを使い、再配信では304を返す
ABRの“取りすぎ”も無駄を生みます。プレイヤーの初手を中位ビットレートに固定し、重複フェッチ(複数レベルの先読み)を最大1〜2本に制限。セグメント長は4秒以下だとリクエスト数が跳ねるため、6〜8秒でQoEとコストの折衷が取りやすいです。
小さなテキストを締める、大きな動画は“触らない”
動画データ自体は既に圧縮済みで再圧縮の効果が薄い一方、マニフェストや字幕、プレイヤーJS/CSSはBrotliやHTTP/2/3でしっかり削減できます。TLS再利用(セッション再開)を有効にし、ドメインの統合で接続数を抑えると、起動時間とリクエスト課金の両方に効きます。
トラフィック制御、オリジン、マルチCDNの現実解
オリジンを“守る”設計
Origin Shieldを一段挟み、人気コンテンツのミスバーストを吸収します。大量公開やライブ直後はプリウォーム(先行フェッチ)を設定。オリジンは地理的に複数配置し、出庫の局所集中を避けます。ログを見て長尾コンテンツのTTLを引き上げると、オリジン転送量が直線的に下がります。
マルチCDNは3つの判断軸だけ
- 可用性:フェイルオーバーの自動化(DNS/TLS切替の秒単位化)
- 品質:地域・ISP別のQoEを週次でベンチ、悪化時に比率調整
- コスト:コミット超過/未達のペナルティ含めた実効単価で配分
配分は「夜間はCDN Aを多め」「特定ISPはCDN B」などの単純ルールから開始し、配分ログで効果検証。複雑な最適化は運用負荷とトレードオフです。
コスト試算の型
月間配信量(GB)×単価 −(CHR向上で削減されたオリジン転送量×オリジン単価)−(リクエスト削減分×単価)で試算します。例えばCHRを88%→94%に上げると、総量が同じでもオリジン転送は約半減します。セグメント長を6秒にし、プレイヤーの重複先読みを抑えると、リクエスト課金の削減も加わります。
身近な活用例:中規模の動画学習サービスが28%削減
社員35名、月間視聴者数40万人の動画学習サービス。公開本数増に伴い、月中盤からCDN費が跳ね、オリジンの帯域も逼迫していました。原因は「署名付きURLの短期トークンをクエリに付けたままキャッシュ」「variantマニフェストのTTLが10秒」「プレイヤーが初手で3レベル分を先読み」の3点。CHRは82%まで低下し、オリジン転送量が右肩上がりに。
改善は3週間で実施しました。
- 署名はヘッダ検証に移行、cache keyからクエリを除外
- master/variantのTTLを120/60秒、セグメントは7日に固定+バージョンパス
- プレイヤーの先読みを1レベルに制限、初手を中位ビットレート固定
- Origin Shieldを導入し、公開直後のみプリウォームを実施
- CDN配分を夜間は第二CDNへ20%スイッチ、ISP別のQoEで微調整
結果、CHRは82%→93%に回復。オリジン転送量は42%減、リクエスト数は27%減、視聴開始は平均−280ms短縮。月間コストは28%削減でき、深夜帯の品質も安定。ログ分析の自動化にはChatGPTとGeminiでクエリ検証を行い、アラート文面やドキュメント整備はClaudeとCopilotを併用しました。人的負荷を増やさず、運用で貯金を作れた点が持続可能でした。
まとめ:コスト最適化は“視聴体験の設計”そのもの
動画配信のCDNコストは、設計の粗さを正直に映します。キャッシュキーとTTL、プレイヤー挙動、オリジンの守り、配分ルール。この4点を数字で回すだけで、二桁パーセントの圧縮とQoE改善は十分に現実的です。浮いた原資は、コンテンツ制作やレコメンドの改善、権利処理の自動化など、視聴体験に直結する投資へ回せます。動画プラットフォーム事業は、配信効率と体験価値の両輪で伸びます。今日の最適化は、明日の視聴継続率とライブラリ拡充を静かに後押しします。