今回はAWSでCloudFrontを使用する際に、設定しておいた方が良い点についてお話しします。
CloudFrontとは
CloudFrontはAWS(Amazon Web Service)が提供するCDN(コンテンツデリバリーネットワーク)サービスです。主に画像やCSS, JavaScriptなどの静的なファイルをキャッシュさせて高速にユーザーに返したり、HPなどのプラグラミング言語で動的に生成されるページなどにおいても通信の高速化することができます。
AWSでは世界の主要都市のほとんどに100以上あるエッジロケーションというCloudFrontのためのネットワークを持っており、ユーザーに高速にコンテンツを返すために使用しています。
CloudFront以外で同様なCDNサービスを提供している企業はアカマイ、ライムライトなど他にもあります。
ですが、AWSでシステムを構築する場合は、他のCDNサービスではなく、CloudFrontを利用することをオススメします、
その理由は以下の通りです。
- 通信の安定・高速化
- コストの削減
通信の安定・高速化
下記の動画の2:51からの部分で説明されていますが、CloudFrontを使用すると、ユーザーから一番近いCloudFrontのエッジサーバにアクセスすることでそこからアプリケーション以降の通信が全てAWSのネットワーク内の通信になり、高速化されるとあります。
図にすると下記の様になります。
上は、CloudFrontの場合で、ユーザーからのリクエストがユーザーから一番近いCloudFrontエッジサーバで処理され、それ以降はAWSネットワークになり、通信の品質向上がされるとあります。一方、他のCDNサービスや、CDNを使用しない場合は、ユーザーからの通信はインターネットを介してPHPなどのアプリケーションが動いているサーバまで到達するため、そこまでの途中の経路で速度が悪くなったり、通信トラブルで目的地まで届かないということが起こりうるということです。(ただしCloudFrontだと必ず起きないという訳ではなく、比較すると品質が高いということです)
コストの削減
CloudFrontを利用していてアプリケーションもAWSのEC2などを使用している場合、CloudFrontから先のELB, EC2, S3からのデータ取得には費用がかかりません。
AWS オリジンを使用している場合、2014 年 12 月 1 日以降、オリジンからエッジロケーションへのデータ転送 (Amazon CloudFront の「オリジンフェッチ」) は無料になります。
そのため、AWSでもともとアプリケーションを動作させている場合であれば、通信費用を少し節約できます。
AWSでサーバを使用している場合はCDNはCloudFrontの方が良い
他のパブリッククラウドや自社データセンターを使用している場合は、他のCDNサービスの方が良い場合もありますが、AWSの場合はCloudFrontの方が良いです。
次回はCloudFrontを2年間運用して気づいた使用する上で気をつけておきたいポイントについてお話しします。