まだまだテーマ開発中だが、違いうちにこのサイトにもAmazon CloudFrontを導入して運用してみたいと思い、概要について調べてみました。
※間違っている部分があるかと思いますが、気付き次第修正・更新していきます。
Amazon CloudFrontとはCDN
Amazon CloudFrontとは、配信コンテンツをエッジロケーション・リージョナルエッジキャッシュという2種類のキャッシュサーバーを駆使してキャッシュさせるAWSのCDN(Content Delivery Network)のことです。
キャッシュすることで、オリジンサーバーの負荷を軽減し、配信コンテンツの低レイテンシー・高速転送を可能にすることができます。
それでどのような仕組みか図解してみました。
下記がその図です。
図の各用語について
次に図にあるエッジロケーションやら、CloudFront Functionが何なのか見ていきましょう。、
エッジロケーションとは
エッジロケーションとは、配信コンテンツをエンドユーザーの近くに保存するキャッシュサーバーのことです。
エッジロケーションに配信コンテンツが存在しない場合は、もう一つのキャッシュサーバーであるリージョナルエッジキャッシュにリクエストします。
CloudFront Functionとは
CloudFront Functionsとは、エンドユーザーのリクエスト直前 or 直後に、エッジロケーションで任意の関数を実行することが可能にする、CloudFrontの機能です。
どのような処理を関数で行うとことができるのかというと、
- キャッシュキーの操作と正規化
- URL の書き換えとリダイレクト
- HTTP ヘッダーの操作
- アクセス承認
などが可能とのことです。
参考 : CloudFront Functions の導入 – 任意の規模において低レイテンシーでコードをエッジで実行
リージョナルエッジキャッシュとは
リージョナルエッジキャッシュとは、エッジロケーションとオリジン間に配置された、配信コンテンツを保管しておくキャッシュサーバーです。
リージョナルエッジキャッシュに配信コンテンツが存在しない場合は、オリジンサーバーにリクエストする。
オリジンへの負荷を軽減させるため、エッジロケーションよりも一段容量が高く、リクエストを少なくすることができます。
Lambda@Edgeとは
Lambda@Edgeとは、リージョナルエッジキャッシュで任意のLambda関数を実行することが可能なCloudFrontの機能です。
参考 : Lambda@Edge
オリジンサーバーとは
オリジンサーバーとは、コンテンツ提供元のサーバーです。
感想
CloudFrontの全体像はなんとなく把握できたかと思います。
実際にこのサイトにCloudFrontを入れてみたい(その前にテーマの開発もしないと。。。)のですが、お金どれくらいかかるのでしょうね。
次はコストの面からCloudFrontを調べてみようと思います。