miyasakura’s diary

日記です。

S3がOriginのCloudFrontを設定したら307 Redirectされる

S3がOriginでカスタムドメインのCloudFrontを設定したところ、設定は間違っていないのにアクセスすると元のCloudFrontのURLにリダイレクトされてしまう現象がでた。数回程度同じ設定をしたことがあるがこの現象は初。

(追記)

https://stackoverflow.com/questions/38706424/aws-cloudfront-returns-http-307-when-origin-is-s3-bucket http://blog.open-tribute.org/2017/05/30/cloudfront-and-s3-307-redirects/

この辺に答えがあるように時間経てば直るので待ちましょうということでした。S3には複数のEndpointがあって、メイン以外のエンドポイントはそれが準備できるまではもう片方にリダイレクトするようになっている模様。DNSの関係でタイミングによっては結構時間かかるみたいです。 (追記ここまで)

ググって昔の情報なら見つかったものの、未だに解決されていないとは思いづらいし、同様のケースがあまり出てこないので悩んでしまった。

https://forums.aws.amazon.com/message.jspa?messageID=196878

たしかに curl -Iしたら307 Redirectが確認できたが原因がわからない。

1時間くらい経って一度全てのファイルを Invalidate したらRedirectしなくなった。

おそらくCloudFrontデプロイ中の微妙なタイミングでアクセスしてしまったせいで、307リダイレクトが発生して、それをキャッシュしてしまったのが原因と思われる。

すぐにInvalidateしても変わらなかったので、しばらく待ってからInvalidateする、が正解だった模様。