コンピューターサイエンス:アルゴリズム / OS / ネットワーク / DB
CDN の仕組みと Anycast
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 は中心 (オリジン) と末端 (エッジ) で役割を分担します。
- オリジン — 実体のあるサーバー。コンテンツの「正本」を持つ。
- エッジ — 世界中に分散したキャッシュサーバー。オリジンから取得したコンテンツを保持し、ユーザーに直接返す。
ユーザーがリクエストすると、エッジが下記の判断をします。
- エッジにキャッシュがある → 即座にエッジから返す (キャッシュヒット)
- エッジにキャッシュがない → オリジンに問い合わせて取得、エッジにも保存してユーザーに返す (キャッシュミス)
キャッシュヒット率を高めると、オリジンへの負荷が劇的に下がり、レスポンスも速くなります。
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 つの IP が複数のサーバーに対応し、最寄りが応答する
- 1 つの IP が 1 つのサーバーに対応する
- 1 つの IP が複数の受信者全員に届く
- サーバーが起動するたびに IP が変わる
答えを見る
正解は 1。Anycast は同一 IP を複数拠点で広告し、BGP のルーティングで最寄りが応答する方式。1:1 は Unicast、1:全員は Multicast です。
出典 (References)
- Cloudflare Learning — What is a CDN?
- Cloudflare Learning — What is Anycast?
- IETF RFC 4786 — Operation of Anycast Services
最終更新: 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 つができることを確認しましょう。
- CDN / Anycast の要点を自分の言葉で説明できる
- このレッスンの最小コード (または操作手順) を見ずに書ける
- 練習問題やクイズで間違えた箇所を読み直して理解した
理解度チェック (30 秒)
Q. CDN / Anycast とは何か、1 文で説明してください。
A. 本文の「このレッスンで分かること」または冒頭の説明文を見直し、自分の言葉で要約できれば OK。詰まったら本レッスンの最初の H2 セクションを読み返してみましょう。
関連レッスン
復習ミニクイズ
Anycast の特徴として正しいものはどれですか