2011年12月28日水曜日

S3オリジンのCloudFrontでインデックスドキュメントやエラードキュメントを利用できるようにする

スズキです。

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

しかし、"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"機能の結果がキャッシュされるため、
サブディレクトリを含めたインデックスドキュメントや独自のエラードキュメントも、
実質、利用できていることになります。

キャッシュ期間には注意です!
--------
http://www.suz-lab.com

0 コメント: