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を再設定したところリダイレクトは発生しなくなった。

これは知らないとハマる。


Related #aws

AWSのコスト異常検出を設定する

意図しない課金を防ぐためにとりあえず設定しておくと良さそう

AWS SESでメールを受信してGmailに転送する

独自ドメインメールの送受信ができるようになった

MFA必須のスイッチロールアカウントでaws cliを使う

switch role用のprofileを追加する

CloudWatch Eventsで日本時刻(JST)の月初に実行したい

Lオプションの存在を知った

Lambdaでaws cli configureを設定できるようにする

AWS_CONFIG_FILE=/tmp/.aws/configを設定した