Archive for 7月 28th, 2013

【AWS】CloudFront CDNのキャッシュについて

こちらはまったので注意

『CDNは、データが無いよというネガティブキャッシュも保持する』

ようするに、CDNにアクセスしたが画像がなく、次にS3に画像を参照しに行ったがそこでもなかった場合、「画像がないよ」という情報がCDNに記録されしまうということです。

そのため、S3には画像をあとから上げたとしてもCDNのキャッシュ上にはないという情報が残っているため、キャッシュをクリアしなければいけません。

画像の後ろにタイムスタンプをつけておき(sample.png?20130728004000)、画像が切り替わればタイムスタンプを変更するというスタイルのほうが、好きなタイミングで画像の切り替えを行うことが出来ると感じました。

みなさんもネガティブキャッシュにはご注意を!!

【AWS】Route53を使ってS3のドメインを指定する

AWSを使用しているなら分かりやすさを重視するためにS3のエンドポイントにわかりやすいFQDNをつけてAWSのDNSであるRoute53に登録してみたが下記のようなエラーが出た。


  <Code>NoSuchBucket</Code>
  <Message>The specified bucket does not exist</Message>
  <BucketName>*************</BucketName>
  <RequestId>*******</RequestId>
  <HostId>...</HostId>

エンドポイントに直接アクセスすれば、画像は表示されるのにRote53を経由した場合だとBucketがねぇよ!って怒られる。。。

なんでだろと思ってリファレンスを見ていると、どうやらS3のバケット名とキーの命名規則について

『バケットでは英数字が基本ではあるが、DNS(.s3.amazonaws.com)としても使われる』

なんと!
バケット名と指定するFQDNを同じにしなければいけないとは。。。

バケット名とFQSNを同じにするとRoute53経由で見れるようになりました!!

ちゃんと読めばわかるけど、意外にはまりそうなポイントでした。

参考
http://blog.suz-lab.com/2009/09/amazon-s3.html

http://blog.serverworks.co.jp/tech/2012/08/10/best-practices-for-using-amazon-s3/