この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
ども、大瀧です。
本日、AWSのCDNサービスCloudFrontのキャッシュ無効化(Invalidation)高速化のアナウンスがありました。
試してみた様子をレポートします。
CloudFrontのキャッシュ削除にかかる時間
CloudFrontのキャッシュ削除は、コンテンツのパス単位(ワイルドカード指定も可)で従来10〜15分程度かかっていたものです。今回のアップデートで、CloudFrontエッジロケーション(キャッシュサーバー)の90%には5秒で、全体には1分で削除が行われるようになりました。同時リクエスト数や料金などのルールは従来通りです。
では、手元のCloudFront Distributionで試してみます。キャッシュ設定は以下の通り、60秒キャッシュする状態(Default TTL
)です。
手元からcURLでリクエストを送ると、2回目以降はx-cache
ヘッダがHit from CloudFront
となり、キャッシュが効いていることがわかります。
$ curl -I https://ipv6deployedtoyouredgelocation.com/index.html
HTTP/2 200
content-type: text/html
content-length: 12349
date: Fri, 31 Mar 2017 00:45:51 GMT
last-modified: Wed, 29 Mar 2017 04:26:45 GMT
etag: "993c5300d46c3970cca496a402248aeb"
accept-ranges: bytes
server: AmazonS3
age: 5
x-cache: Hit from cloudfront
via: 1.1 86232f3e7171d72cbd25064a993639d3.cloudfront.net (CloudFront)
x-amz-cf-id: OsdaAymVy2EO-dX_H4kYWV_i40gqUdPnn1P5Q9w8dcBKYhyJy4DZcA==
$ curl -I https://ipv6deployedtoyouredgelocation.com/index.html
HTTP/2 200
content-type: text/html
content-length: 12349
date: Fri, 31 Mar 2017 00:45:51 GMT
last-modified: Wed, 29 Mar 2017 04:26:45 GMT
etag: "993c5300d46c3970cca496a402248aeb"
accept-ranges: bytes
server: AmazonS3
age: 7
x-cache: Hit from cloudfront
via: 1.1 171d3bd7ed02f868a62075a1caaa7993.cloudfront.net (CloudFront)
x-amz-cf-id: 0Qm_Sl6YLuNT5QB24fhV04jPO2IYrJ-tKXlQkPOx3GmrBNfXt8pDNw==
$
では、キャッシュ削除を実行してみます。
削除の前後でcURLを実行してみると。。。
$ curl -I https://ipv6deployedtoyouredgelocation.com/index.html
HTTP/2 200
content-type: text/html
content-length: 12349
date: Fri, 31 Mar 2017 00:45:51 GMT
last-modified: Wed, 29 Mar 2017 04:26:45 GMT
etag: "993c5300d46c3970cca496a402248aeb"
accept-ranges: bytes
server: AmazonS3
age: 12
x-cache: Hit from cloudfront
via: 1.1 267da846920abda366cb546e2d1bcf36.cloudfront.net (CloudFront)
x-amz-cf-id: SBjk3A-3fttRvsQ9GgczNJzUFMC2fJqX436cDkBOZRkWtqC_o4qbdA==
$ curl -I https://ipv6deployedtoyouredgelocation.com/index.html
HTTP/2 200
content-type: text/html
content-length: 12349
date: Fri, 31 Mar 2017 00:46:10 GMT
last-modified: Wed, 29 Mar 2017 04:26:45 GMT
etag: "993c5300d46c3970cca496a402248aeb"
accept-ranges: bytes
server: AmazonS3
x-cache: Miss from cloudfront
via: 1.1 e8604f361da7dc464552f4142ac9dbda.cloudfront.net (CloudFront)
x-amz-cf-id: BeColIIks6XlMlHb11yX1Ky-2FoVGBkVnX8T4IFqs6IMKD1haLDWcQ==
$
有効期限にならない(60秒経たない)うちにMiss from cloudfront
のレスポンスが返ってきました。キャッシュ削除が実行されたことがわかります。
まとめ
CloudFrontのキャッシュ無効化が速くなった様子をご紹介しました。誤ったコンテンツを公開してしまったときに迅速に対応できるようになり、CloudFrontの使い勝手が大きく向上した印象です。ただしキャッシュ無効化機能は回数が多いと課金されることからも、定常的に利用する機能ではありません。非常時のオペレーションとして覚えておくようにしましょう。
参考URL
- AWS Developer Forums: Announcing Fast Invalidations
- Invalidating Objects (Web Distributions Only) - Amazon CloudFront (3/31 10:00時点ではまだ今回のアップデートは反映されていません)