カスタムエラードキュメントの設定 - Amazon Simple Storage Service

カスタムエラードキュメントの設定

バケットを静的ウェブサイトとして設定した後、エラーが発生すると、Amazon S3 から HTML エラードキュメントが返されます。オプションで、エラーが発生したときに Amazon S3 からそのドキュメントが返されるように、カスタムエラードキュメントを含むバケットを設定できます。

注記

ただし、エラーが発生した場合、一部のブラウザは独自のエラーメッセージを表示し、Amazon S3 が返すエラードキュメントを無視することがあります。たとえば、HTTP 404 Not Found エラーが発生した場合、Google Chrome は Amazon S3 が返すエラードキュメントを無視し、独自のエラーを表示することがあります。

Amazon S3 HTTP レスポンスコード

次の表は、エラーの発生時に Amazon S3 が返す HTTP レスポンスコードのサブセットをまとめたものです。

HTTP エラーコード 説明
301 Moved Permanently ユーザーが Amazon S3 ウェブサイトエンドポイント (http://s3-website.Region.amazonaws.com/) に直接リクエストを送信した場合、Amazon S3 は 301 Moved Permanently レスポンスを返し、それらのリクエストを https://aws.amazon.com/s3/ にリダイレクトします。
[302 Found]

Amazon S3 が末尾にスラッシュのないキー xhttp://bucket-name.s3-website.Region.amazonaws.com/x に対するリクエストを受け取った場合、まずキー名 x のオブジェクトを検索します。オブジェクトが見つからない場合、Amazon S3 はリクエストがサブフォルダ x に対するものであると判断し、末尾にスラッシュを追加して、リクエストをリダイレクトし、302 Found を返します。

[304 Not Modified]

Amazon S3 は、リクエストヘッダー If-Modified-SinceIf-Unmodified-SinceIf-Match、および/または If-None-Match を使用して、リクエストされたオブジェクトがクライアントで保持されているキャッシュされたコピーと同じであるかどうかを判断します。オブジェクトが同じである場合、ウェブサイトエンドポイントは [304 Not Modified] レスポンスを返します。

[400 Malformed Request]

ユーザーが誤ったリージョンエンドポイント経由でバケットにアクセスを試みると、ウェブサイトエンドポイントは [400 Malformed Request] で応答します。

403 Forbidden

ユーザーのリクエストが公開で読み取ることのできないオブジェクトに変換する場合、ウェブサイトエンドポイントは [403 Forbidden] で応答します。オブジェクト所有者は、バケットポリシーまたは ACL を使用して、オブジェクトを公開する必要があります。

404 Not Found

ウェブサイトエンドポイントは、以下の理由により [404 Not Found] で応答します。

  • ウェブサイトの URL が存在しないオブジェクトキーを参照しているものと、Amazon S3 が判断した。

  • リクエストが存在しないインデックスドキュメントに対するものであると、Amazon S3 が推論した。

  • URL に指定されたバケットが存在しない。

  • URL に指定されたバケットは存在するが、ウェブサイトとして設定されていない。

[404 Not Found] で返すドキュメントをカスタマイズすることができます。必ず、このドキュメントをウェブサイトとして設定されたバケットにアップロードすると共に、このドキュメントを使用するようにウェブサイトホスティング設定を行ってください。

Amazon S3 がオブジェクトまたはインデックスドキュメントのリクエストとして URL をどのように解釈するかについては、「インデックスドキュメントの設定」を参照してください。

[500 Service Error]

内部サーバーエラーが発生した場合、ウェブサイトエンドポイントは [500 Service Error] で応答します。

503 Service Unavailable

Amazon S3 がユーザーのリクエスト頻度を減らす必要があると判断した場合に、ウェブサイトエンドポイントは 503 Service Unavailable で応答します。

これらの各エラーに対して、Amazon S3 は定義済みの HTML メッセージを返します。[403 Forbidden] レスポンスで返される HTML メッセージの例を次に示します。

403 Forbidden エラーメッセージの例

カスタムエラードキュメントの設定

バケットを静的ウェブサイトとして設定する場合、ユーザーフレンドリーなエラーメッセージと追加のヘルプを含むカスタムエラードキュメントを提供できます。Amazon S3 は HTTP 4XX クラスのエラーコードに対してのみ、カスタムエラードキュメントを返します。

S3 コンソールを使用してカスタムエラードキュメントを設定するには、次の手順に従います。REST API、AWS SDK、AWS CLI、または AWS CloudFormation を使用してエラードキュメントを設定することもできます。詳細については、以下を参照してください。

バケットに対して静的ウェブサイトホスティングを有効にするときは、エラードキュメントの名前 (例: 404.html) を入力します。バケットに対して静的ウェブサイトホスティングを有効にしたら、エラードキュメント名を含む HTML ファイルをバケットにアップロードします。

エラードキュメントを設定するには
  1. エラードキュメント (例: 404.html) を作成します。

  2. エラードキュメントのファイルをローカルに保存します。

    エラードキュメントの名前は、大文字と小文字を区別し、静的ウェブサイトホスティングを有効にする際に入力した名前と厳密に一致している必要があります。たとえば、[Static website hosting] (静的ウェブサイトホスティング) ダイアログボックスの [Error document] (エラードキュメント) 名に 404.html と入力する場合、エラードキュメントのファイル名も 404.html である必要があります。

  3. AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  4. [バケット] リストで、静的ウェブサイトホスティングに使用するバケットの名前を選択します。

  5. バケットに対して静的ウェブサイトホスティングを有効にし、エラードキュメントの正確な名前 (例: 404.html) を入力します。詳細については、ウェブサイトのホスティングの有効化およびカスタムエラードキュメントの設定を参照してください。

    静的ウェブサイトホスティングを有効にしたら、ステップ 6 に進みます。

  6. エラードキュメントをバケットにアップロードするには、以下のいずれかを実行します。

    • エラードキュメントファイルをコンソールバケットのリストにドラッグアンドドロップします。

    • [Upload] を選択し、プロンプトに従ってインデックスファイルを選択してアップロードします。

    手順については、「オブジェクトのアップロード」を参照してください。