CloudFront経由でS3の静的コンテンツ配信をしたら307リダイレクトになってしまった
AWSを使ってHTTPSで静的コンテンツ配信をしたかったので、CloudFrontとS3を組み合わせて設定をした。
ところが、URLにアクセスするとS3のバケットURLに307リダイレクトされてしまう現象が発生。
調べてみると公式のサポートページを発見。
Amazon S3 オリジンで Amazon CloudFront ディストリビューションを使用する場合、CloudFront はリクエストをデフォルトの S3 エンドポイント (s3.amazonaws.com) に転送します。このエンドポイントは、us-east-1 リージョンにあります。バケットを作成後 24 時間以内に Amazon S3 にアクセスする必要がある場合は、バケットのリージョンのエンドポイントが含まれるように、このディストリビューションのオリジンドメイン名を変更します。たとえば、バケットが us-west-2 にある場合は、オリジンドメイン名を bucketname.s3.amazonaws.com から bucketname.s3-us-west-2.amazonaws.com に変更することができます。
S3バケットを東京リージョンに作ってすぐCloudFrontの設定をしたため、バケット名がすべてのAWSリージョンに伝達されておらず307が発生した模様。
すぐに反映したかったので東京リージョンのS3バケットを消して、us-east-1にバケットを作り直してCloudFrontのOriginを再設定したところリダイレクトは発生しなくなった。
これは知らないとハマる。