CDNは、以下のユニットにより構成されています:
- CDNサーバ(CDN Edge Server)
- GSLB (Global Server Load Balaner/広域負荷分散装置)
- 顧客コンソール
CDNサーバ
CDNサーバの構成方法としては、以下の方法があります:
- キャッシュサーバ
- ミラーサーバ
このうち多くのCDNで使用されているものはキャッシュサーバです。そして、内部処理的には、Reverse Proxyとして動作します。つまり、動作としては次のようなシナリオに従います:
- オリジンサーバに代わり、ユーザからのリクエストを受け付ける
- ユーザからリクエストされたたコンテンツをオリジンサーバから取得
- コンテンツをユーザに返送するとともに、内部ストレージにキャッシュ(保存)する
そして、一度キャッシュしたコンテンツは、それ以降、オリジンサーバと独立してキャッシューサーバが配信します。ここで、古いコンテンツが配信し続けられる可能性に対しては、TTL設定、パージAPI等の方法により回避することができます。
GSLB
CDNのメリットで詳細を説明しますが、前記キャッシュサーバの地理的分散(例えば国単位に設置)がCDNのメリットになります。これを有効に活用するためには、ユーザから最も近いキャッシュサーバの選択が必要となり、この機能を実行するものがGSLBになります。
実装としては、DNSベースのGSLBが広く使われており、次のシナリオに従い動作します:
- ユーザからのDNSリクエストの送信元IPアドレスを識別する
- DNSへのリプライ(IPアドレス、CNAME)については、送信元IPアドレスと最も近いキャッシュサーバのものを返答する。
ここで、「最も近い」という判断が必要になりますが、以下のようパラメータを元に計算しています:
- TTL
- 含まれるAS
- 実際の配信パフォーマンス
顧客コンソール
最近のCDNでは、単純な配信だけではなく、動的ファイル対応等の高度な機能が提供されています。これらの機能を最大限に活用するには、ユーザによる細かな設定が必要になっています。また、CDNの裾野も広がっており(月額0円からの従量制等)、CDN事業者による手厚い設定サービスも、これらの小額案件については、実施することが困難になっています。
そのため、ユーザ自身がCDN設定を行える「顧客コンソール」がCDNサービスにおいて大きなウェイトを占めるようになっています。