
【社内SE・総務部】会社ホームページにCDNは必要なのか?
私は公共交通機関の会社でシステム担当をしている。
ある日いつもお世話になっているベンダーの会社から「CDNを入れないか」と営業があった。
実際に営業を受けたのはホームページを運営している総務部でその流れで私に確認依頼が飛んできた。
そこでCDNについて調べてみることにした。
CDNとは
CDNとは「Contents Delivery Network」の略である。簡単にいうとホームページなどのWebコンテンツをより早くユーザーが見ることができるようなネットワークである。
CDNを利用すれば会社のホームページにアクセスが集中したり、海外のような物理的に離れた場所からのアクセスがあった状況でも早くユーザーは快適にホームページを見ることができるといったものだ。
CDNの仕組み
通常のホームページでは、
ユーザーは会社ホームページのサーバーに直接アクセスしている。
<イメージ>
🧑🧑🧒🧒🇯🇵→→→→💻(ホームページサーバー)
🧑🧑🧒🧒🇺🇸→→→→→→💻(ホームページサーバー)
※海外だと距離があるのでその分アクセスに時間がかかる
CDNを取り入れたホームページでは、
ユーザーと会社のサーバーの間にキャッシュサーバーが入る。
※キャッシュ:インターネット上の情報を一時的に保存する仕組み
→これを利用して次回閲覧時に早くアクセスできる
<イメージ>
🧑🧑🧒🧒🇯🇵→→💻(キャッシュサーバー)⇄⇄💻(ホームページサーバー)
🧑🧑🧒🧒🇺🇸→→💻(キャッシュサーバー)⇄⇄⇄⇄💻(ホームページサーバー)
※海外にいるユーザーは近くのキャッシュサーバーにある情報をみることができるのでアクセスに時間がかからないし、ホームページサーバーへの直接のアクセスが減る。
もう少し踏み込むと、、、
ユーザーは何気なく会社のホームページにアクセスしているが、CDNを導入している場合は、キャッシュサーバーからユーザーに対して情報を見せている。
※DNSがアクセスをキャッシュサーバーから返すように誘導している。→DNSへの登録が必要
CDNを実装したら、まずキャッシュサーバーはホームページのコンテンツを覚えないといけない。それにはまず1人目のアクセスが必要だ。
👤(A)→💻(キャッシュサーバー)⇄⇄⇄⇄💻(ホームページサーバー)
1人目のアクセスによって、キャッシュサーバーは会社のホームページのコンテンツを覚える。そのため1人目のアクセスには時間がかかる。
その後2人目以降のユーザーはキャッシュサーバーからコンテンツにアクセスできるので早くアクセスできる。
👤(B)→💻(キャッシュサーバー)
キャッシュサーバーに保存されているコンテンツの情報は一定のタイミングで更新確認を行う。
ホームページのサーバーにキャッシュサーバーがリクエストを行い、更新情報があればホームページのサーバーからキャッシュサーバーにコンテンツ情報が送られる。
一定のタイミングで行う更新確認までの時間を「TTL」という。
①TTLの時間になったらキャッシュサーバーからホームページサーバーにリクエストを送る。
💻(CS)→→→TTLのタイミング→→→💻(HS)
CS:キャッシュサーバー
HS:ホームページサーバー
②更新情報があればホームページサーバーからキャッシュサーバーにコンテンツを送る。
💻(CS)←←←←←←←←←←←←←←💻(HS)
CDNのメリット
・会社のホームページのサーバーに負荷がかかりにくい
・ユーザーがアクセスできる速度が上がる
・SEO対応策につながる
・DoS/DDoS攻撃に強くなる
・従量課金制が可能
CDNのデメリット
・キャッシュ(パソコンやスマートフォンなどのデバイスがインターネット上の情報を一時的に保存する仕組み)を利用してコンテンツを配信するので最新のコンテンツがすぐに反映されない時がある。
・クラウドサービスへのコンテンツの転送が発生するのでプライバシーやセキュリティのリスクは生じる
・設定が煩雑
まとめ
CDNを導入することで、セキュリティ対策ができることは間違いない。
しかも従量課金制の支払いができることも強みであると思う。
ただ、フューチャーフォン(ガラ携)で見れるようにするには、別途オプション料金がかかる場合がありそうだ。お年寄りがユーザーに多く、その層をカバーするとなると料金が高くなる可能性もあるので検討しないといけない。
また、サービスごとにキャッシュサーバーが置かれている数や場所が異なるそうなので自分たちがホームページをどのエリアに見せたいかをまずは検討する必要がありそうだ。
