チュートリアル: Route 53 に登録されたカスタムドメインを使用した静的ウェブサイトの設定 - Amazon Simple Storage Service

チュートリアル: Route 53 に登録されたカスタムドメインを使用した静的ウェブサイトの設定

Amazon S3 で静的ウェブサイトをホスティングするとします。ドメインは Amazon Route 53 で登録済みであり (例: example.com)、http://www.example.comhttp://example.com へのリクエストに対しては Amazon S3 からコンテンツを配信するようにします。このチュートリアルでは、静的ウェブサイトをホスティングし、Route 53 に登録されているカスタムドメイン名を持つウェブサイトのリダイレクトを Amazon S3 で作成する方法について説明します。Amazon S3 でホストしようとしている既存のウェブサイトを使ってもよいですし、このチュートリアルで一から始めることもできます。

チュートリアルが完了したら、Amazon CloudFront を使ってウェブサイトのパフォーマンスを向上させることも可能です。詳細については、「Amazon CloudFront によるウェブサイトの高速化」を参照してください。

注記

Amazon S3 ウェブサイトエンドポイントは HTTPS またはアクセスポイントをサポートしていません。HTTPS を使用する場合は、Amazon CloudFront を使用して Amazon S3 でホストされている静的ウェブサイトを提供できます。

詳細については、「CloudFront を使用して、Amazon S3 でホストされた静的ウェブサイトを公開するにはどうすればよいですか?」と「ビューワーと CloudFrontとの通信で HTTPS を必須にする」を参照してください。

AWS CloudFormation テンプレートを使用した静的ウェブサイトの設定の自動化

AWS CloudFormation テンプレートを使用すると、静的ウェブサイトの設定を自動化することができます。AWS CloudFormation テンプレートによって安全な静的ウェブサイトをホストするために必要なコンポーネントが設定されるため、コンポーネントの設定よりもウェブサイトのコンテンツに注力できるようになります。

AWS CloudFormation テンプレートには、以下のコンポーネントが含まれています。

  • Amazon S3 - 静的ウェブサイトをホストする Amazon S3 バケットを作成します。

  • CloudFront - 静的ウェブサイトを高速化するために、CloudFront ディストリビューションを作成します。

  • Lambda@Edge ‐ Lambda@Edge を使用して、サーバーのすべてのレスポンスにセキュリティヘッダーを追加します。セキュリティヘッダーは、ウェブサーバーレスポンス内のヘッダーのグループであり、追加のセキュリティ対策を講じるようにウェブブラウザに指示します。詳細については、ブログ記事「Adding HTTP security headers using Lambda@Edge and Amazon CloudFront」を参照してください。

この AWS CloudFormation テンプレートは、ダウンロードして使用することができます。詳細および手順については、Amazon CloudFront デベロッパーガイドの「安全な静的ウェブサイトの使用開始」を参照してください。

開始する前に

この例で実行するステップでは、以下のサービスを使用します。

Amazon Route 53 - Route 53 では、ドメインを登録し、ドメインのインターネットトラフィックをルーティングする先を定義します。以下の例では、Route 53 エイリアスレコードを作成して、ドメイン (example.com) とサブドメイン (www.example.com) のトラフィックを HTML ファイルが含まれている Amazon S3 バケットにルーティングする方法を示します。

Amazon S3 - Amazon S3 を使用して、バケットを作成したり、サンプルウェブサイトページをアップロードしたり、全員がコンテンツを表示できるようアクセス許可を設定したりします。また、ウェブサイトホスティング用にバケットを設定することもできます。

ステップ 1: カスタムドメインを Route 53 に登録する

登録済みドメイン名 (example.com など) がない場合は、Route 53 でドメイン名を登録します。詳細については、Amazon Route 53 デベロッパーガイドの「新しいドメインの登録」を参照してください。ドメイン名を登録したら、Amazon S3 バケットを作成してウェブサイトのホスティング用に設定できます。

ステップ 2: バケットを 2 つ作成する

ルートドメインとサブドメインからの両方のリクエストをサポートするには、2 つのバケットを作成します。

  • ドメインバケットexample.com

  • サブドメインバケットwww.example.com

これらのバケット名はドメイン名と厳密に一致している必要があります。この例では、ドメイン名は example.com です。コンテンツをルートドメインバケット (example.com) からホストします。サブドメインバケットのリダイレクトリクエストを作成します (www.example.com)。他のユーザーがブラウザに www.example.com を入力すると、example.com にリダイレクトされ、その名前で Amazon S3 バケットにホストされているコンテンツが表示されます。

バケットをウェブサイトホスティング用に作成するには

以下の手順では、ウェブサイトホスティングにバケットを作成する方法の概要を説明します。バケットの作成に関するステップバイステップの方法は、「バケットの作成」を参照してください。

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

  2. ルートドメインのバケットを作成します。

    1. [Create bucket] (バケットの作成) をクリックします。

    2. [バケット名] (example.com など) を入力します。

    3. バケットを作成するリージョンを選択します。

      レイテンシーとコストを最小限に抑えるため、または規制要件に対処するために、最寄りのリージョンを選択します。選択したリージョンによって、Amazon S3 ウェブサイトエンドポイントが決まります。詳細については、「ウェブサイトエンドポイント」を参照してください。

    4. デフォルト設定をそのまま使用してバケットを作成するには、[作成] を選択します。

  3. サブドメインのバケットを作成します。

    1. [Create bucket] (バケットの作成) をクリックします。

    2. [バケット名] (www.example.com など) を入力します。

    3. バケットを作成するリージョンを選択します。

      レイテンシーとコストを最小限に抑えるため、または規制要件に対処するために、最寄りのリージョンを選択します。選択したリージョンによって、Amazon S3 ウェブサイトエンドポイントが決まります。詳細については、「ウェブサイトエンドポイント」を参照してください。

    4. デフォルト設定をそのまま使用してバケットを作成するには、[作成] を選択します。

次のステップでは、ウェブサイトホスティング用に example.com を設定します。

ステップ 3: ウェブサイトホスティング用にルートドメインのバケットを設定する

このステップでは、ルートドメインのバケット (example.com) をウェブサイトとして設定します。このバケットには、ウェブサイトのコンテンツが含まれます。バケットをウェブサイトホスティング用に設定すると、そのウェブサイトには ウェブサイトエンドポイント を使用してアクセスできるようになります。

静的ウェブサイトホスティングを有効にするには
  1. AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. [Buckets] (バケット) リストで、静的ウェブサイトホスティングを有効にするバケットの名前を選択します。

  3. [Properties] (プロパティ) を選択します。

  4. [静的ウェブサイトホスティング] で [編集] を選択します。

  5. [このバケットを使用してウェブサイトをホストする] を選択します。

  6. [静的ウェブサイトホスティング] で [有効化] を選択します。

  7. [Index Document] (インデックスドキュメント) に、インデックスドキュメントのファイル名 (通常は index.html) を入力します。

    インデックスドキュメント名の大文字と小文字は区別されます。この名前は、S3 バケットにアップロードする HTML インデックスドキュメントのファイル名と正確に一致する必要があります。バケットをウェブサイトホスティング用に設定するときは、インデックスドキュメントを指定する必要があります。Amazon S3 からこのインデックスドキュメントが返されるのは、ルートドメインまたはサブフォルダに対するリクエストが行われたときです。詳細については、「インデックスドキュメントの設定」を参照してください。

  8. 4XX クラスエラーに関する独自のカスタムエラードキュメントを指定する場合は、[エラードキュメント] にカスタムエラードキュメントのファイル名を入力します。

    エラードキュメント名の大文字と小文字は区別されます。この名前は、S3 バケットにアップロードする HTML エラードキュメントのファイル名と正確に一致する必要があります。カスタムエラードキュメントを指定しない場合、エラーが発生すると、Amazon S3 からデフォルトの HTML エラードキュメントが返されます。詳細については、「カスタムエラードキュメントの設定」を参照してください。

  9. (オプション) 高度なリダイレクトツールを指定する場合は、[Rredirection rules] (リダイレクトルール) に、JSON を入力してルールを記述します。

    例えば、条件に応じてリクエストのルーティング先を変えることができます。この条件として使用できるのは、リクエストの中の特定のオブジェクトキー名またはプレフィックスです。詳細については、「高度な条件付きリダイレクトを使用するようにリダイレクトルールを設定する」を参照してください。

  10. [Save changes] (変更の保存) をクリックします。

    Amazon S3 では、バケットの静的ウェブサイトホスティングを有効にします。ページの下部の [静的ウェブサイトホスティング] の下に、バケットのウェブサイトエンドポイントが表示されます。

  11. [静的 ウェブサイトホスティング] の下のエンドポイントを書き留めます。

    [Endpoint (エンドポイント)] は、バケットの Amazon S3 ウェブサイトエンドポイントです。バケットを静的ウェブサイトとして設定すると、このエンドポイントを使用してウェブサイトをテストできます。

パブリックアクセスのブロック設定を編集し、パブリック読み取りアクセスを許可するバケットポリシーを追加したら、ウェブサイトエンドポイントを使用してウェブサイトにアクセスできます。

次のステップで、リクエストをドメイン (www.example.com) にリダイレクトするように、サブドメイン (example.com) を設定します。

ステップ 4: ウェブサイトのリダイレクト用にサブドメインのバケットを設定する

ウェブサイトホスティング用にルートドメインのバケットを設定したら、このドメインにすべてのリクエストをリダイレクトするように、サブドメインのバケットを設定できます。この例では www.example.com のすべてのリクエストが example.com にリダイレクトされます。

リダイレクトリクエストを設定するには
  1. Amazon S3 コンソールの [Buckets (バケット)] リストで、サブドメインのバケット (この例では www.example.com) を選択します。

  2. [プロパティ] を選択します。

  3. [静的ウェブサイトホスティング] で [編集] を選択します。

  4. [Redirect requests for an object (オブジェクトのリクエストをリダイレクト)] を選択します。

  5. [Target bucket (ターゲットバケット)] ボックスに、ルートドメイン (example.com など) を入力します。

  6. [Protocol (プロトコル)] で、[http] を選択します。

  7. [Save changes] (変更の保存) をクリックします。

ステップ 5: ウェブサイトトラフィックのログ記録を設定する

ウェブサイトにアクセスする閲覧者の数を追跡するには、オプションでルートドメインのバケットのログ記録を有効にできます。詳細については、「サーバーアクセスログによるリクエストのログ記録」を参照してください。Amazon CloudFront を使用してウェブサイトを高速化する場合は、CloudFront のログ記録を使用することもできます。

ルートドメインバケット用のサーバーアクセスのログ記録を有効にするには
  1. https://console.aws.amazon.com/s3/ で Amazon S3 コンソールを開きます。

  2. 静的ウェブサイトとして設定しているバケットを作成したのと同じリージョンで、ログ記録用のバケットを作成します (例: logs.example.com)。

  3. サーバアクセスのログを記録するログファイル用のフォルダを作成します (例: logs)。

  4. (オプション) CloudFront を使用してウェブサイトのパフォーマンスを向上させる場合は、CloudFront ログファイル用のフォルダを作成します (例: cdn)。

    重要

    ディストリビューションを作成または更新して CloudFront のログを有効にすると、CloudFront はバケットのアクセスコントロールリスト (ACL) を更新して、バケットにログを書き込む awslogsdelivery アクセス許可を FULL_CONTROL アカウントに付与します。詳細については、Amazon CloudFront デベロッパーガイド標準ログ記録の設定とログファイルへのアクセスに必要なアクセス許可を参照してください。ログを保存するバケットが S3 オブジェクト所有権のバケット所有者の強制設定を使用して ACL を無効にすると、CloudFront はバケットにログを書き込むことができません。詳細については、「オブジェクトの所有権の制御とバケットの ACL の無効化。」を参照してください。

  5. [Bucket (バケット)] リストで、ルートドメインのバケットを選択します。

  6. [プロパティ] を選択します。

  7. [Server access logging (サーバーアクセスのログ記録)] で、[Edit (編集)] を選択します。

  8. [Enable] を選択します。

  9. [Target bucket (ターゲットバケット)] で、サーバーアクセスログのバケットとフォルダの宛先を選択します。

    • フォルダとバケットの場所を参照します。

      1. [Browse S3(S3 の参照)] を選択します。

      2. バケット名を選択し、ログフォルダを選択します。

      3. [Choose path (パスの選択)] を選択します。

    • S3 バケットパスを入力します (例: s3://logs.example.com/logs/)。

  10. [Save changes] (変更の保存) をクリックします。

    ログバケットで、ログにアクセスできるようになりました。Amazon S3 は 2 時間おきにログバケットにウェブサイトアクセスログを書き込みます。

ステップ 6: インデックスとウェブサイトのコンテンツをアップロードする

このステップでは、インデックスドキュメントとオプションのウェブサイトコンテンツをルートドメインのバケットにアップロードします。

バケットに対して静的ウェブサイトホスティングを有効にする場合は、インデックスドキュメントの名前 (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. (オプション) 他のウェブサイトコンテンツをバケットにアップロードします。

ステップ 7: エラードキュメントのアップロード

バケットに対して静的ウェブサイトホスティングを有効にするときは、エラードキュメントの名前 (例: 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] を選択し、プロンプトに従ってインデックスファイルを選択してアップロードします。

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

ステップ 8: S3 のパブリックアクセスのブロック設定を編集する

この例では、ドメインバケット (example.com) のパブリックアクセスブロック設定を編集して、パブリックアクセスを許可します。

デフォルトでは、Amazon S3 はアカウントとバケットへのパブリックアクセスをブロックします。バケットを使用して静的ウェブサイトをホストする場合は、以下のステップを使用して、パブリックアクセスブロック設定を編集できます。

警告

このステップを完了する前に「Amazon S3 ストレージへのパブリックアクセスのブロック」を読んで、パブリックアクセスを許可することに伴うリスクを理解し、了承します。パブリックアクセスブロック設定をオフにしてバケットをパブリックにすると、インターネット上のだれでもバケットにアクセスできるようになります。バケットへのすべてのパブリックアクセスをブロックすることをお勧めします。

  1. https://console.aws.amazon.com/s3/ で Amazon S3 コンソールを開きます。

  2. 静的ウェブサイトとして設定されたバケットの名前を選択します。

  3. [Permissions (アクセス許可)] を選択します。

  4. [Block public access (bucket settings) (ブロックパブリックアクセスの(バケット設定))] で [編集] を選択します。

  5. [Block all public access (すべてのパブリックアクセスをブロックする)] をクリアし、[Save changes (変更の保存)] を選択します。

    警告

    このステップを完了する前に、「Amazon S3 ストレージへのパブリックアクセスのブロック」を確認し、パブリックアクセスの許可に伴うリスクを理解したうえで了承してください。パブリックアクセスブロック設定をオフにしてバケットをパブリックにすると、インターネット上のだれでもバケットにアクセスできるようになります。バケットへのすべてのパブリックアクセスをブロックすることをお勧めします。

    Amazon S3 は、バケットのパブリックアクセスブロック設定をオフにします。パブリックで静的ウェブサイトを作成するには、バケットポリシーを追加する前に、アカウントのブロックパブリックアクセス設定を編集する必要があります。パブリックアクセスのブロックのアカウント設定が現在有効になっている場合は、[Block public access (bucket settings) (パブリックアクセスのブロック (バケット設定))] の下にメモが表示されます。

ステップ 9: バケットポリシーをアタッチする

この例では、バケットポリシーをドメインバケット (example.com) にアタッチして、パブリック読み取りアクセスを許可します。例えば、バケットポリシーの例の Bucket-Name は、ドメインバケットの名前 (例: example.com) に置き換えます。

S3 のパブリックアクセスブロック設定を編集した後で、バケットへのパブリック読み取りアクセスを許可するバケットポリシーを追加できます。パブリック読み取りアクセスを許可すると、インターネット上のだれでもバケットにアクセスできるようになります。

重要

次のポリシーは、単なる例として、バケットのコンテンツへのフルアクセスを許可します。このステップに進む前に、「Amazon S3 バケット内のファイルを保護するにはどうすればよいですか?」を確認して、S3 バケット内のファイルを保護するためのベストプラクティスと、パブリックアクセスの許可に伴うリスクを理解してください。

  1. [バケット] で、バケットの名前を選択します。

  2. [Permissions (アクセス許可)] を選択します。

  3. [Bucket Policy (バケットポリシー)] で [編集] を選択します。

  4. ウェブサイトのパブリック読み取りアクセスを許可するには、次のバケットポリシーをコピーし、[Bucket policy editor (バケットポリシーエディター)] に貼り付けます。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::Bucket-Name/*" ] } ] }
  5. Resource をバケット名に更新します。

    前述のバケットポリシーの例では、Bucket-Name はバケット名のプレースホルダーです。このバケットポリシーを独自のバケットで使用するには、バケット名に合わせてこの名前を更新する必要があります。

  6. [Save changes] (変更の保存) をクリックします。

    バケットポリシーが正常に追加されたことを示すメッセージが表示されます。

    Policy has invalid resource というエラーが表示された場合は、バケットポリシー内のバケット名がバケット名と一致していることを確認します。バケットポリシーの追加については、「S3 バケットポリシーを追加する方法」を参照してください。

    エラーメッセージが表示され、バケットポリシーを保存できない場合は、アカウントとバケットの [パブリックアクセスをブロックする] 設定をチェックして、バケットへのパブリックアクセスを許可していることを確認します。

次のステップでは、ウェブサイトのエンドポイントを判別し、ドメインエンドポイントをテストできます。

ステップ 10: ドメインエンドポイントをテストする

パブリックウェブサイトをホストするようにドメインバケットを設定したら、エンドポイントをテストできます。詳細については、「ウェブサイトエンドポイント」を参照してください。サブドメインバケットは、静的ウェブサイトホスティングではなくウェブサイトリダイレクト用に設定されているため、テストできるのはドメインバケットのエンドポイントのみです。

注記

Amazon S3 は、ウェブサイトへの HTTPS アクセスをサポートしていません。HTTPS を使用する場合は、Amazon CloudFront を使用して Amazon S3 でホストされている静的ウェブサイトを提供できます。

詳細については、「CloudFront を使用して、Amazon S3 でホストされた静的ウェブサイトを公開するにはどうすればよいですか?」と「ビューワーと CloudFrontとの通信で HTTPS を必須にする」を参照してください。

  1. [バケット] で、バケットの名前を選択します。

  2. [プロパティ] を選択します。

  3. ページの下部の [静的ウェブサイトホスティング] で、[Bucket website endpoint (バケットウェブサイトエンドポイント)] を選択します。

    インデックスドキュメントが別のブラウザウィンドウで開きます。

次のステップでは、顧客が両方のカスタム URL を使用してサイトにアクセスできるように、Amazon Route 53 を使用します。

ステップ 11: ドメインとサブドメインのエイリアスレコードを追加する

このステップでは、ドメインマップ example.comwww.example.com のホストゾーンに追加するエイリアスレコードを作成します。IP アドレスを使用する代わりに、このエイリアスレコードでは Amazon S3 ウェブサイトエンドポイントが使用されます。Amazon Route 53 によって、エイリアスレコードと、Amazon S3 バケットが存在する IP アドレスとのマッピングが維持されます。ルートドメイン用とサブドメイン用の 2 つのエイリアスレコードを作成します。

ルートドメインのエイリアスレコードを追加するには (example.com)
  1. Route 53 コンソール (https://console.aws.amazon.com/route53/) を開きます。

    注記

    Route 53 をまだ使用していない場合は、Amazon Route 53 デベロッパーガイドの「ステップ 1: ドメインの登録」を参照してください。セットアップが完了したら、指示を再開できます。

  2. [Hosted zones (ホストゾーン)] を選択します。

  3. ホストゾーンのリストで、ドメイン名に一致するホストゾーンの名前を選択します。

  4. [Create record (レコードを作成)] を選択します。

  5. [Switch to wizard] (ウィザードに切り替える) を選択します。

    注記

    クイック作成を使用してエイリアスレコードを作成する場合は、「Route 53 を設定して S3 バケットにトラフィックをルーティングする」を参照してください。

  6. [Simple routing (シンプルルーティング)] を選択して、[Next (次へ)] を選択します。

  7. [Define simple record (シンプルなレコードを定義)] を選択します。

  8. [レコード名] では、デフォルト値をそのまま使用します。これが、ホストゾーンとドメインの名前です。

  9. [Value/Route traffic to (値/トラフィックのルーティング先)] で、[Alias to S3 website endpoint (S3 ウェブサイトエンドポイントへのエイリアス)] を選択します。

  10. リージョンを選択します。

  11. S3 バケットを選択します。

    バケット名は、[Name (名前)] ボックスに表示されている名前と一致する必要があります。[Choose S3 bucket] (S3 バケットを選択) リストに、バケットが作成されたリージョンの Amazon S3 ウェブサイトエンドポイントとともにバケット名が表示されます (例: s3-website-us-west-1.amazonaws.com (example.com))。

    次の場合は、バケットをリストする S3 バケットを選択します。

    • バケットを静的ウェブサイトとして設定した場合。

    • バケットの名前が、作成するレコードの名前と同じである場合。

    • 現在の AWS アカウント でバケットを作成した場合。

    バケットが [Choose S3 bucket] (S3 バケットの選択) リストに表示されない場合は、バケットが作成されたリージョンの Amazon S3 ウェブサイトエンドポイント (例: s3-website-us-west-2.amazonaws.com) を入力します。Amazon S3 ウェブサイトエンドポイントの完全なリストについては、「Amazon S3 ウェブサイトエンドポイント」を参照してください。エイリアス先の詳細については、Amazon Route 53 デベロッパーガイドの「値/トラフィックのルーティング先」を参照してください。

  12. [Record type (レコードタイプ)] で、[ ‐ Routes traffic to an IPv4 address and some resourcesAWS (A ‐ IPv4 アドレスと一部の リソースにトラフィックをルーティングします)] を選択します。

  13. [Evaluate target health (ターゲットの正常性の評価)] で [No (いいえ)] を選択します。

  14. [Define simple record (シンプルなレコードを定義)] を選択します。

サブドメインのエイリアスレコードを追加するには (www.example.com)
  1. [Configure records] (レコードを設定) で、[Define simple record] (シンプルなレコードを定義) を選択します。

  2. サブドメインの [Record name (レコード名)] に「www」と入力します。

  3. [Value/Route traffic to (値/トラフィックのルーティング先)] で、[Alias to S3 website endpoint (S3 ウェブサイトエンドポイントへのエイリアス)] を選択します。

  4. リージョンを選択します。

  5. S3 バケットを選択します (例: s3-website-us-west-2.amazonaws.com (www.example.com))。

    バケットが [Choose S3 bucket] (S3 バケットの選択) リストに表示されない場合は、バケットが作成されたリージョンの Amazon S3 ウェブサイトエンドポイント (例: s3-website-us-west-2.amazonaws.com) を入力します。Amazon S3 ウェブサイトエンドポイントの完全なリストについては、「Amazon S3 ウェブサイトエンドポイント」を参照してください。エイリアス先の詳細については、Amazon Route 53 デベロッパーガイドの「値/トラフィックのルーティング先」を参照してください。

  6. [Record type (レコードタイプ)] で、[ ‐ Routes traffic to an IPv4 address and some resourcesAWS (A ‐ IPv4 アドレスと一部の リソースにトラフィックをルーティングします)] を選択します。

  7. [Evaluate target health (ターゲットの正常性の評価)] で [No (いいえ)] を選択します。

  8. [Define simple record (シンプルなレコードを定義)] を選択します。

  9. [Configure records] (レコードを設定) ページで、[Create records] (レコードを作成) を選択します。

注記

通常、変更は 60 秒以内にすべての Route 53 サーバーに伝播されます。伝播が完了すると、この手順で作成したエイリアスレコードの名前を使用して、トラフィックを Amazon S3 バケットにルーティングできます。

ルートドメインのエイリアスレコードを追加するには (example.com)

Route 53 コンソールは再設計されました。Route 53 コンソールでは、暫定的に以前のコンソールを使用することもできます。以前の Route 53 コンソールを使用する場合は、以下の手順に従ってください。

  1. Route 53 コンソール (https://console.aws.amazon.com/route53/) を開きます。

    注記

    Route 53 をまだ使用していない場合は、Amazon Route 53 デベロッパーガイドの「ステップ 1: ドメインの登録」を参照してください。セットアップが完了したら、指示を再開できます。

  2. [ホストゾーン] を選択します。

  3. ホストゾーンのリストで、ドメイン名に一致するホストゾーンの名前を選択します。

  4. [Create Record Set (レコードセットの作成)] を選択します。

  5. 次の値を指定します。

    名前

    ホストゾーンとドメインの名前であるデフォルト値を受け入れます。

    ルートドメインの場合、[Name (名前)] フィールドに追加情報を入力する必要はありません。

    タイプ

    [A – IPv4 address (A – IPv4 address)] を選択します。

    エイリアス

    [Yes] を選択します。

    エイリアス先

    リストの [S3 website endpoints (S3 ウェブサイトエンドポイント)] セクションで、バケット名を選択します。

    バケット名は、[Name (名前)] ボックスに表示されている名前と一致する必要があります。[Alias Target (エイリアス先)] リストでは、バケット名の後にはバケットが作成されたリージョンの Amazon S3 ウェブサイトエンドポイントが続きます (例: example.com (s3-website-us-west-2.amazonaws.com))。以下の場合は、[Alias Target] にバケットが表示されます。

    • バケットを静的ウェブサイトとして設定した場合。

    • バケットの名前が、作成するレコードの名前と同じである場合。

    • 現在の AWS アカウント でバケットを作成した場合。

    バケットが [エイリアス先] リストに表示されない場合は、バケットが作成されたリージョンの Amazon S3 ウェブサイトエンドポイント (s3-website-us-west-2 など) を入力します。Amazon S3 ウェブサイトエンドポイントの完全なリストについては、「Amazon S3 ウェブサイトエンドポイント」を参照してください。エイリアス先の詳細については、Amazon Route 53 デベロッパーガイドの「値/トラフィックのルーティング先」を参照してください。

    ルーティングポリシー

    デフォルト値の [Simple] をそのまま使用します。

    ターゲットの正常性の評価

    デフォルト値の [No] をそのまま使用します。

  6. [Create] を選択します。

サブドメインのエイリアスレコードを追加するには (www.example.com)
  1. ルートドメイン (example.com) のホストゾーンで、[Create Record Set (レコードセットの作成)] を選択します。

  2. 次の値を指定します。

    名前

    サブドメインの場合、ボックスに www と入力します。

    タイプ

    [A – IPv4 address (A – IPv4 address)] を選択します。

    エイリアス

    [Yes] を選択します。

    エイリアス先

    リストの [S3 website endpoints (S3 ウェブサイトエンドポイント)] セクションで、[Name (名前)] フィールドに表示される名前と同じバケット名を選択します (例: www.example.com (s3-website-us-west-2.amazonaws.com))。

    ルーティングポリシー

    デフォルト値の [Simple] をそのまま使用します。

    ターゲットの正常性の評価

    デフォルト値の [No] をそのまま使用します。

  3. [Create] を選択します。

注記

通常、変更は 60 秒以内にすべての Route 53 サーバーに伝播されます。伝播が完了すると、この手順で作成したエイリアスレコードの名前を使用して、トラフィックを Amazon S3 バケットにルーティングできます。

ステップ 12: ウェブサイトをテストする

ウェブサイトとリダイレクトが正しく機能することを確認します。ブラウザで、URL を入力します。この例では、次の URL を試すことができます。

  • ドメイン (http://example.com) – example.com バケット内のインデックスドキュメントを表示します。

  • サブドメイン (http://www.example.com) – リクエストを http://example.com にリダイレクトします。example.com バケット内のインデックスドキュメントが表示されます。

ウェブサイトやリダイレクトのリンクが機能しない場合は、以下のことを試しください。

  • キャッシュのクリア– ウェブブラウザのキャッシュをクリアします。

  • ネームサーバーの確認– キャッシュをクリアしてもウェブページやリダイレクトのリンクが機能しない場合は、ドメインのネームサーバーとホストゾーンのネームサーバーを比較します。ネームサーバーが一致しない場合は、ドメインのネームサーバーを更新してホストゾーンのネームサーバーと一致させる必要があります。詳細については、「ドメインのネームサーバーおよびグルーレコードの追加あるいは変更」を参照してください。

ルートドメインとサブドメインのテストが完了したら、Amazon CloudFront ディストリビューションを設定できます。これにより、ウェブサイトのパフォーマンスを向上させ、ウェブサイトのトラフィックの確認に使用できるログを指定できます。詳細については、「Amazon CloudFront によるウェブサイトの高速化」を参照してください。