1. ホーム
  2. amazon-s3

Amazon CloudFrontがS3ウェブサイトバケットのindex.htmlのルールを尊重しない

2023-09-15 15:05:50

質問

静的ウェブサイトホスティングオプションを使用して、Amazon S3で静的ウェブサイトをホストしています。

例えば、以下は私のS3バケット内のページへの直接のリンクです。 http://new.rdegges.com.s3-website-us-east-1.amazonaws.com/category/2009/ このように、このURLにアクセスすると、Amazon S3は自動的にそのディレクトリ内のindex.htmlファイルをレンダリングし、きれいなURLを持つことができるのです。

これはすべてS3上で問題なく動作します。私が抱えている問題は、Amazon Cloudfrontがこの動作も適切に処理するようになることです。私のS3バケットをオリジンとして指定したCloudfront Distributionを作成し、ルートとして「index.html」を使用するよう指示すると、S3が持つindex.html動作はすべて動作しなくなります。

例えば、Cloudfrontで上記と同じURLを指定すると、以下のようになります。 http://d1mj00c6pby3gc.cloudfront.net/category/2009/

残念ながら、上記の URL は動作しませんが、インデックスファイルを手動で指定すると動作します。 http://d1mj00c6pby3gc.cloudfront.net/category/2009/index.html

私の質問は、Cloudfront が私のウェブサイトの S3 バケットの設定を尊重するように、どのように設定する必要があるかということです。

どのように解決するのですか?

S3 Websiteの機能は、Amazon CloudFrontと組み合わせて使用することができます。ただし、S3 Websiteは、通常のS3バケットとは異なるドメイン名を使用します。この場合、S3バケットに設定した Origin Domain Name に、CloudFrontディストリビューションのオリジン設定の new.rdegges.com.s3-website-us-east-1.amazonaws.com .

このURL(Endpoint)は、S3のStatic Website Hostingパネルから取ることができます。

CloudFrontがS3ウェブサイトのドメイン名を指すようになると、S3ウェブサイトの機能が動作するようになるはずです。