コンピューターサイエンス:アルゴリズム / OS / ネットワーク / DB

CDN の仕組みと Anycast

生田 陸人
LuaGate エンジニア / 現役エンジニア
編集 LuaGate編集部

CDN の仕組みと Anycast

このレッスンで分かること

  • CDN は世界中のエッジサーバーからコンテンツを配信し、レイテンシを劇的に下げる仕組みです
  • Anycast は 1 つの IP を複数地点で広告し、BGP が最寄り拠点へ自動ルーティングする技術
  • CDN は Anycast やキャッシュ、エッジコンピューティングを組合せ、可用性・性能・DDoS 耐性を一括で底上げします

CDN の仕組みと Anycast とは

世界中のエッジで配信する CDN と Anycast ルーティングを学びます。本レッスンでは、CDN の仕組みと Anycast の基本から実際の使いどころまでを整理し、現場で迷わず使える形に落とし込みます。

この章のポイント

CDN と Anycast の違い (要約)

  • CDN = 「世界中のエッジにコンテンツを置いて、近場から配信する」アーキテクチャ
  • Anycast = 「同じ IP を複数地点で広告し、BGP が最寄りへルーティングする」ネットワーク技術

CDN は仕組みの全体像、Anycast は CDN を支える経路選択の道具、という関係です。 Cloudflare のように Anycast を全面採用する CDN もあれば、GSLB (DNS ベース) で振り分ける CDN もあります。

キャッシュヒット率を上げる 4 つのコツ

ポイント効果
静的アセットはファイル名にハッシュ (app.abc123.js) を含める強い Cache-Control: immutable を付けられる
Vary を最小化 (本当に必要な軸だけ)同じ URL のキャッシュが分散しない
URL クエリパラメータを正規化?utm_source=... 違いで別キャッシュ扱いになるのを防ぐ
エッジ専用の長 TTL + パージ API で即時無効化キャッシュヒット率 95%+ と即時反映を両立

このレッスンで学ぶこと

世界中のエッジサーバーからコンテンツを配信する CDN (Content Delivery Network) と、その配信効率を支える Anycast の仕組みを学びます。

CDN とは

CDN は、世界中に配置したエッジサーバー (PoP, Point of Presence) からコンテンツを配信するサービスです。ユーザーは地理的に最寄りのエッジから受信するので、レイテンシが大幅に下がります。

代表的な CDN は Cloudflare, Akamai, Amazon CloudFront, Fastly, Cloud CDN など。Web サービスの大半は何らかの CDN を使っているといってもよい状況です。

なぜ CDN が効くか

地球の反対側のサーバーに直接アクセスすると、光ファイバーでも往復 200ms 以上かかることがあります。1 ページに数十リクエストあるとそれだけで 1 秒以上のロス。

CDN を使えば、ユーザーは数 ms〜数十 ms 圏内のエッジから配信を受けられます。HTTPS のハンドシェイクも近場で済むので、初回接続もぐっと速くなります。

オリジンとエッジの関係

CDN は中心 (オリジン) と末端 (エッジ) で役割を分担します。

  • オリジン — 実体のあるサーバー。コンテンツの「正本」を持つ。
  • エッジ — 世界中に分散したキャッシュサーバー。オリジンから取得したコンテンツを保持し、ユーザーに直接返す。

ユーザーがリクエストすると、エッジが下記の判断をします。

  1. エッジにキャッシュがある → 即座にエッジから返す (キャッシュヒット)
  2. エッジにキャッシュがない → オリジンに問い合わせて取得、エッジにも保存してユーザーに返す (キャッシュミス)

キャッシュヒット率を高めると、オリジンへの負荷が劇的に下がり、レスポンスも速くなります。

Anycast とは

CDN を実現する重要な技術が Anycast です。同じ IP アドレスを世界中の複数の場所で広告し、BGP ルーティングが各ユーザーを最寄りに導く仕組みです。

たとえば 1.1.1.1 (Cloudflare DNS) は世界 300 以上の都市から広告されており、東京のユーザーは東京の Cloudflare に、ニューヨークのユーザーはニューヨークの Cloudflare に自動的にルーティングされます。

  • Unicast — 1 つの IP は 1 つのサーバーに対応 (普通のサーバー)
  • Anycast — 1 つの IP が複数のサーバーに対応し、最寄りが応答
  • Multicast — 1 つの IP が複数の受信者全員に届く
この章のポイント

Anycast の優れたフェイルオーバー

ある拠点が落ちても、BGP が自動的に「その拠点への経路」を撤回するので、ユーザーは次に近い拠点に再ルーティングされます。明示的な障害切り替え操作が不要で、停止時間がほぼゼロになります。

キャッシュ戦略

CDN のキャッシュは下記のような単位で管理されます。

  • パス単位 — /images/* はキャッシュ、/api/* はキャッシュしない
  • ヘッダー単位 — Cache-Control ヘッダーで指定された TTL を尊重
  • バリエーション単位 — Vary: Accept-Encoding で同じ URL でも gzip / br 別にキャッシュ

静的アセット (CSS, JS, 画像) は積極的にキャッシュ、動的 API はキャッシュ無効、というのが王道。リリース時はファイル名にハッシュを含めるなどして、キャッシュバスティングを行います。

エッジコンピューティング

最近の CDN は、エッジでスクリプトを実行できる「エッジコンピューティング」機能を備えています。

  • Cloudflare Workers — V8 ベースの JS / TS をエッジで実行
  • AWS Lambda@Edge — Lambda をエッジで実行
  • Fastly Compute@Edge — Wasm をエッジで実行

これにより、認証チェックや A/B テスト、画像変換などをユーザーの最寄りで実行でき、オリジン経由しないでも動的に応答できます。

この章のポイント

CDN の DDoS 防御効果

CDN は世界中の帯域を持っているので、攻撃トラフィックを吸収・分散する効果があります。DDoS 攻撃を受けたとき、CDN を経由していると数 Tbps クラスの攻撃でも持ちこたえられる場合があります。Cloudflare の DDoS 対策が有名です。

まとめ

このレッスンの要点は、エッジ配信の仕組み / Anycast による経路選択 / キャッシュヒット率の運用 の 3 点です。実務でこれらを切り分けて説明できるようになると、設計レビューや障害対応の精度が一段上がります。

理解度チェック

Q. Anycast の最大の特徴として正しいものはどれ?

  1. 1 つの IP が複数のサーバーに対応し、最寄りが応答する
  2. 1 つの IP が 1 つのサーバーに対応する
  3. 1 つの IP が複数の受信者全員に届く
  4. サーバーが起動するたびに IP が変わる
答えを見る

正解は 1。Anycast は同一 IP を複数拠点で広告し、BGP のルーティングで最寄りが応答する方式。1:1 は Unicast、1:全員は Multicast です。

出典 (References)

最終更新: 2026-05-28

関連レッスン

よくある質問

Q. このトピックは実務でどう役立ちますか?

A. DB のクエリ最適化、API 設計、データ構造の選択など、設計判断の根拠になります。表面的にライブラリを使うだけでなく「なぜそれが速いのか」を理解できると、性能問題を未然に防げます。コーディング面接でも頻出のテーマです。

Q. 計算量はどう求めれば良いですか?

A. ループのネストごとに掛け算する、再帰なら漸化式から解く、というのが基本です。Big-O 表記は定数倍と低次の項を無視するため、n の指数(n²、n log n など)に注目してください。最悪・平均・最良の 3 つを意識すると説得力が増します。

Q. 覚えるべき定番アルゴリズムは何ですか?

A. 二分探索、クイックソート/マージソート、BFS/DFS、ダイクストラ、DP の基本問題(フィボナッチ・ナップサック)が必修です。これらを「白紙から書ける」状態にすると、応用問題が一気に解けるようになります。

次のレッスン

次は ロードバランサ (L4 / L7) で、世界中のエッジで配信する CDN と Anycast ルーティングを学びます を学びます。

事前確認 — 進む前に次の 3 つができることを確認しましょう。

  1. CDN / Anycast の要点を自分の言葉で説明できる
  2. このレッスンの最小コード (または操作手順) を見ずに書ける
  3. 練習問題やクイズで間違えた箇所を読み直して理解した

理解度チェック (30 秒)

Q. CDN / Anycast とは何か、1 文で説明してください。

この章のポイント

A. 本文の「このレッスンで分かること」または冒頭の説明文を見直し、自分の言葉で要約できれば OK。詰まったら本レッスンの最初の H2 セクションを読み返してみましょう。

関連レッスン

復習ミニクイズ

Anycast の特徴として正しいものはどれですか