はじめに
2026年7月15日(水)から7月17日(金)まで、愛媛県松山市の愛媛県県民文化会館を会場として、JANOG58が開催されました。その中で、国内で実際にCDNを作っているエンジニア4人によるパネルディスカッション「国内でCDN作ってる人集まれ!~国内のCDN事業者の実際の話~」が行われました。
このプログラムは、Jストリーム・アーキテクトである高見澤が、JOCDN株式会社、さくらインターネット株式会社、合同会社レッドボックスの各社で実際にCDNを作っているエンジニアに声をかけたことで実現したプログラムです。
CDN(Content Delivery Network)は、インターネットの上で重要なインフラとなっています。一方で、CDNはニッチな分野なため、仕組みや実際の運用について国内で議論される場面は限られているように思います。夏の松山でCDNを巡っての熱いディスカッションが行われましたので、レポートしていきたいと思います。

企画のキッカケ:CDNは似ているようで各社違う
CDNと一言で言っても、使われる場面も違えば、設計も運用も違う。もちろん利用されている技術も少しずつ違っています。今回集まっていただいた各社の皆さんとは、日頃からお話をしている仲でして、ビール飲みながら技術の話をしていると、結構似ているようで違うことが多く「えっ、そんなことしてるの?なるほどねー」と思うことが、いろいろあります。
例えば、JストリームやJOCDNは動画配信の基盤として使っていただいているお客様が多いので、結果的にキャッシュするオブジェクトサイズは大きくなり、アクセスが集中する場合はトラヒックも大きくなる傾向にあります。一方でさくらインターネットやレッドボックスはWebの高速化を目的として利用されているお客様が多いので、オブジェクトサイズは小さめですが、コンフィグの量や高速化のための工夫に力が入っています。
このような違いを少しでも知っていただき、CDNを作るって面白いんだな。と思っていただけたらいいな。またお客様がCDNを選択する際に、それぞれの得意分野や違いを知っていただけると”コスト”だけじゃないよ!と思っていただけるのではないかとおもったり。そんな思いで、今回のセッションを企画してみました。(もちろん、コストも大事ですが)
断腸の(!?)テーマ会議:レンジリクエストだけで1時間話せる世界
パネルディスカッションの中身を4人で相談していく中で、各社のシステムの設計の違いが面白いということになりました。やはり、CDNの中心となるキャッシュの持ち方やキャッシュヒットの工夫については、各社共通で入れていただくことにしました。
また、参加者はCDNやキャッシュについて深く理解している参加者だけではない。ということもあり、あまりマニアックにならないようなネタにしようということになりました。ただ、CDNを実際作っているエンジニアが集まったので、全然話が終わらない、、、
例えば、レンジリクエストという、ブラウザが大きなファイルの特定部分(レンジ)を指定してファイルの一部だけを取得する方法がありますが、その場合のキャッシュの持ち方やオリジンへのフェッチの方法などは各社工夫があり、レンジリクエストだけでも1時間は話せるね(笑)となってしまいました。
また裏話になりますが、ミドルウエアの選択の意図や変遷も非常に面白かったですね。オープンソースをベースとして開発はしていますが、それぞれ使っている機能だったり、デプロイの仕方だったり、工夫のポイントが異なり、JANOGでのディスカッションが目的で話をしていたのですが、とても勉強になりました。
動画配信を支えるJストリームCDNの特徴
JストリームのCDNとその周辺を含むシステムの全体像としては、キャッシュサーバーだけでなく、オリジンサーバーとなる動画プラットフォーム(J-Stream Equipmedia/ジェイストリーム・イクイップメディア)やストレージなどを含め、動画配信を意識したシステムとなっています。
動画配信が普及し始めた2000年代当時は、独自のプロトコルやフォーマットが利用されていたため、それぞれのフォーマットやプロトコルに応じた専用のキャッシュサーバーを構築・運用する必要がありました。その後、HLS/MPEG-DASHや、HTML5でのVideoタグの標準化などにより、動画もブラウザ上の1つのアプリケーションとして扱われるようになりました。
現在のJストリームのCDNの原型が形作られたのも、この頃になります。このように動画配信技術の進化に合わせて、キャッシュサーバーも進化を続けてきました。
また昨今では当たり前となっていますが、自社CDNだけでなく他社CDNを組み合わせてキャパシティーを拡大したり、冗長性を確保するためのマルチCDNを以前より採用しており、CDN毎のパフォーマンスを測定し、その時々で最適なCDNへユーザーを誘導するような「マルチCDNセレクタ」もシステムに組み込まれている点が特徴となります。

もう1つ、大きな特徴としてはトラヒックコントロールの仕組みです。CDNはたくさんのエッジサーバーに対して、どのようにユーザーを誘導するかがポイントになりますが、当社は対外接続用ルーターの経路情報やフロー情報を元にして、ピアリングしているISP内のユーザーとそれ以外のユーザーを分類して制御しています。

ディスカッションのネタとした、各社のキャッシュの構成やキャッシュの持ち方についてですが、各社とも多段構成で大量のキャッシュを持つ層とメモリキャッシュやURL処理などの一次処理を行う層に分けている点は共通していました。
またキャッシュヒット率を向上させ、オリジンサーバーへの負荷を軽減するための中間キャッシュ層(オリジンシールド)やWAFやACLなどの処理について層を分けている実装もあり、興味深かったですね。
※当日の私の登壇資料は下記よりご覧いただけます。
やっぱりCDNは面白い!
会場で見ていただいた方には「キャッシュヒット」という言葉を1年分耳にしていただいたのではないかと思います(笑)という冗談はさておき。
やはり自分達で作っているCDNについて”語る”セッションでしたので、私も含めて、登壇いただいた御三方も楽しく話していただけたことがとても印象的でした。また、当初の目的としていた各社の違いや得意分野についてもお話でき、会場の皆様からも興味深かったという感想もいただけました。
各社さんの話を聞いて思ったこととしては、HTTPのキャッシュを主とするCDNについては、この10年ぐらいが一つの期切りではないかと思ったことです。
動画フォーマットの変遷、Googleのページランク、常時SSL化など、インターネット上の歴史的な出来事に影響を受けている部分も大きいですが、CDNが一つ違うステージに変化してから10年経ったのだというなつかしさと気持ちを新たにするところがありました。
規模やシェアとしては、海外事業者との競争において厳しい状況にありますが、国内事業者も各社工夫をしながら、優位性を出そうとしています。プログラムに参加いただいた方々には、そんな裏側を感じていただけたのではないかと思います。またCDNって面白そうだな!作ってみたいな!と思っていただけたらいいなと思います。
CDNはサービスとして見ると似ていても、その裏側には各社それぞれの設計思想や工夫があります。今回のパネルディスカッションは、そうした違いを持つエンジニア同士が率直に議論できる、JANOGらしいセッションになりました。
※2027年1月31日までの期間限定で、本プログラムのアーカイブが公開中ですので、以下【関連情報】よりぜひご覧ください!

【関連情報】
JANOG58公式サイトでアーカイブ公開中!
(公開期間:2027年1月31日まで)
https://www.janog.gr.jp/meeting/janog58/pr-cdn-japan/
プログラム一覧
https://www.janog.gr.jp/meeting/janog58/program-timetable/


