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

RDSを定期的に停止するLambdaを作る

手動起動は大変なので

AWS SESの受信メールを暗号化してs3に保存しLambdaで読み込む

jsの場合、複合処理を独自実装する必要がある

CloudWatchアラームを一時的に無効化する

AWS CLIで設定する必要がある

Alexaに気温と二酸化炭素濃度を教えてもらう

「Alexa、気温」でセンサー情報を教えてくれるようになった

CloudWatchのカスタムメトリクスを減らす

あまりチェックしないセンサー値の送信を止めた