CDNを利用する上でDNSの設定は避けては通れません。その中でもDNSレコードの一つであるCNAMEは、CDNと切っても切れない関係にあります。今回は、CDNとCNAMEの関係、また今さら聞けないCNAMEについて解説していきたいと思います。
大規模なECサイトでは毎日、何百万もの商品画像のリクエストが行われます。しかし、毎回オリジンサーバーから配信していては、オリジンサーバーの負荷が高くなり、またクライアントとの距離による遅延により、パフォーマンスの低下を招くかもしれません。
そこで必要になるのがCDNです。CDNは、クライアントからオリジンサーバーまでの経路を短縮し、クライアント近くのCDN(キャッシュサーバー)からオリジンサーバーに代わって、コンテンツ配信を行います。それにより、Webコンテンツを高速かつ効率的に配信することを可能にします。また、オリジンサーバーの負荷も下げることが可能になりユーザー、事業者の双方にとってメリットをもたらすものとなります。
まず、CDNがどのように動作するかを説明する前に、HTTPにおけるサーバーとクライアントのやり取りについて簡単に説明したいと思います。HTTPプロトコルは、HTTPリクエストとHTTPレスポンスがペアになり行われるという大原則があります。
当然クライアントは、オリジンサーバーに向かってリクエストを送信しているため、CDNを利用するためは、オリジンサーバーに向かっているHTTPリクエストをCDNへ向ける必要があります。そこで利用するのが、DNS(CNAME)になります。
インターネットを利用するとき、通信するデバイスのIPアドレスに対して通信がおこなわれます。しかし、IPアドレスは、IPv4だけでも2進数の32桁、2の32乗で約43億個あり、覚えることは不可能です。そこで、分かりやすく覚えやすい文字で表現した唯一無二のドメイン(URL)を用いてインターネットにアクセスをします。
そこでIPアドレスとドメインを紐づけるのがDNS(Domain Name System)になります。DNSは名前解決をするものですが、置換える種類によっていくつかのレコードと呼ばれるものが存在します。下記は、代表的なDNSレコードになります。
レコードタイプ |
機能 |
Aレコード |
Aレコードは、AddressのAの略称になります。 IPv4でのホスト名とIPアドレスの紐づけを行います。 |
MXレコード |
MXレコードは、Mail Exchangeの略称になります。 メールサーバーのホスト名を記載するレコードになります。 |
TXTレコード |
TXTレコードは、Textの略称になります。 ドメインに関連するテキスト情報を記載するレコードになります。送信元偽装が可能な送信メールサーバーなどのドメイン認証であるSPF/DKIMなどの設定でよく利用されます。ドメイン認証することで迷惑メールなどの振り分けを防止することができます。 |
CNAME |
CNAMEレコードは、Canonical Nameの略称になります。 Canonicalとは、標準な、基準的なという意味があり、IT業界では正規化などの意味になります。正規ホスト名を別名に定義し、別のドメイン名に転送するときに利用されます。 |
CNAMEは、上記で記載したように別名に対して転送するレコードです。CNAME レコードは通常、www や mail などのサブドメインを、そのサブドメインのコンテンツをホストするドメインにマッピングするために使用されます。例えば、CNAME レコードを使用して、Webサイトのアドレス www.sample.jp をドメイン sample.jp の実際のウェブサイトにマッピングできます。
CDNでは、顧客のもっているFQDN(URL)を変えずに通信させるためにCNAMEを利用します。これにより、クライアントからの通信をCDNに向けます。
また、CDN事業者は、FQDNをGSLB(Global Server Load Balancing:広域負荷分散)を使用することにより、クライアントの近くに存在するキャッシュサーバーから配信することで、配信速度の効率化を図ることができます。
Q. CDNの利用にあたり、DNSの設定変更をしますよね。その時にWebサイトが閲覧できなくなる時間はありますか?
A. 発生しません。DNSがAレコードからCNAMEレコードに代わってもCDNにコンテンツがなければ、オリジンサーバーに問い合わせ配信します。またDNSが伝搬するまでは、TTLの設定に従ってそれまではオリジンサーバーに問い合わせることになります。CDNはリバースプロキシとして動作するため、リクエストを受け取って、自身にコンテンツが存在しない場合は、オリジンサーバーから取得します。
Q. DNSの切り替わりにはどれくらい時間がかかりますか?
A. 基本的にはTTL(Time to Live:保持期間)の設定に従います。設定値は、60~86400秒、つまり1分~24時間になります。通常は数時間で伝達されますが、上位のDNSなどすべてのインターネットに伝達されるまで最大48時間かかる場合もあります。
いかがでしたでしょうか?
CDNとDNSは密接な関係があります。オリジンサーバーからCDNに対して通信を振り返るため重要な技術になります。CDN導入についてのご相談、ご質問はお問い合わせフォームより、お問い合わせください。