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

Step Functionsステートマシンから別のStep Functionsを呼び出す

複雑なステートマシンを小さいステートマシンに分割しておけばテストと確認がやりやすくなる

マネージメントコンソール上のエディタでLambdaのコードを書く際にnpmライブラリを追加したい

ローカルでライブラリをインストールしてからインポートする必要があった

Amazon API Gatewayのタイムアウト設定は最大29秒まで

上限緩和もできないので注意

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

switch role用のprofileを追加する

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

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