Open1
CloudFrontの仕様についてまとめる
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==