目次
1. CDNとは
CDNとは、「コンテンツデリバリーネットワーク」(Content Delivery Network) の略で、世界中に張り巡らされた配信ネットワークを利用して、Webサイトにアクセスしようとするユーザーに効率的かつ高速にWebコンテンツを配信するしくみです。
2. CDNとは?初心者にもわかりやすく解説
a) CDNの仕組み
一般に、ウェブサイトを運営する場合、運営者は配信元となるウェブサーバ(オリジン)をたて、そこへエンドユーザを誘導する形でコンテンツの配信を行っています。しかし、オリジンへのトラフィックとそれに続く負荷が大きく増加してトラフィックのスパイクが突出した場合、オリジンサーバがダウンしてしまうことや、アクセスしようとするWebページの表示に時間がかかってしまうことがあります。これを避けるため、CDNを利用します。
CDNサーバには、オリジンから取得したコンテンツをキャッシュ(コピー)しておき、物理的に近いネットワークでエンドユーザーのリクエストにレスポンスすることになります。
CDNの利用により、オリジンサーバーへのトラフィックをオフロードすることが出来、ウェブの応答性を高め、オリジンへの負荷を減らすことが出来ます。これが、一般的なCDNの仕組みです。
距離が近いサーバーを自動的に選択
CDNは、アクセス元から見て距離的に一番近い場所にあるサーバーを自動で選択しコンテンツをダウンロードさせます。例えば、アメリカのユーザーはアメリカにあるキャッシュサーバーから、ヨーロッパのユーザーはヨーロッパにあるキャッシュサーバーからダウンロードできるため、ダウンロードの高速化を実現できます。
ここでの「距離が近い」というのは物理的な距離とは少し違います。インターネットの世界ではアクセス元からアクセス先に到達するまでにルーターなど、さまざまなポイントを経由します。この時のポイントの数をHOP数といい、HOP数が少ないほど「距離が近い」ということになります。
負荷分散
CDNは、複数台のキャッシュサーバーで構成されています。さらに、それぞれのサーバーの上位ネットワークも複数存在することから、負荷を分散させネットワークの遅延を軽減できます。
b) クラウドサービスでも使われているCDN
CDNは、クラウドサービスと呼ばれるインターネット上のサービスでも使えます。
クラウドサービスとは、クラウドサービス事業者がWeb上で提供するクラウドサービスプラットフォームから、インターネット経由でコンピューティング、データベース、ストレージ、アプリケーションをはじめとしたさまざまなITリソースを利用できる仕組みのことです。
クラウドサービスの一つであるAWS (Amazon Web Services)ではCDNがどのように使われているのか、ご紹介させて頂きます。
CDN は AWS では、Amazon CloudFront というサービス名で提供されています。Amazon CloudFrontはデータ、動画、アプリケーション、および API をすべて開発者にとって使いやすい環境で、低レイテンシーの高速転送により世界中の視聴者に安全に配信する高速コンテンツ配信ネットワーク (CDN) サービスです。
c) 全部で4つ!AWS CloudFrontのメリット
今から、CloudFrontというサービスを利用することによって得られるメリットには何があるのか、簡単にご説明します。
高速&グローバル
Amazon CloudFrontは、世界中で展開されているグローバルなコンテンツ配信ネットワークです。POPと呼ばれるネットワークの経由地点が210あり、優れたパフォーマンスと可用性を提供しています。
エッジでのセキュリティ
Amazon CloudFrontは、ネットワークレベルとアプリケーションレベルの両方で保護される安全性の高いCDNです。他にも様々な組み込み保護機能が用意されており、追加料金なしで利用できます。
高度にプログラム可能
Amazon CloudFrontの機能は、プログラムによって特定のアプリケーションに合わせたカスタマイズが可能です。AWSの中のLambdaという機能で提供されているLambda@Edge関数によって、複雑なアプリケーションロジックでも応答性を向上させることが可能です。
AWSとの密接な統合
Amazon CloudFrontは、Amazon S3、Amazon EC2、Elastic Load Balancing、Amazon Route 53、AWS Elemental Media Services などの AWS のサービスと統合されています。そのため、他の機能とCDNを連携させるために複雑な技術を理解したり、新しい設備を購入したりする必要がありません。
d) そもそもAWSとは?簡単にご説明します。
今までAWSという言葉が頻繁に出てきましたが、AWSとはそもそも一体何のことなのでしょうか。わかりやすくご説明します。
AWSとは、「Amazon Web Services」の略で、Amazon Web Services社が提供するクラウドコンピューティングサービスです。
クラウドコンピューティングサービスとは、インターネットを通じてコンピュータやデータベース、アプリケーションを利用できる仕組みのことで、クラウドコンピューティングを利用することで設備の初期投資に必要な料金や時間を削減できるメリットがあります。
クラウドサービスの中でも、AWSを利用するメリットは以下の3点です。
(i) コストについて:初期費用と値下げ
AWSは、初期費用が発生しません。従量制課金という制度をとっており自分が使った分だけ支払います。例えばオンプレミスでサーバーを購入すると、購入時にサーバーの料金を支払っているので、予定外の事態が発生してそのサーバーを使用しないことになった場合無駄なコストが発生します。AWSなら、利用をやめれば課金されなくなるため利用しないものに料金がかかっている、ということがありません。また料金はすべてAWSのサイトで公開されているため、料金がわからないまま問い合わせや申し込みをしなければならない、ということがありません。
初期費用だけではなく、AWSでは定期的な値下げが実施されています。
(ii) システム運用について:柔軟に増減可能なITリソース
自前でシステムを準備する場合、常にユーザー数の増加を予測しサーバー等のITリソースを確保しなければなりません。例えばシステムにアクセスするユーザーが増えたのにサーバーを増やさなければシステムがダウンしてしまいます。サーバーを購入するなどして増やすことはできますが、時間がかかってしまう上必要がなくなっても設備として維持、管理し続けなければなりません。
その点、AWSであれば数クリック、数分間でサーバーの台数の増減が可能です。現在利用しているサーバーのサイズ変更も可能なため、例えば日中と夜間で稼働しているサーバーのスペックを変更することができます。
(iii) 技術について:最先端の技術をいつでも使える
AWSでは165を超えるサービスが用意されています。その中にはIoTやMachine Learningなど今話題の技術を利用できるサービスも多数含まれています。バージョンアップも頻繁に行われており、2017年には1430回以上のバージョンアップが行われました。
これらのバージョンアップの90%以上は、AWS利用者の要望をもとに行われています。利用者のニーズに合わせた、本当に必要なバージョンアップが行われていると言えます。
サービスの種類が多いことのメリットは、他社製品と組み合わせる必要がないことです。
他社製品が組み合わさり、その種類が増えるほどシステムの保守、運用は複雑になり打合せも多くなります。不具合が発生した場合の原因追及や対応策の立案にも時間がかかってしまいます。AWSのサービスだけでシステムを開発、保守運用まで行うことができれば問い合わせは1か所で済みます。その分、利用者は本来のビジネスに時間を使うことができます。
3. まとめ
CDNについて、またクラウドサービスとCDNについて説明させて頂きました。
Webサービスの提供にとって通信速度が速いということは大きなメリットです。
ページを読み込むのが遅い、ファイルをダウンロードするのに時間がかかると感じるとユーザーはすぐに離れてしまう可能性があります。
よりよいサービス提供のために、CDNでパフォーマンスの改善をしてみてはいかがでしょうか。