「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
- 大手Akamaiが1990年代に提唱したといわれているコンテンツを配信するためのネットワーク。
- 単なるスケールアウトではなく、距離的に一番近い場所にあるサーバを自動で選択できる。
- トラフィック分散
LBからのOUTトラフィックがボトルネックとならない構成。
- 高可用性(対障害性)
回線、ロードバランサーが冗長化された構成
タイプ †
プッシュ型 †
配信したいファイルをアップロードして配信。
プル型 †
キャッシュ・サーバが、オリジン・サーバから
ファイルを取得し自分の中に一定時間キャッシュ。
- オリジン・サーバの可用性対策が必要になる。
- HTTPの仕組みを理解して使用する必要がある。
- キャッシュ条件を理解して使用する必要がある。
P2P型 †
P2P型ファイル共有ソフトみたいな仕組み。
構成 †
サーバ構成 †
オリジン・サーバ †
キャッシュ・サーバ †
DNSとの関係 †
地理分散 †
CDNはDNSの仕組みを上手く利用し
アクセス元から一番近いエッジ・サーバのIPアドレスを応答後、
最終的にネットワーク的に近い場所にあるエッジ・サーバへ誘導
CNAME †
- CDNベンダーが提供するサブドメインに
CNAMEレコードを定義する方式が必須になる。
- 以下のようなCNAMEレコードは設定ができない。
- 同じドメイン名で複数CNAME設定すること
- CNAME以外のレコード(Aレコード)との同居
- MXレコードとの同居
- NSレコードとの同居
- Apexドメイン
ホスト部が無いドメインでNSレコードが存在するため。
- 上記の回避策
- Aliasレコード(あくまでDNSベンダー独自実装)
- CNAME Flattening対応DNSサービス
機能 †
ドメイン †
別のドメインで運用 †
Webサイトと配信用のドメインを分けた場合
- 既存のWebサイトには一切影響がないため切り分けや導入が楽。
- 配信用ドメインだけ書き換える必要があるため手間が発生する。
※ ≒ プッシュ型
同じドメインで運用 †
※ ≒ プル型
キャッシュ †
条件 †
- HTTPヘッダ毎にキャッシュしたり、
- キャッシュする・しない。
をコントロール。
- HTTP Method
多くは、GETとHEADメソッド以外はキャッシュしない。
- パス別
- 特定のパスのコンテンツはキャッシュする・しない。
- 特定の拡張子(JPG・PNG・MP4)のコンテンツはキャッシュする・しない。
- Cookie別
認証Cookieが付与されている場合はキャッシュしない。
- User-Agent別
User-Agent毎にキャッシュ
時間 †
キャッシュ・コントロール?で制御
- 最大XX(e.g.24)時間キャッシュ
- 別途HTTPヘッダの値に従う
静的コンテンツ配信化 †
動的コンテンツ配信を静的コンテンツ配信に近づける
削除方法 †
キャッシュ削除方法がある。
- シングルパージ(単一ファイルのキャッシュ削除)
- 正規表現パージ(正規表現で細かく指定可能)
- タグパージ(レスポンスヘッダにタグでグループ化されたキャッシュ削除)
VOD配信 †
動画配信をCDNで負荷分散する
ダウンロード配信 †
プログレッシブ配信 †
RTMP形式のTCP配信 †
HLSストリーミング配信 †
セキュリティ対策 †
WAF †
- 裏に、WAFをかます(CDN+WAF)。
- CDN+WAFの場合、WAF単体では難しいDDos攻撃も防御
- この際、ネガティブレスポンスをキャッシュしない。
圧縮・変換 †
プッシュ配信
参考 †
REDBOX Labo †