share facebook facebook2 twitter menu hatena pocket slack

2015.06.29 MON

CloudFrontで~を含むInvalidation

比嘉 啓太

WRITTEN BY比嘉 啓太

これまでCloudFrontを利用している際に ~ を含んだパスでInvalidationがうまくいかない現象*1が有りました。
本日(5/22)にCloudFrontのアップデートによりワイルドカード( * )利用したInvalidationが可能になったので、 ~ を含むパスも削除出来るかテストを実施しました。

*1:CloudFrontが準拠しているRFC1738の仕様 詳細はこちら

準備

環境

  • apacheやnginx、IISを入れたサーバ
  • curlコマンドを叩くPC
  • AWSアカウント

CloudFrontの準備

テスト用に以下のパスでページを準備する

  • /
  • /sample/
  • /sample/~/
  • /sample/~/sample2

検証

CloudFrontへキャッシュをさせる

初回の為 Miss from cloudfront になることを確認

# curl --verbose http://HOGEHOGE.cloudfront.net/ 1> /dev/null
< X-Cache: Miss from cloudfront

# curl --verbose http://HOGEHOGE.cloudfront.net/sample/ 1> /dev/null
< X-Cache: Miss from cloudfront

# curl --verbose http://HOGEHOGE.cloudfront.net/sample/~/ 1> /dev/null
< X-Cache: Miss from cloudfront

# curl --verbose http://HOGEHOGE.cloudfront.net/sample/~/sample2 1> /dev/null
< X-Cache: Miss from cloudfront

キャッシュが行われていることを確認

# curl --verbose http://HOGEHOGE.cloudfront.net/ 1> /dev/null
< X-Cache: Hit from cloudfront

# curl --verbose http://HOGEHOGE.cloudfront.net/sample/ 1> /dev/null
< X-Cache: Hit from cloudfront

# curl --verbose http://HOGEHOGE.cloudfront.net/sample/~/ 1> /dev/null
< X-Cache: Hit from cloudfront

# curl --verbose http://HOGEHOGE.cloudfront.net/sample/~/sample2 1> /dev/null
< X-Cache: Hit from cloudfront

CloudFrontでInvalidationを実施

Object Pathsに /sample/~/* を指定してInvalidation

Invalidation後の確認

削除していないパスを確認
# curl --verbose http://HOGEHOGE.cloudfront.net/ 1> /dev/null
< X-Cache: Hit from cloudfront

削除対象のパスを確認(/sample/*)
# curl --verbose http://HOGEHOGE.cloudfront.net/sample/ 1> /dev/null
< X-Cache: Miss from cloudfront

# curl --verbose http://HOGEHOGE.cloudfront.net/sample/~/ 1> /dev/null
< X-Cache: Miss from cloudfront

# curl --verbose http://HOGEHOGE.cloudfront.net/sample/~/sample2 1> /dev/null
< X-Cache: Miss from cloudfront

結果

今回のCloudFrontの更新によりパスに ~ を含んでいてもInvalidationが可能になりました。
これでミドルウェアの仕様上 ~ を含んでいた場合でも使用しやすくなったと思います。

元記事はこちら

CloudFrontで~を含むInvalidation

比嘉 啓太

比嘉 啓太

沖縄出身エンジニア。サーバ構築等のインフラを担当しています。最近はWindowsとUbuntuをさわっていることが多いです。