CDNの仕組み
背景
ECサイトのキャンペーンを開催する時に、アクセスが集中して、ページが表示できなくことや、海外のサイトをアクセスする時に、アクセスしにくいということやが少なくありません。
そういった問題を解決するために作られたネットワークの仕組みがCDNです。CDNではウェブコンテンツ配信用にネットワークを最適化することによって、アクセスが集中したりコンテンツが大容量化したりしても、ホームページの表示やコンテンツの配信に問題が起こらないようにすることが可能です。
CDNの仕組み
CDNを利用しない場合、ユーザが直接にウェブコンテンツを保存されているオリジンサーバにアクセスしてダウンロードすることになります。一般的に、CDNのシステムではオリジナルのウェブコンテンツが存在するサーバを オリジンサーバ
と呼びます。
それに対して、CDNでは、よくアクセスするウェブコンテンツを事前に複数のCDNサーバに保存して、オリジンサーバの代理でウェブコンテンツを配信します。ユーザをアクセスす時に、ユーザの一番近いのCDNサーバからウェブコンテンツを配信します。こういうことで、効率なウェブコンテンツを実現するわけです。
利用シーン
- ウェブサイトアクセスの加速
- ダウンロードの加速
- 音声と動画コンテンツの配信
Tencent Cloud CDNの仕組み
オリジンサーバーのドメイン名がwww.test.com
であるとします。ドメイン名はCDNサービスにアクセスしてアクセラレーションサービスの利用を開始した後、ユーザーがHTTPリクエストを送信した場合、実際の処理フローは下図のように示します。
Tencent Cloud DNSの配信流れ:
- ユーザーが
www.test.com
下の画像リソース(例:1.jpg)へのアクセス要求を送信する場合、先にLocal DNSへドメイン名解析リクエストを送信します。 - ローカルDNSが
www.test.com
を解析する際に、同時にCNAMEwww.test.com.cdn.dnsv1.com
が設定されていることがわかるので、CNAMEwww.test.com.cdn.dnsv1.com
の解析リクエストをTencent DNS(GSLB)に送信されます。GSLBはTencent Cloudが独自に開発したスケジューリングシステムであり、リクエストに最適なノードIPを割り当てます。 - Tencent DNSのCNAMEの解析結果(CDNのアクセスノードIPアドレス)をローカルDNSに返します。
- Local DNSがユーザに解析結果(CDNのアクセスノードIPアドレス)を返します。
- ユーザーは、取得したCDNのアクセスノードIPにアクセスリクエストを送信します。
- アクセスするCDNノードがすでに1.jpgをキャッシュしている場合、データがユーザー(10)に直接に返し、リクエストは終了します。ノードが1.jpgをキャッシュしていない場合、ノードはオリジンサーバーに1.jpgへのリクエスト(6、7、8)を送信します。コンテンツを取得した後、CDNノードは設定されたキャッシュルールに従って、コンテンツをノード(9)にキャッシュするとともに、ユーザー(10)に返して、リクエストは終了します。