CDN について自分が学んだ内容をまとめました。
初心者向けの記事となります。
CDN とは
CDN とは「Content Delivery Network」の略で、複数のサーバーを世界中に設置し、ユーザーに物理的に近いサーバーからコンテンツ配信をする仕組みです。
CDNの基本構成
CDN にはオリジンサーバーとエッジサーバーという2種類のサーバーがあります。
- オリジンサーバー:コンテンツの大元となるサーバー
- エッジサーバー:世界各地に分散配置されたキャッシュサーバー
オリジンサーバーの内容をエッジサーバーがキャッシュ(一時保存)することで、ユーザーからのリクエストを各エッジサーバーで処理できるようになります。
例えば、日本のユーザーがアメリカのサーバーに直接アクセスするよりも、日本国内のCDNサーバーにアクセスするほうが応答速度は早くなります。
CDN の何が良いのか?
1. コンテンツの配信速度の向上
ネットワーク上のやり取りでも、遠く離れたサーバーとやり取りをするとレスポンスが返ってくるまで時間がかかります。
物理的に近いサーバーから配信をすることで、ユーザーへコンテンツを配信するまでの時間を短縮することができます。
2. 負荷分散による安定性の向上
複数のサーバーでリクエストを処理できるので、オリジンサーバーにリクエストが集中せず負荷分散をすることができます。
これにより、以下のメリットが得られます。
- サーバーダウンのリスク軽減
- 急激なアクセス増加への対応
- システム全体の安定性向上
注意点
1. 静的コンテンツの配信がメイン
CDNは主に以下のような静的コンテンツの配信に適しています。
- 画像ファイル(jpg、png など)
- 動画ファイル
- CSSやJavaScriptファイル
- PDFドキュメント
一部のCDNサービスではエッジサーバー上でプログラムを実行してユーザーごとのコンテンツを配信する機能(Edge Computing)を提供していますが、基本的には静的コンテンツの配信がメインだと理解しています。
2. 古いコンテンツが表示されるリスク
CDNはコンテンツをキャッシュしてユーザーのリクエストを処理しています。
そのため、オリジンコンテンツが更新された後も古いデータが配信されてしまうリスクがあります。
対策
- キャッシュの保持期間を適切に設定する
- 重要な更新時はキャッシュをクリアする
- バージョン番号をファイル名に含める
3. キャッシュによる情報漏洩のリスク
個人情報や機密情報を誤ってキャッシュ対象にしてしまうと、情報漏洩につながる可能性があります。
対策
- 個人情報を含むページはキャッシュ対象から除外
4. アクセスログの取得について
通常、Webサイトにユーザーがアクセスするとオリジンサーバーにアクセス情報が記録されます。
CDNを利用すると、キャッシュされたコンテンツへのアクセスはエッジサーバー側だけに記録されるため、オリジンサーバーですべてのアクセスを把握することが困難になる場合があります。
しかし、多くのCDNプロバイダー(CloudFlare、AWS CloudFront、Akamaiなど)は、エッジサーバーのアクセスログを取得する機能を提供しています。
まとめ
CDNは、世界中に配置されたサーバーネットワークを活用して、コンテンツ配信を高速化・安定化する仕組みです。
CDN導入のメリット
- 配信速度の向上によるユーザー体験の改善
- 負荷分散によるシステムの安定性向上
注意すべきポイント
- 主に静的コンテンツの配信に適している
- キャッシュ管理を適切に行う必要がある
- 個人情報などの機密データの取り扱いに注意
参考