CloudFrontを使ってるとオリジンサーバで404などのエラーレスポンスが発生すると、暫くの間(デフォルトは5分間)CloudFrontは裏にリクエストを投げなくなります。その暫くの間ユーザには常にエラーページが返されます。
よくある光景
このデフォルトの挙動は、
1回エラーになっちゃったけどもう裏は正常化してるのにまだエラーが返ってくる。もぅヤダァ…早く元に戻ってよぉ……。
っていう経験を産み、その体感時間はとても長く感じて心臓に悪いです。ていうか数分レベルなんで実際長いです。
解決!
で、この時間を短くするにはどうすればいいんだろう?裏で404の時もCache-Controlヘッダーとか投げたら効いてくれるのかな?などと悩んでみましたが、実はコレ Custom Error Response
で出来ました!
僕は Custom Error Response
って、てっきり独自デザインのエラーページを返すための機能だと思ってたんですが違いました。これ実は カスタムページのパスは必須じゃなかった んですね!単にエラーになったときの 復帰までのTTLをカスタムするだけの用途 でも使えたということに遅まきながら気がついた(^^;
なので例えば↓こんな設定をしておけば、例えファイルを置く前に間違えてアクセスして404をキャッシュされちゃったとしても10秒ですぐにオリジンを確認してもらえるようになります。
ヤッター、めでたしめでたし。