Open1

CloudFrontの仕様についてまとめる

nabetsunabetsu

CloudFrontのキャッシュの仕組み

CloudFront(CDN)を利用するそもそもの目的はオリジンサーバが直接応答するリクエストの数を減らすこと。
オリジンサーバではなくユーザに近いエッジロケーションからリクエストに応答できるようにすれば、レイテンシが減少する。
ユーザ目線で考えるとレスポンスが返ってくるまでのスピードが上がり、ページの表示速度向上などのメリットがある。

キャッシュからデータを返却した(エッジロケーションがレスポンスに応答した)割合をキャッシュヒット率と呼び、その割合はCloudFrontのコンソールから確認ができる。(CloudFront キャッシュ統計レポート)

動作の確認

CloudFrontの設定を以下の通り設定した場合の動作を確認する

TTL 設定値
Maximum TTL 60
Maximum TTL 60
Default TTL 60
  • 初回のリクエスト時
    • Miss
  • 60秒以内の2回目のリクエスト時
    • Hit
  • 60秒経過後の3回目のリクエスト時
    • refreshHit
% curl -I https://xxxxxxxxxxx
...
cache-control: no-store, no-cache, must-revalidate
pragma: no-cache
x-cache: Miss from cloudfront
x-amz-cf-pop: NRT12-C2
x-amz-cf-id: epCOplOFbYs8RDT0M3ZCd6ybUOrkdCOY3qxe7qAgpiH6moVRa8KAfg==

% curl -I https://xxxxxxxxxxx
...
cache-control: no-store, no-cache, must-revalidate
pragma: no-cache
x-cache: Hit from cloudfront
via: 1.1 21865cc96ade4cf70608c0d061134133.cloudfront.net (CloudFront)
x-amz-cf-pop: NRT12-C2
x-amz-cf-id: -dXmKqoxRNOU8RJT6yhdM3eR5knHXy5bQ_YnaqhOS2J3cfQ5IQMNHw==

% curl -I https://xxxxxxxxxxx
...
cache-control: no-store, no-cache, must-revalidate
pragma: no-cache
x-cache: RefreshHit from cloudfront
via: 1.1 497e68f1c2171c15557d721da06055d1.cloudfront.net (CloudFront)
x-amz-cf-pop: NRT57-C2
x-amz-cf-id: UmREfSF60GKMCJ0AUliwgyQiz6GLCPJAFEJyhNMHGyb1PB956F86QQ==

参考資料