CloudFrontにはDefault Root Objectという設定項目があり、
http://cloudfront.suz-lab.com/ 等のURLでアクセスすると、
上記の設定項目で指定したファイル(ページ)が表示されるようになります。

しかし、http://cloudfront.suz-lab.com/sub/ 等のサブディレクトリに対するアクセスには
対応していません。

また、ステータスコード404等に対するエラードキュメントに関しても、
独自のエラーページを表示させることはできません。

CloudFrontのオリジンをS3にしている場合(S3オリジン)は、上記の制限が効いてしまいます。

尚、カスタムオリジンの場合はオリジンによるので、オリジンサーバがインデックスドキュメントや
エラードキュメントを指定できるようにしていれば、独自のエラードキュメントやアブディレクトリに
対するインデックスドキュメントも可能となります。

しかし、コンテンツは高い可用性と耐久性を誇るS3に配置しておきたいところです。

もとより、S3にはWeb Site Hostingという機能があるので、これを有効にすると
サブディレクトリを含めたインデックスドキュメントとエラードキュメントを
独自のファイルに指定することができます。
但し、Web Site Hosting用のURLからアクセスすることで、上記の機能を利用することができます。

再度、CloudFrontの話しに戻ります。

CloudFrontを設定する際に、S3オリジンでバケットを指定するのではなく、
カスタムオリジンで上記のWeb Site HostingのURLを指定することも、可能となっています。

カスタムオリジンにすることでWeb Site Hosting機能の結果がキャッシュされるので、
実質、サブディレクトリを含めたインデックスドキュメントや独自のエラードキュメントも
利用できていることになります。

キャッシュの期間には注意が必要です。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら