AWS CloudFrontとは?

 

Amazon CloudFront とは

低レイテンシーの高速転送により世界中の視聴者に安全に配信する高速コンテンツ配信ネットワーク (CDN) サービスです。

マネージドサービスとして稼働が保障され、

オリジンサーバー(画像配信する配信元のサーバ)にある画像コンテンツを、世界中100箇所以上にあるエッジロケーションにコピーして、そこから配信を行います。

CloudFrontは動画コンテンツなどをグローバルに効率よく高速に配信したいなどの要件で利用される。

 

用語解説

オリジンサーバー

配信元となるサーバのこと。EC2S3であることが多い。

 

エッジロケーション

リージョン、AZとは異なる、AWSのデータセンターのこと。

Route 53、CloudFront、AWS WAF などが配置されている。

さらに、世界で50か所以上設置されていて、DNSやコンテンツ配信サービスを効率的に利用するために存在している。

 

ビューワー

コンテンツにアクセスするウェブブラウザのこと。

 

AWS公式サイトの説明

https://aws.amazon.com/jp/cloudfront/features/?whats-new-cloudfront.sort-by=item.additionalFields.postDateTime&whats-new-cloudfront.sort-order=desc

https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/cache-hit-ratio-explained.html

 

 

CloudFrontの特徴

CloudFrontはユーザーに近い位置にあるエッジロケーションにキャッシュを保持することで、高速のコンテンツ配信を実施します。

通常、ビューワーに最も高速に配信できるCloudFront エッジサーバーがエッジ処理を実施します。

ユーザー側から見ると、データ取得の待ち時間を短縮してくれます。

オリジンサーバから配信するよりも、CloudFront エッジサーバーを利用した方が高速に配信ができる。

 

高速である

ユーザーから最も近いエッジサーバから画像等を配信するので高速です。

 

効率的である

 

エッジサーバにてコンテンツのキャッシングを行う。

オリジンサーバに毎回ファイルを見に行くのではなく、エッジサーバにキャッシングされたファイルを見に行くので、

オリジンサーバに負荷をかけずに配信が可能。

 

データがエッジサーバに無い場合

データがエッジロケーションに存在しない場合は、最初にデータをオリジンサーバーから取得・配信され、

次回以降はキャッシュされたエッジから処理されます。

 

CloudFront はユーザーに近い位置にあるエッジロケーションにキャッシュを保持することで、高速のコンテンツ配信を実現します。

 

通常、ビューワーに最も高速に配信できるCloudFront エッジサーバーがエッジ処理を実施します。

 

ユーザーが初めてアクセスしてきた場合の動作

CloudFrontはユーザーが初めてアクセスする画像については、オリジンサーバーからデータを取得して、エッジロケーションにあるCloudFrontサーバーにキャッシュを保持します。

 

ユーザーから再度その画像にアクセスがあった場合は、キャッシュサーバーにあるキャッシュデータを活用してユーザーに近いエッジサーバーからコンテンツを配信します。

 

 

メリット

S3の場合は、リージョンを指定してファイルを置きます。

世界の裏側からアクセスがあった場合には、ネットワークレイテンシ(遅延)だけで数百ミリ秒になってしまいます。

 

 

ユースケース

 

 

 

オブジェクトURLとは

現在のオブジェクトURLを変更しないで、有料会員だけにプライベートメディアファイルへのアクセスを提供するためには、CloudFrontの署名付きCookies機能によりプライベートファイルにアクセスできるユーザー権限を管理するができます。

 

署名付きURLとは

CloudFrontの署名付きURLと署名付きCookieは同じ基本機能を提供しており、CloudFrontが配信するコンテンツにアクセスできるユーザーを制御できます

 

以下の場合は署名付きURLを使用してください

  • -  RTMPディストリビューションを使いたい。 署名付きCookieはRTMPディストリビューションはサポートしていません。
  • - アプリケーションのインストールダウンロードなど、個々のファイルへのアクセスを制限したい。
  • - ユーザーがクッキーをサポートしていないクライアントを使用している。

 

次のような場合は署名付きcookieを使用してください

  • -  HLS形式の動画のすべてのファイル、またはWebサイトの購読者領域のすべてのファイルなど、制限のある複数のファイルへのアクセスを提供したい。
  • - 現在のオブジェクトURLを変更したくない。

 

画像取得の要求が増大しているためユーザビリティ向上を目指すにはAuto Scalingではなく、CloudFrontに配置して画像処理を任せることが望ましい対応です

 

特定のユーザに配信する場合

CloudFront 署名付き URL または署名付き Cookie を作成して Amazon S3 バケット内のファイルへのアクセスを制限してから、オリジンアクセスアイデンティティ (OAI) という特別な CloudFront ユーザーを作成して配布に関連付けます。

 

次に、CloudFront が OAI を使用してファイルにアクセスしてユーザーに提供できるようにアクセス許可を構成します。たとえば、ユーザーがコンテンツにアクセスできなくなる日時の制御や、コンテンツへのアクセスに使用できる認証を実施することができます。

 

CloudFrontにおける Referer制限はWAFを設定しないと実施できません、WAFのWEB ACLによる制御をReferer制限と呼びます。

 

S3の事前署名付き URL を作成した場合、そのURLの有効期限内での特定プロジェクトの共有ができます。これはオブジェクトの制限付き共有で利用するものです。

 

Web配信を使用するアプリケーションのPCIコンプライアンスへの対応状況を監査

 

AWS責任共有モデルに基づいてPCIまたはHIPAA準拠のワークロードを実行している場合、監査のためには過去365日間のCloud Front使用状況データを記録することが重要です。

 

使用状況データを記録するためにCloud Frontアクセスログを有効にして、Cloud Front APIに送信されるリクエストをキャプチャできるようにする必要があります。

 

S3との連携

 

CloudFrontの関連サービス