「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
- 大手Akamaiが1990年代に提唱したといわれているコンテンツを配信するためのネットワーク。
- 単なるスケールアウトではなく、距離的に一番近い場所にあるサーバを自動で選択できる。
メリット・デメリット †
メリット †
トラフィック分散 †
主にパフォーマンスの向上
- LBからのOUTトラフィックがボトルネックとならない構成。
- サーバのCPU負荷を低減できる
転送容量を気にしなくていい †
- 月間転送容量、1日の転送容量などの制限の影響を受けない。
- 転送容量の従量課金が無い(出力は無課金、入力のみの課金)
高可用性(対障害性) †
回線、ロードバランサーが冗長化された構成で、DDoSにも強い。
ファイル再配置の必要なし †
プル型の場合、オリジン・サーバのファイルを使って負荷分散できる。
その他、様々な機能を利用可能。 †
デメリット †
キャッシュ事故 †
個人情報が表示されたページをキャッシュするなど、誤キャッシュの事故は継続的に発生
キャッシュでファイル更新が反映されない †
クライアント側でキャッシュされると、ファイル更新が反映されない
キャッシュ削除の反映に時間がかかる場合がある †
ものによってはキャッシュサーバからファイルを削除するのに時間がかかる場合がある
レイヤが増える †
- 障害点が増える。
- キャッシュしない場合は効率が悪くなる。
アクセスログが取れない †
CDNによっては、機能を提供している。
タイプ †
プッシュ型 †
配信したいファイルをアップロードして配信。
プル型 †
キャッシュ・サーバが、オリジン・サーバから
ファイルを取得し自分の中に一定時間キャッシュ。
- オリジン・サーバの可用性対策が必要になる。
- HTTPの仕組みを理解して使用する必要がある。
- キャッシュ条件を理解して使用する必要がある。
P2P型 †
P2P型ファイル共有ソフトみたいな仕組み。
構成 †
┌─> DNSで名前解決。
│
クライアント ─> キャッシュ・サーバ ─> オリジン・サーバ
オリジン・サーバ †
元のデータが入っているサーバ
キャッシュ・サーバ †
- データを代わりに配信してくれるサーバ
- エッジ・サーバと呼ぶ場合もある。
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ストリーミング配信 †
現在主流のAppleが提唱したストリーミング・プロトコル
セキュリティ対策 †
DDos対策 †
CDNには、DDos対策機能が組み込まれていることが多い。
CDN+WAF †
CDNには、WAF 機能が組み込まれていることが多い。
- 裏に、WAFをかますことで、セキュリティ対策が可能。
- WAF単体では難しいDDos攻撃も防御できる。
認証 †
- オリジン・サーバの仕組みを流用できないので、
- CDN毎に使用できる認証の仕組みがある。
圧縮・変換 †
Gzip圧縮 †
HTTP圧縮ではGzip圧縮が一般的
Brotli圧縮 †
BrotliはGzipよりも圧縮率が高い。
転送量削減 †
WEBP圧縮 †
非可逆圧縮のJPEGや可逆圧縮のGIF、PNGの置き換えを意図する規格
- 非可逆圧縮モードでJPEGと比較して25-34%小さくなり、
- 可逆圧縮モードでPNGと比較して28%小さくなる。
プッシュ配信
参考 †
さくらのナレッジ †
REDBOX Labo †
マイクロソフト系技術情報 Wiki †