コンテンツデリバリーネットワーク
A Content Delivery Network (CDN) is a geographically distributed network of proxy servers and their data centers, designed to provide high availability and p...
コンテンツデリバリーネットワーク(CDN)は、プロキシサーバーとそのデータセンターの地理的に分散されたネットワークです。CDNの目標は、エンドユーザーに対してサービスを空間的に分散させることにより、高い可用性とパフォーマンスを提供することです。CDNは、コンテンツ(ウェブページ、画像、動画、スタイルシートなど)をエッジロケーション、つまりコンテンツをリクエストするユーザーに近い場所に配置されたサーバーにキャッシュします。ユーザーがコンテンツをリクエストすると、CDNはそのリクエストを最も近いエッジサーバーに誘導し、レイテンシを削減してロード時間を改善します。これにより、オリジンサーバーからのトラフィックがオフロードされ、ボトルネックになるのを防ぎ、信頼性が向上します。CDNはまた、DDoS緩和、エッジでのTLS/SSL終端によるセキュリティ向上、最適化されたルーティングなどのメリットも提供します。主要なCDNプロバイダーには、Akamai、Cloudflare、Amazon CloudFront、Google Cloud CDNなどがあります。これらは、グローバルに高速で信頼性が高くスケーラブルなウェブエクスペリエンスを提供するために不可欠です。
graph LR
Center["コンテンツデリバリーネットワーク"]:::main
Pre_dns["dns"]:::pre --> Center
click Pre_dns "/terms/dns"
Pre_http["http"]:::pre --> Center
click Pre_http "/terms/http"
Center --> Child_edge_computing["edge-computing"]:::child
click Child_edge_computing "/terms/edge-computing"
Rel_load_balancing["load-balancing"]:::related -.-> Center
click Rel_load_balancing "/terms/load-balancing"
Rel_cloud_computing["cloud-computing"]:::related -.-> Center
click Rel_cloud_computing "/terms/cloud-computing"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 5歳でもわかるように説明
世界中の図書館に人気のある本のコピーがたくさん保管されていて、人々が1つの中心地から届くのを待つのではなく、一番近い図書館からすぐに本を手に入れられるようなものです。
🤓 Expert Deep Dive
CDNは、Time-to-Live(TTL)ベースの有効期限切れやキャッシュ無効化メカニズムなど、さまざまなキャッシング戦略を使用して運用されます。エッジサーバーは、特定の期間コンテンツをキャッシュするように構成したり、リクエストに応じて動的に更新されたコンテンツを取得するように構成したりできます。高度なCDNは、Anycastなどの洗練されたルーティングアルゴリズムを採用し、ネットワーク条件、サーバー負荷、地理的な近接性に基づいて最適なエッジサーバーにユーザーを誘導します。また、ネットワークエッジで悪意のあるトラフィックを吸収およびフィルタリングすることにより、分散型サービス拒否(DDoS)攻撃に対する最初の防御線として機能することが多く、現代のウェブのセキュリティ体制において重要な役割を果たします。さらに、CDNはエッジコンピューティングなどの技術を通じて動的コンテンツの配信を容易にし、特定のアプリケーションロジックをユーザーにより近くで実行できるようにすることで、往復時間を短縮します。DNS解決との統合は基本的であり、DNSクエリはユーザーリクエストを最も適切なCDNエッジノードにマッピングするためによく使用されます。