概要
AWSの勉強をしている中で、CDNについて調べる機会があったので基本的な部分だけまとめてみます。
CDNとは
- Content Delivery Network の略。
- 「Content」電子的媒体の情報、デジタルデータのこと。
- 「Delivery」配達すること。ここではコンテンツを配信、配達すること。
- 「Network」ネットワーク。ここでは仮想ネットワークのことを示す。
- 配信を行う為のサーバーを結んだ仮想ネットワーク。
CDNを使用すると何が嬉しいのか
- ファイルを高速で配信できる。(国際配信の場合)
- 安定したファイルの配信が継続できる。
- 配信コストが削減できる
CDNの仕組み
- ざっくり言うとCDNは三つの要素によって構成される。
- オリジンサーバー
- CDNサーバー
- DNS
オリジンサーバー
- 元となるサーバーのこと。
- ユーザーとは直接繋がることはない。
CDNサーバー
- CDNサーバーの構成方法は二通り存在する。
- キャッシュサーバー
- ミラーサーバー
- CDNサーバーは複数台配置される。
キャッシュサーバー
- こちらが主流。
- オリジンサーバーとユーザーの間に配置され(論理的)、ユーザーからのリクエストを受け付ける。
- ユーザーからリクエストされたコンテンツをオリジンサーバーから取得する。
- コンテンツをユーザーにレスポンスとして渡す。
- サーバーの内部ストレージにコンテンツをキャッシュ(保存)する。
- 一度キャッシュしたコンテンツがリクエストされた場合は、キャッシュサーバーから配信する。
- コンテンツの更新に対応するためにキャッシュの生存時間(TTL)の設定をする必要がある。
- キャッシュを削除するとなった場合、全てのキャッシュサーバーから削除するのには時間がかかる。
ミラーサーバー
- オリジンサーバーとユーザーの間に配置され(論理的)、ユーザーからのリクエストを受け付ける。
- オリジンサーバーと常に同期を取り、あらかじめすべてのファイルをコピーしておく。
- オリジンサーバーに更新が有っても、常に同期を取っているので最新ファイルが配信可能。
- オリジンサーバーに更新が多いとオリジンサーバーとCDNサーバーの通信量がどうしても増える。
- ユーザーからのアクセスがあれば、オリジンサーバーにアクセスすることなくコンテンツを配信する。
DNS
- DNSの設定をすることで、CDNの仕組みが実現している。
- DNSのCNAMEレコードを利用することで、オリジンサーバーのURLへのアクセスをキャッシュサーバーに向ける。
- リダイレクトとは異なる
所感
CDNは思っていたよりもかなり複雑。