Amazon CloudFrontとは
Amazon CloudFrontとは、AWSによるコンテンツ配信ネットワーク(CDN)のサービスを表します。HTMLやCSS、画像、メディアファイルなど、ウェブの静的および動的コンテンツの配信を高速化し、安全に配信します。
わかりやすく言うと、頻繁に使用される情報を一時的に格納して素早く表示させるための仕組みを提供するものです。
【参考】:Amazon CloudFront 【参考】:Amazon CloudFront のよくある質問
CDNとは
CDNとは、システムやネットワークの負担を軽減し、ウェブコンテンツを高速・効率的に配信するための仕組みです。CDNによって、コンテンツを地域ごとにキャッシュし、アクセスに使用するサーバを分散配置することで、ユーザ要求が特定のサーバに集中することを防止する分散ネットワークが構築できます。
【参考】:AWS: CDN (コンテンツ配信ネットワーク) とは何ですか?
Amazon CloudFrontの特徴
Amazon CloudFrontは最適なアクセスネットワークを構築しており、グローバルに分散した600以上のPoint of Presence(PoP)を経由し、高い信頼性や低レイテンシー、高スループットを実現します。
セキュリティ面では、AWS ShieldやAWS Web Application Firewall(WAF)、Amazon Route 53と連携し、トラフィックの暗号化やアクセス制御によりセキュリティを向上させてDDoS攻撃を防御します。
国内のエッジロケーション
日本は、AWSアジアパシフィックリージョンとしてサービスを提供しています。国内のエッジロケーションは、東京と大阪に設置されています。また、リージョン別エッジキャッシュを東京に設定しており、オリジンサーバとPOPの中継を行い、アクセスレイテンシーを確保しています。
Amazon CloudFrontの料金体系
Amazon CloudFrontには無料利用枠が設けられています。月あたり1TBのインターネットへのデータ転送や、10,000,000件のHTTP・HTTPSリクエストなどが提供されます。AWSリソースから接続先のCloudFrontエッジロケーションに転送されるキャッシュ可能なデータには、料金は発生しません。
Amazon CloudFrontの想定ユースケース
Amazon CloudFrontは、ウェブコンテンツを高速・効率的に配信することで、システムやネットワークの負担を軽減します。この特徴を活かして、Amazon CloudFrontは多くの用途に用いられています。ここからは、実際の想定ユースケースの代表的な活用例を解説していきます。
コンテンツの高速な配信
Amazon CloudFrontを利用することで、コンテンツ・メディアプロバイダーは、コンテンツ配信をより迅速に行い、高品質で低レイテンシーのユーザエクスペリエンスを提供します。これは動的コンテンツに対しても有効で、配信サービスの最適化が可能です。
ビデオストリーミングの品質の向上
ライブやオンデマンドの配信事業者は、Amazon CloudFrontを利用することで迅速な配信を行い、安定した帯域の確保や一貫性のある再生環境が実現できます。負荷状況に応じて自動でスケールするなど、ユーザの需要変動にも対応します。
複数ユーザへの対応やソフトウェア配信
ユーザ数の変動や、パッチの自動更新など特定の時間帯にアクセスが集中する場合においても、自動でスケールし、配信速度やレスポンスを維持します。ソフトウェア事業者や大規模事業者においても、システム安定性をもたらします。
Amazon CloudFrontの仕組み
Amazon CloudFrontは、世界各地のエッジロケーションとエッジキャッシュを用いて、高速で低遅延のコンテンツ配信を行います。
オリジナルのコンテンツは、「オリジンサーバ」と呼ばれるウェブサーバに格納されており、CDNが参照する接続サーバです。ここで言うオリジンとは、元々の(=オリジナルの)という意味合いです。
ユーザのリクエストは、エッジロケーションに送られてエッジサーバでキャッシュされます。その仕組みをエッジキャッシュと呼び、次回以降にアクセスするコンテンツをキャッシュすることができます。
エッジロケーションとは、世界中に配置されている接続先で、Point of Presence(PoP)と呼ばれます。AWSでは、物理ロケーションをリージョンに分割しており、オリジンサーバとPOPの間にリージョン別エッジキャッシュを設置してサービスを提供しています。
オリジンサーバとのアクセスは、リージョン別エッジキャッシュを介して行うため、オリジンサーバの負荷を低減させるとともに、エッジキャッシュにより高スループット、低遅延の配信が可能となります。
【参考】:AWS: Amazon CloudFront 開発者ガイド / CloudFront がコンテンツを配信する方法
CloudFrontの設定方法
コンテンツを配信するには、オリジンサーバからCloudFrontが必要なファイルを取り込んで、世界中のエッジロケーションから配信します。
オリジンサーバには、ウェブサーバやAmazon S3(Simple Storage Service)を指定します。ウェブサーバは、Amazon EC2(Elastic Compute Cloud)あるいは自身で管理するサーバを使えます。
オリジンサーバには、オリジナルのファイルをアップロードします。ファイルはオブジェクトと呼ばれ、ウェブページや画像、メディアファイルなど、HTTPで提供できるものであれば制限がありません。
設定するには、CloudFrontディストリビューションを作成し、ユーザがファイルを要求した際に、どのオリジンサーバからファイルを取得するかをCloudFrontに認識させます。
CloudFrontディストリビューションとは、特定のコンテンツデリバリの設定のことで、コンテンツを配信する場所と管理方法などをCloudFrontに指示します。
CloudFrontは、ディストリビューションを作成すると新たにドメイン名を割り当てます。この設定内容は、CloudFrontコンソールで確認できます。
このディストリビューションは、CloudFrontによってファイルのコピーを、キャッシュするすべてのエッジロケーションまたはPOP(Point of Presence)に送信します。
アクセスするにはCloudFrontが提供するドメイン名を使用し、このURLを使ってエッジロケーションのキャッシュを有効にします。キャッシュされる有効期限は設定によって変更することもできます。
【参考】:AWS: Amazon CloudFront 開発者ガイド / CloudFront の開始方法 【参考】:AWS: Amazon CloudFront 開発者ガイド / 基本的な CloudFront ディストリビューションの開始方法
Amazon CloudFrontの使用上の注意点
Amazon CloudFrontは、キャッシュによって高速化と安定性を実現します。その反面、キャッシュが機能していることで配信コンテンツがスケジュール通りに反映されない場合があります。
このような時間的にセンシティブなコンテンツに関しては、キャッシュの有効時間を変更するなど、影響が生じないようにすることが求められます。
Amazon CloudFrontは高速で安定したコンテンツ配信に役立ちます
ウェブサーバなどコンテンツを配信する場合は、特定のサーバにアクセスが集中しアクセスの遅延やシステムダウンなどを引き起こすリスクがあります。CDNを提供するAmazon CloudFrontは、オリジンサーバをシステム停止のリスクから解放し、安定したコンテンツ配信が可能です。
利用する顧客も多いなど、安定したコンテンツ配信に不安がある方はAmazon CloudFrontの検討をおすすめします。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから