BLOG ブログ


2023.12.14 TECH

CDNについて調べてみた

多くの方は、普段特に意識するもことなくPCや携帯端末などからウェブサイトにアクセスしています。
利用者目線で考えるとリンクをクリックするとそのサイトにアクセスできるということは当たり前のことであり、裏側でどういう処理が走った結果そのウェブサイトが表示されているかという見えない部分にはそういったお仕事をされていらっしゃる方以外は、なかなか馴染みはないのではないでしょうか。

今回は、ウェブサイトを効率的に表示させるために導入されている仕組みの一つである「CDN」について調べてみました。

それではいってみましょう。

ウェブサイトはどうやって見られているか

CDNのお話をする前に、そもそもウェブサイトというのはどのように見られるかについて簡単に紹介をできればと思います。
ものすごく大雑把な説明となりますが、以下の図のようなイメージとなります。

基本的にウェブサイトごとにウェブサーバーというものが置かれています。
このウェブサーバーに対してクライアント(各個人端末)からウェブサイトを見せてほしいというリクエストを行い、ウェブサーバー側で問題なければクライアントのリクエストを承諾することでクライアントの端末でウェブサイトを表示できるという仕組みになります。
このやり取りがボタンを押して表示されるまでに超高速で行われています。すごいですよね。

では上記を念頭においた上で次の場合をご覧ください。

実際にはそのウェブサーバーにアクセスする人は何人もいるので上記のような処理が走ります。
このような各クライアントのリクエストに一つ一つ対応をしているとサーバーは疲弊をしてしまい、最悪ダウンしてしまうといったことになってしまいます。
それこそ大手サイトであれば毎秒世界中からアクセスがあるわけで膨大な処理が必要になってしまいますのでこれではいけません。

このような事態を解消するためにある仕組みの一つが今回ご紹介するCDNとなるのです。

CDNとは

CDNは正式名称「Content Delivery Network」というウェブサイトやウェブコンテンツを効率的に見られるようにするためのネットワークの仕組みとなります。
これがあるとどうなるかというのが、以下のような図になります。

CDNという大きい丸の中にいくつかサーバーがあり、クライアントはそのサーバーと通信していることがわかるかと思います。この円の中にあるサーバーをキャッシュサーバーと呼びます。
(キャッシュとは、ウェブサイトのデータなどを一時的に保存し、再表示する際にこのデータを再利用して効率的に表示するといった機能になります。)

そしてキャッシュサーバーはウェブサーバーのデータを予め一定の間隔で更新・保持しておくことができます。
このようなウェブサーバーの情報を集積したキャッシュサーバーを複数台設置し、各クライアントから一番近いキャッシュサーバーにアクセスさせ、保持したデータでウェブサイトを表示させることで負荷分散を行う仕組みがCDNとなります。

この仕組みによりクライアントはウェブサーバーを直接見に行くことがなくなり、また複数台あるキャッシュサーバーにそれぞれアクセス分散することからアクセス集中が抑えられるといった効果があります。

この仕組みは動画配信系、自治体などの公共、グローバルなサイトといった負荷が大きくなりがちなケースなど多くの場面で利用されています。

CDNを利用するメリット

キャッシュサーバーを用いることでサーバーに対してウェブサーバーへの負荷を低減する仕組みがCDNとなりますが、実は負荷分散以外にもCDNを利用するメリットがあります。

  • パフォーマンスの向上
    CDNではクライアントに一番近い場所のキャッシュサーバーを読み込みにいくため、Webサイトの読み込み時間が大幅に短縮されることからパフォーマンスの向上が見込まれます。
  • 信頼性の向上
    CDNではネットワークのデータ量の負荷のバランスをとり、なるべく1つのサーバーに負荷がかからないようにすることができます。また、仮にアクセス過多などで1台のサーバーが停止しても、バックアップサーバーに引き継ぐことができることから信頼性の向上が見込まれます。
  • コスト削減
    CDNではウェブサイト上のコンテンツの多くをキャッシュし、そのキャッシュからコンテンツをクライアントへ提供するため、大本になっているウェブサーバーは同じコンテンツを何度も配信する必要がなくなります。
    エコな仕組みと言えますし、これにより通信コストの削減が見込まれます。
  • サイバー攻撃への耐性
    CDNでは負荷分散することができるため、DoSやDDoSといった大量のデータ送受信を意図的に起こし、アクセスできないようにする悪質な攻撃からウェブサーバーを保護することに適している仕組みとなります。

CDNを利用するデメリット

色々なメリットがあるCDNですが、デメリットも存在します。

  • キャッシュ非推奨コンテンツの配信
    CDNは基本的に、ウェブサーバーから配信されたコンテンツをそのままキャッシュしクライアントへ配信します。しかし、アクセスした人によって内容が変わるようなコンテンツを配信したいといった場合、Aさん向けのコンテンツをBさんやCさんにも配信してしまうといった恐れがあります。
  • 更新前コンテンツの配信
    CDNがコンテンツをキャッシュしている期間のことを「TTL」等と呼びます。この期間が長い場合、ウェブサーバー側でコンテンツの更新を行っても、TTLが更新されるまでの間、コンテンツ更新前のキャッシュがCDNに存在する形となるため、古い情報が配信され続けてしまいます。
  • アクセスログの蓄積不可
    CDNを利用すると、アクセスログがウェブサーバーではなくCDNに蓄積されます。これは、「このウェブサイトでだれがどのような投稿をしたか」などといったアクセス解析などに影響を及ぼす可能性があります。
  • フィーチャーフォン対応
    フィーチャーフォンは現在主流の仕組みではない関係もあり、アクセスに対応するためには設定が別途必要となる場合があります。

上記は代表的なものであり、提供されるCDNサービスによってはクリアされていることもありますが懸念点として押さえておく必要はありそうです。

まとめ

今回はわかりやすいようにウェブサーバーを例にあげて紹介をさせていただきました。
実際には動画配信についてはストリーミングサーバーを利用するなど、大本となるサーバー(オリジンサーバー)は多岐にわたります。

CDNはウェブコンテンツを扱う上で色々なサーバーにも対応することができ、メリットがあります。
ただし、その裏では如何にデメリットを抑えつつ運用していくかといった部分で非常にシビア・丁寧な設計が求められそうです。

ここまでご覧いただき、ありがとうございました。


Nariki
ライター名:Nariki
2021年6月入社のwebディレクターです。
わかりやすい、親しみやすいブログ記事をかけるよう頑張ります!

主な記事一覧へ

一覧に戻る


LATEST ARTICLE 最新の記事

CATEGORY カテゴリー