AWS CloudFront でキャッシュにヒットしているか?を確認する
AWS の CloudFront を利用すると、手軽に/短時間で CDN サービスを利用することが出来ます。CloudFront へのアクセス時に「キャッシュにヒットしているか?否か?」は X-Cache
や Age
というヘッダを見ると分かります。
X-Cache ヘッダの意味
X-Cache
は以下のような値を返すようです。
X-Cache |
意味 |
Miss from cloudfront |
キャッシュが存在しなかった(=キャッシュする) |
Hit from cloudfront |
キャッシュにヒットしている |
RefreshHit from cloudfront |
キャッシュの有効時間を超えているが、コンテンツに更新が無いのでキャッシュを再利用する |
検証してみる
CloudFront のキャッシュ時間を 1 分にして動作を検証してみます。検証用に以下のようなスクリプトを書きました。
| #!/bin/sh
URL='http://CLOUD-FRONT/'
SECONDS='180'
for i in `seq 0 ${SECONDS}`
do
NOW=`date +"%M:%S"`
echo $NOW `curl --head ${URL} 2> /dev/null | grep X-Cache`
sleep 1
done
|
このスクリプトを実行すると以下のような結果になりました。結果を見ると X-Cache
の値が…
- 初回は
Miss from cloudfront
- 次回からは
Hit from cloudfront
- キャッシュの有効期限を迎える度に
RefreshHit from cloudfront
…を返しているのが分かります。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 | ./test-croud-front-cache.sh
00:01 X-Cache: Miss from cloudfront
00:02 X-Cache: Hit from cloudfront
00:03 X-Cache: Hit from cloudfront
・
・
・
00:58 X-Cache: Hit from cloudfront
00:59 X-Cache: Hit from cloudfront
01:00 X-Cache: Hit from cloudfront
01:01 X-Cache: RefreshHit from cloudfront
01:02 X-Cache: Hit from cloudfront
01:03 X-Cache: Hit from cloudfront
01:04 X-Cache: Hit from cloudfront
・
・
・
01:58 X-Cache: Hit from cloudfront
01:59 X-Cache: Hit from cloudfront
02:00 X-Cache: Hit from cloudfront
02:01 X-Cache: RefreshHit from cloudfront
02:02 X-Cache: Hit from cloudfront
02:03 X-Cache: Hit from cloudfront
02:04 X-Cache: Hit from cloudfront
|