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
…を返しているのが分かります。
./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
コメント