Amazon CloudFrontとは?図解してみた。

まだまだテーマ開発中だが、違いうちにこのサイトにもAmazon CloudFrontを導入して運用してみたいと思い、概要について調べてみました。

※間違っている部分があるかと思いますが、気付き次第修正・更新していきます。

Amazon CloudFrontとはCDN

Amazon CloudFrontとは、配信コンテンツをエッジロケーション・リージョナルエッジキャッシュという2種類のキャッシュサーバーを駆使してキャッシュさせるAWSのCDN(Content Delivery Network)のことです。

キャッシュすることで、オリジンサーバーの負荷を軽減し、配信コンテンツの低レイテンシー・高速転送を可能にすることができます。

それでどのような仕組みか図解してみました。

下記がその図です。

Amazon CloudFrontの仕組み図

図の各用語について

次に図にあるエッジロケーションやら、CloudFront Functionが何なのか見ていきましょう。、

エッジロケーションとは

エッジロケーションとは、配信コンテンツをエンドユーザーの近くに保存するキャッシュサーバーのことです。

エッジロケーションに配信コンテンツが存在しない場合は、もう一つのキャッシュサーバーであるリージョナルエッジキャッシュにリクエストします。

CloudFront Functionとは

CloudFront Functionsとは、エンドユーザーのリクエスト直前 or 直後に、エッジロケーションで任意の関数を実行することが可能にする、CloudFrontの機能です。

どのような処理を関数で行うとことができるのかというと、

  • キャッシュキーの操作と正規化
  • URL の書き換えとリダイレクト
  • HTTP ヘッダーの操作
  • アクセス承認

などが可能とのことです。

参考 : CloudFront Functions の導入 – 任意の規模において低レイテンシーでコードをエッジで実行

リージョナルエッジキャッシュとは

リージョナルエッジキャッシュとは、エッジロケーションとオリジン間に配置された、配信コンテンツを保管しておくキャッシュサーバーです。

リージョナルエッジキャッシュに配信コンテンツが存在しない場合は、オリジンサーバーにリクエストする。

オリジンへの負荷を軽減させるため、エッジロケーションよりも一段容量が高く、リクエストを少なくすることができます。

Lambda@Edgeとは

Lambda@Edgeとは、リージョナルエッジキャッシュで任意のLambda関数を実行することが可能なCloudFrontの機能です。

参考 : Lambda@Edge

オリジンサーバーとは

オリジンサーバーとは、コンテンツ提供元のサーバーです。

感想

CloudFrontの全体像はなんとなく把握できたかと思います。

実際にこのサイトにCloudFrontを入れてみたい(その前にテーマの開発もしないと。。。)のですが、お金どれくらいかかるのでしょうね。

次はコストの面からCloudFrontを調べてみようと思います。

AWS CloudTrailで取得可能なイベントデータとは?まとめてみた。