ちょっとみたら、 CloudFrontの料金が高くてビビる。(といっても$0.55)だが。
cdnのcacheをinvalidateし、更新するのにかかる料金が
という条件を、1,000 Requestまでなんだろうなーと思ってたらどうやら本当に1URLにつき$0.005らしい。
こうなると、1回記事を書くとRSSだのカテゴリインデックスだのなんだのかんだので10ページは確実に
行き、結構お金かかっちゃうハメになってしまう。
だからといって、書いた記事が反映されるのが3日後とかになっても困るなぁーと思っていたら、
AWS CloudFrontのinvalidationにワイルドカードが使えるようになりました。 | Developers.IO
とあった。
まぁ1invalidate requestにURL含まれているし、俺関係無いわーと思っていたのに、関係あったらしいので、
これを採用しようと思う。
まず octopressのs3cmd
を使っている部分を変更し、まったくinvalidateしないように。
1
2
| # ok_failed system("s3cmd sync --no-mime-magic --cf-invalidate-default-index --acl-public --reduced-redundancy --cf-invalidate public/* s3://#{s3_bucket}/")
ok_failed system("s3cmd sync --no-mime-magic --acl-public --reduced-redundancy public/* s3://#{s3_bucket}/")
|
つぎに、Dockerfileでrunコマンドを更新し、s3にdeploy後、awscliでinvalidate requestするようにした。
1
2
3
4
| RUN pip install awscli
RUN aws configure set preview.cloudfront true
COPY _amazon.json /octopress.phalanxware.com/_amazon.json
CMD export PATH=/s3cmd-1.5.2:$PATH && export CRF=`date +"%Y%m%d%H%M%S"` && cd /octopress.phalanxware.com && git pull && cd /octopress.phalanxware.com && sed -i "s/__CRF__/$CRF/g" _amazon.json && rake gen_deploy && aws --profile octopress cloudfront create-invalidation --cli-input-json file://_amazon.json
|
とりあえずこの記事をpostしてテストしてみようと思う。
追記
"CallerReference": "string"
ってのの理解が適当で悪かった。毎回違うものを発行しなければいけないらしい。(2重API呼び出し防止)
以下のページを参考にした。
Amazon EC2 と Route 53 のはじめかた その 3 : Amazon Route 53 を試す - WebOS Goodies
AWS CLIのパラメータをJSONファイルで記述する | Developers.IO