CDN
Content Deliver Networkは世界中に配置されたプロキシサーバーのネットワークがユーザーに一番地理的に近いサーバーからコンテンツを配信するシステム 一般的に、HTML/CSS/JS、写真、そして動画などの静的ファイルがCDNを通じて配信される
https://gyazo.com/64203d6c9ef9e9aa62bea576882a9ac2
CDNを用いてコンテンツを配信するとパフォーマンスが向上する理由
ユーザーは近くにあるデータセンターから受信できる
バックエンドサーバーはCDNが処理してくれるリクエストに関しては処理する必要がなくなる
CDNのパターン
プッシュCDN
サーバーデータに更新があった時には必ず、新しいコンテンツを受け取る方式
コンテンツを用意し、CDNに直接アップロードし、URLをCDNを指すように指定するところまで、全て自分で責任を負う形
コンテンツがいつ期限切れになるのか更新されるのかを設定することができる
コンテンツは新規作成時、更新時のみアップロードされることでトラフィックは最小化される一方、ストレージは最大限消費される
コンテンツは定期的に再びプルされるのではなく、CDNに一度のみ配置される
使い所
トラフィックが少ない、または頻繁にはコンテンツが更新されないサイト
プルCDN
あるコンテンツに最初のリクエストがあった時に、新しいコンテンツをサービスのサーバーから取得します。コンテンツは自分のサーバーに保存して、CDNを指すURLを書き換える
結果として、CDNにコンテンツがキャッシュされるまではリクエスト処理が遅くなる
プルCDNはCDN 上でのストレージスペースを最小化する 有効期限が切れたファイルが更新前にプルされてしまうことで冗長なトラフィックに繋がってしまう可能性がある
使い所
大規模なトラフィックのあるサイト
トラフィックの大部分は最近リクエストされ、CDNに残っているコンテンツにアクセスするものであることが多いから
欠点
CDNのコストはトラフィック量によって変わる
CDNを使わない場合のコストと比較するべき
TTLが切れる前にコンテンツが更新されると陳腐化する恐れがある
CDNでは静的コンテンツがCDNを指すようにURLを更新する必要がある
参考