インデックスドキュメントの設定 - Amazon Simple Storage Service

インデックスドキュメントの設定

ウェブサイトホスティングを有効にする場合は、インデックスドキュメントの設定とアップロードも必要です。インデックスドキュメントは、リクエストがウェブサイトのルートまたはサブフォルダに対して行われた場合に Amazon S3 によって返されるウェブページです。たとえば、ユーザーがブラウザに http://www.example.com と入力した場合は、このユーザーは特定のページをリクエストしてはいません。この場合、Amazon S3 は、インデックスドキュメントを提供し、これがデフォルトページと見なされることがあります。

バケットに対して静的ウェブサイトホスティングを有効にする場合は、インデックスドキュメントの名前 (index.html など) を入力します。バケットに対して静的ウェブサイトホスティングを有効にした後、インデックスドキュメント名を含む HTML ファイルをバケットにアップロードします。

ルートレベル URL の末尾のスラッシュは省略可能です。たとえば、index.html をウェブサイトのインデックスドキュメントとして設定した場合は、以下の URL のどちらからも index.html が返されます。

http://example-bucket.s3-website.Region.amazonaws.com/ http://example-bucket.s3-website.Region.amazonaws.com

Amazon S3 ウェブサイトのエンドポイントの詳細については、「ウェブサイトエンドポイント」を参照してください。

インデックスドキュメントとフォルダ

Amazon S3 では、バケットはオブジェクトのフラットコンテナです。つまり、コンピュータのファイルシステムとは異なり、階層構造ではありません。ただし、論理的な階層を作成するには、フォルダ構造を暗示させる名前をオブジェクトキーに付けます。

たとえば、以下のキー名を持つ 3 つのオブジェクトを含むバケットがあるとします。これらは、物理的な階層構造で格納されているわけではありませんが、キー名から次のような論理フォルダ構造を推測できます。

  • sample1.jpg — オブジェクトはバケットのルートにあります。

  • photos/2006/Jan/sample2.jpg — オブジェクトは photos/2006/Jan サブフォルダにあります。

  • photos/2006/Feb/sample3.jpg — オブジェクトは photos/2006/Feb サブフォルダにあります。

Amazon S3 コンソールでは、バケットにフォルダを作成することもできます。たとえば、photos という名前のフォルダを作成できます。バケットまたはバケット内の photos フォルダにオブジェクトをアップロードできます。オブジェクト sample.jpg をバケットに追加する場合、キー名は sample.jpg です。オブジェクトを photos フォルダにアップロードする場合、オブジェクトキー名は photos/sample.jpg です。

フォルダ構造をバケット内に作成する場合は、各レベルにインデックスドキュメントが存在している必要があります。各フォルダでは、インデックスドキュメントは同じ名前 (index.html など) であることが必要です。ユーザーが指定した URL がフォルダルックアップに似ている場合は、末尾のスラッシュの有無によって、ウェブサイトエンドポイントの動作が決まります。たとえば、末尾にスラッシュのある次の URL はphotos/index.html インデックスドキュメントを返します。

http://bucket-name.s3-website.Region.amazonaws.com/photos/

ただし、前の URL から末尾のスラッシュを除外した場合、Amazon S3 はまずバケット内のオブジェクト photos を検索します。photos オブジェクトが見つからない場合、インデックスドキュメント photos/index.html が検索されます。見つかった場合、Amazon S3 は 302 Found メッセージを返し、photos/ キーを指し示します。それ以降の photos/ に対するリクエストについて、Amazon S3 は photos/index.html を返します。インデックスドキュメントも見つからない場合、Amazon S3 はエラーを返します。

インデックスドキュメントを設定する

S3 コンソールを使用してインデックスドキュメントを設定するには、次の手順に従います。REST API、AWS SDK、AWS CLI、または AWS CloudFormation を使用してインデックスドキュメントを設定することもできます。

注記

バージョニングが有効なバケットでは、index.html のコピーを複数アップロードできますが、解決されるのは最新バージョンのみです。S3 バージョニングの詳細については、「S3 バケットでのバージョニングの使用」を参照してください。

バケットに対して静的ウェブサイトホスティングを有効にする場合は、インデックスドキュメントの名前 (index.html など) を入力します。バケットに対して静的ウェブサイトホスティングを有効にした後、インデックスドキュメント名を含む HTML ファイルをバケットにアップロードします。

インデックスドキュメントを設定するには
  1. index.html ファイルを作成します。

    index.html ファイルがない場合は、以下の HTML を使用して作成できます。

    <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>My Website Home Page</title> </head> <body> <h1>Welcome to my website</h1> <p>Now hosted on Amazon S3!</p> </body> </html>
  2. インデックスファイルをローカルに保存します。

    インデックスドキュメントファイル名は、[静的ウェブサイトホスティング] ダイアログボックスで入力したインデックスドキュメント名と正確に一致する必要があります。インデックスドキュメント名では、大文字と小文字が区別されます。例えば、[静的ウェブサイトホスティング] ダイアログボックスの [インデックスドキュメント] 名に「index.html」と入力する場合、インデックスドキュメントファイル名も index.html ではなく Index.html である必要があります。

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

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

  5. バケットに対して静的ウェブサイトホスティングを有効にし、インデックスドキュメントの正確な名前 (index.html など) を入力します。詳細については、「ウェブサイトのホスティングの有効化」を参照してください。

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

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

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

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

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

  7. (オプション) 他のウェブサイトコンテンツをバケットにアップロードします。

次に、ウェブサイトへのアクセス許可を設定する必要があります。詳細については、「ウェブサイトアクセスのアクセス許可の設定」を参照してください。

オプションとして、エラードキュメントウェブトラフィックのログ記録、またはリダイレクトを設定することもできます。