CDNとオリジンサーバー
2つの層、2つの役割。
オリジンはコンテンツの権威ある源です。通常はオブジェクトストレージ(S3、R2、GCS)またはサーバーファームで、ライブラリ全体がここにあります。読み出しコストは高く、視聴者との地理的距離はそのままです。
CDN(Content Delivery Network)は、視聴者の近くでコンテンツをキャッシュするエッジサーバーの分散ネットワークです。Cloudflare、Fastly、Akamai、AWS CloudFront — どれもCDNです。それぞれが世界中に数百のPoP(Points of Presence)を持ち、視聴者がコンテンツを要求すると最寄りのPoPがキャッシュから配信します。
動画リクエストの流れ
- 視聴者のブラウザがCDNに
/segment-001.m4sを要求する。 - CDNエッジがそのURLのキャッシュを確認する。
- キャッシュヒット → エッジから配信。通常100ms未満。
- キャッシュミス → エッジがオリジン(AVCaptionの場合R2)から取得し、キャッシュに格納し、視聴者へ配信する。
- 同じ地域の後続視聴者はキャッシュヒットを得る。
HLS動画ではセグメントが不変(URLはコンテンツハッシュに紐づく)なため、複数視聴者がいる動画ではキャッシュヒット率が95%を超えます。
動画でこれが重要な理由
- 速度: エッジは大半の視聴者からRTT 10〜100ms。オリジンは50〜300ms。
- コスト: CDN帯域はオリジンエグレスより安い(特にR2 → CF CDNはエグレス無料)。
- スケール: 1本のバイラル動画でもオリジン負荷ゼロで数百万人に配信可能。
- 信頼性: 障害地域周辺のエッジは、オリジンがダウンしてもキャッシュ済みコンテンツを配信し続ける。
AVCaptionでは
オリジン = Cloudflare R2(オブジェクトストレージ、S3互換、CF CDNへのエグレス無料)。配信 = Cloudflare CDN(300+ PoP)。
この組み合わせは次を意味します。
- ストレージはR2により耐久性・地理冗長を確保。
- 配信は高速で、エッジで積極的にキャッシュ。
- R2とCF CDN間のエグレスは無料 — そのためAVCaptionはGB単位の配信料なしで定額料金を提供できます。