LoginSignup
5
2

More than 1 year has passed since last update.

CDNを何も知らない人に朗報です(後編)

Posted at

この記事はCDNを何も知らない人に朗報です(前編) の後編の記事になります。

キャッシュファイルの設定

CDNを利用することでオリジンサーバーへのアクセスをキャッシュサーバーが肩代わりして負荷を軽減するお話をしましたが、どうやってキャッシュサーバーからコンテンツを配信できるようになるのでしょうか。
本来オリジンサーバーへのアクセスであれば以下のようになると思います。

(後編)CDN_DNS01.png

キャッシュサーバーがコンテンツを配信する場合は以下のような感じになると思います。

(後編)CDN_DNS02.png

ここで関係してくるのは、DNSの設定になります(DNSについてはこちらを参照)。

DNSの設定

先ほどの図にDNSの設定を追記します。

(後編)CDN_DNS_Cname01.png

いきなり出てきたCNAMEレコードですが、例を出して解説します。
また、説明に際して必要なAレコードについても加えて説明します。

例: www.originexample.jp(オリジンサーバー)とcache.example.com(キャッシュサーバー)というドメインがあるとする。

DNSのAレコードの設定.
 www.originexample.jp IN A 192.168.0.1

AレコードはドメインをIPアドレスに置き換えるレコードです。
したがって上記のAレコードの設定は「 www.originexample.jp のIPアドレスは192.168.0.1です」という意味になります。
 →www.originexample.jpのコンテンツを取得する場合、IPアドレス「192.168.0.1」にアクセスしてコンテンツを取得します。

DNSのCNAMEレコードの設定.
 www.originexample.jp IN CNAME cache.example.com

CNAMEレコードはドメインを別のドメインに置き換えるレコードです。
したがって上記のCNAMEレコードの設定は「www.originexample.jpのドメインを、cache.example.comというキャッシュサーバーのドメインに転送します」という意味になります。
→ www.originexample.jp のコンテンツをcache.example.com(キャッシュサーバー)から取得できます。

ここまでの解説を踏まえてwww.originexample.jpのサイトのページを見たい場合、CDNを経由して表示する流れは以下の図のようになります。
(見たいページはoriginIndex.htmlとします)

(後編)CDN一連の流れ.png

(補足: 上図の②なのですが、キャッシュデータを保持している時間はキャッシュ時間の設定により異なります。
例えばキャッシュ時間1hなら、キャッシュして1hの間はファイルデータをオリジンに取得しに行かず、キャッシュデータを返します。
CDNを何も知らない人に朗報です(前編)で説明しましたが、キャッシュサーバーの保持しているデータが古くなり、そのデータをユーザーに返してしまうことがあります。)

CNAMEレコードの設定によりキャッシュサーバーからファイルデータを返すというのは分かりましたが、
ここで気になるのは「どんなファイルでもキャッシュするのか」ということです。

キャッシュファイルの選定

「キャッシュすればオリジンサーバーの負荷が軽減されるし高速表示されるなら全部キャッシュすればいいじゃん」、というわけではなく、どのファイルをキャッシュすべきか・どのファイルをキャッシュすべきでないか選定する必要があります。
キャッシュの対象となるファイルとキャッシュすべきでないファイルについて説明します。

キャッシュ対象となるファイル

キャッシュすべきファイルは個人情報を扱わないファイル、かつ帯域を使いすぎている動画などのメディアファイルといったファイルが選定の対象となります。
もし、個人情報を扱わないサイトならばすべてのファイルをキャッシュする設定でもよいかと思います(その分費用はかかりますが)。

キャッシュしてはいけないファイル

前述していますが、個人情報を扱うファイルになります。
例えば、会員情報などを保有しているサイトで自分の登録情報を閲覧した人がいたとします。そのHTMLがキャッシュされて他の方に配信されて閲覧されてしまうと個人情報が漏洩してしまいます(これを「キャッシュ事故」と呼びます)。

おまけ: CDNサービスを提供している会社

他にもあると思いますが、気になったら調べてみてください。

Amazon CloudFront

さくらのCDNウェブアクセラレータ

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2