Amazon S3 バケットの静的なウェブサイトにドメインを使用する - Amazon Route 53

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon S3 バケットの静的なウェブサイトにドメインを使用する

この入門チュートリアルでは、次のタスクの実行方法を示します。

  • example.com などのドメイン名を登録する

  • Amazon S3 バケットを作成し、ウェブサイトをホストするように設定するには

  • サンプル ウェブサイトを作成し、S3 バケットにファイルを保存する

  • 新しいウェブサイトにトラフィックをルーティングするように Amazon Route 53 を設定する

これらのタスクが完了したら、ブラウザを開き、ドメイン名を入力してウェブサイトを表示できます。

注記

既存のドメインを Route 53 に移管することも可能ですが、その処理は複雑であり、新しいドメインを登録する場合に比べて時間がかかります。詳細については、「ドメイン登録の Amazon Route 53 への移管」を参照してください。

前提条件

開始する前に、Amazon Route 53 の設定 の手順を完了するようにしてください。

ステップ 1: ドメインを作成する

ドメイン名 (例えば、example.com) を使用するには、そのドメイン名が既に使用されていないことを確認してから登録する必要があります。ドメイン名を登録すると、通常 は 1 年間、そのドメイン名をインターネットで独占的に使用できます。デフォルトでは、ドメイン名は毎年の終了時に自動的に更新されますが、この自動更新はオフにできます。詳細については、「新しいドメインの登録」を参照してください。

ステップ 2: ルートドメイン用の S3 バケットを作成する

Amazon S3 では、インターネットのどこからでもデータの保存と取得を実行できます。データを整理するには、バケットを作成し、AWS Management Console を使用してデータをバケットにアップロードします。Amazon S3 を使用してバケット内に静的ウェブサイトをホストできます。以下の手順で、バケットを作成する方法を説明します。

ルートドメイン用に別の S3 バケットを作成するには
  1. Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. [バケットを作成する] を選択します。

  3. 以下の値を入力します。

    バケット名 

    example.com などのドメイン名を入力します。

    リージョン

    大半のユーザーに最も近いリージョンを選択します。

    選択したリージョンを書き留めておいてください。後のプロセスでこの情報が必要になります。

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

ステップ 3 (オプション): サブドメイン用に別の S3 バケットを作成する

前の手順では、example.com のようなドメイン名用のバケットを作成しました。これにより、example.com のようなドメイン名を使用してウェブサイトにアクセスすることができます。

また、ユーザーが www を使用できるようにする場合はyour-domain-name、www.example.com などの でサンプルウェブサイトにアクセスできるように、2 つ目の S3 バケットを作成します。最初のバケットにトラフィックをルーティングするように 2 つ目のバケットを設定します。

www 用の S3 バケットを作成するにはyour-domain-name
  1. [バケットを作成する] を選択します。

  2. 以下の値を入力します。

    バケット名

    www と入力しますyour-domain-name。例えば、example.com というドメイン名を登録済みの場合は、「www.example.com」と入力します。

    リージョン

    最初のバケットを作成したのと同じリージョンを選択します。

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

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

S3 バケットの作成が完了したので、そのバケットをウェブサイトホスティング用に設定できます。

S3 バケットでウェブサイトホスティングを可能にするには
  1. https://console.aws.amazon.com/s3/ で Amazon S3 コンソールを開きます。

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

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

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

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

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

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

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

  8. (オプション) 4XX クラスエラーで独自のカスタムエラードキュメントを使用する場合は、[Error Document] (エラードキュメント) に、そのカスタムエラードキュメントのファイル名を入力します。

    カスタムエラードキュメントを指定しない場合、エラーが発生すると、Amazon S3 からデフォルトの HTML エラードキュメントが返されます。

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

    詳細については、Amazon Simple Storage Service ユーザーガイド高度な条件付きリダイレクトの設定を参照してください。

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

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

    [Endpoint (エンドポイント)] は、バケットの Amazon S3 ウェブサイトエンドポイントです。バケットを静的ウェブサイトとして設定し終えると、(「ステップ 9: ドメインエンドポイントをテストする」に示すように) このエンドポイントを使用してウェブサイトをテストできるようになります。

    次の手順を使用して、パブリックアクセスの設定を編集し、パブリック読み取りアクセス権を付与するバケットポリシーの追加を完了すると、ウェブサイトエンドポイントを使用してウェブサイトにアクセスできます。

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

ウェブサイトホスティング用にルートドメインのバケットを設定した後に、必要に応じて、このルートドメインにすべてのリクエストをリダイレクトするように、サブドメインのバケットを設定します。例えば、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 (変更を保存)] をクリックします。

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

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

インデックスファイルをアップロードするには
  1. このチュートリアル用にシンプルな 1 ページのウェブサイトとして使用できる次のサンプルテキストをコピーし、テキストエディタに貼り付けて、index.html として保存します。

    <html> <head> <title>Amazon Route 53 Getting Started</title> </head> <body> <h1>Routing Internet Traffic to an Amazon S3 Bucket for Your Website</h1> <p>For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html">Getting Started with Amazon Route 53</a> in the <emphasis>Amazon Route 53 Developer Guide</emphasis>.</p> </body> </html>
  2. [Buckets] (バケット) リストで、静的ウェブサイトホスティングを有効にするバケットの名前を選択します。

  3. Amazon S3 コンソールで、S3 バケットでウェブサイトホスティングを可能にするには の手順で作成したバケットの名前を選択 (リンクされたバケットの名前をクリック) します。

  4. [Upload] (アップロード)、[Add Files] (ファイルの追加) をクリックし、保存先の index.html を選択し、[Upload] (アップロード) をクリックします。

  5. エラードキュメント (404.html など) を作成した場合は、ステップ 3~5 に従ってアップロードします。

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

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

警告

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

トラフィックをウェブサイトにルーティングするには
  1. Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

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

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

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

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

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

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

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

警告

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

トラフィックをウェブサイトにルーティングするには
  1. Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

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

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

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

  5. 次のパケットポリシーをコピーし、テキストエディターに貼り付けます。このポリシーは、インターネットのすべてのユーザー ("Principal":"*") に、ドメイン名 ("arn:aws:s3:::your-domain-name/*") に関連付けられている S3 バケット内のファイル ("Action":["s3:GetObject"]) を取得するアクセス許可を与えます。

    { "Version":"2012-10-17", "Statement":[{ "Sid":"AddPerm", "Effect":"Allow", "Principal":"*", "Action":[ "s3:GetObject" ], "Resource":[ "arn:aws:s3:::your-domain-name/*" ] }] }
  6. の値を Resourceに更新します。例えばyour-domain-name、 ですexample.com

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

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

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

注記

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

詳細については、「ビューワーと 間の通信で HTTPS を必須にするCloudFront」を参照してください。

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

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

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

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

ステップ 10: ドメインの DNS トラフィックをウェブサイトバケットにルーティングする

現時点では、S3 バケットには 1 ページで構成されるウェブサイトがあります。ドメインのインターネットトラフィックを S3 バケットにルーティングすることを開始するには、次の手順を実行します。

トラフィックをウェブサイトにルーティングするには
  1. Route 53 コンソール (https://console.aws.amazon.com/route53/) を開きます。

  2. ナビゲーションペインで [Hosted zones] を選択します。

    注記

    ドメインを登録すると、同名のホストゾーンが、Amazon Route 53 によって自動的に作成されます。ホストゾーンには、ドメインのトラフィックを Route 53 がどのようにルーティングするかに関する情報が含まれています。

  3. ホストゾーンリストから、ドメインの名前を選択します。

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

    注記

    各レコードには、1 つのドメイン (example.com など) または 1 つのサブドメイン (www.example.com や test.example.com など) のトラフィックをどのようにルーティングするかについての情報が含まれます。レコードは、ドメインのホストゾーンに保存されます。

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

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

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

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

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

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

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

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

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

    次のいずれかが当てはまる場合、[Choose S3 bucket] (S3 バケットを選択する) でバケットが一覧表示されます。

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

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

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

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

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

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

(オプション) サブドメイン (www.example.com) のエイリアスレコードを追加するには

サブドメインのバケットを作成した場合は、そのバケットのエイリアスレコードも追加します。

  1. [Configure records] (レコードを設定) で、[Define simple record] (シンプルなレコードを定義) を選択します。

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

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

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

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

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

    バケットが [Choose S3 bucket] (S3 バケットの選択) リストに表示されない場合は、バケットが作成されたリージョンの Amazon S3 ウェブサイトエンドポイント (例: s3-website-us-west-2.amazonaws.com) を入力します。

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

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

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

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

ウェブサイトが正常に動作していることを確認するには、ウェブブラウザを開いて以下の URL を入力します。

  • http://your-domain-name、例えば example.com- your-domain-nameバケット内のインデックスドキュメントを表示します

  • 例えば、http://www.your-domain-name www.example.com- リクエストをyour-domain-nameバケットにリダイレクトします

状況によっては、期待される動作を実現するために、キャッシュの消去が必要になる場合があります。

インターネットトラフィックのルーティングの詳細については、「DNS サービスとしての Amazon Route 53 の設定」を参照してください。インターネットトラフィックの AWS リソースへのルーティングについては、AWS リソースへのインターネットトラフィックのルーティング を参照してください。

ステップ 12 (オプション): Amazon CloudFront を使用してコンテンツの配信を高速化する

CloudFront は、.html、.css、.js、画像ファイルなどの静的および動的なウェブコンテンツをユーザーに配信するウェブサービスです。 は、エッジロケーションと呼ばれるデータセンターの世界中のネットワークを通じてコンテンツを CloudFront 配信します。ユーザーが で提供されているコンテンツをリクエストすると CloudFront、ユーザーはレイテンシー (遅延時間) が最も低いエッジロケーションにルーティングされ、コンテンツは可能な限り最高のパフォーマンスで配信されます。

  • コンテンツがすでにエッジロケーションにあり、レイテンシーが最も低い場合、 はそのコンテンツを直ちに CloudFront 配信します。

  • コンテンツがそのエッジロケーションにない場合、 は、コンテンツの最終バージョンのソースとして識別した Amazon S3 バケットまたは HTTP サーバー (ウェブサーバーなど) からコンテンツ CloudFront を取得します。

CloudFront を使用して Amazon S3 バケットにコンテンツを配信する方法については、「Amazon CloudFront デベロッパーガイド」の「Amazon S3 からコンテンツを配信 CloudFront するときの追加」を参照してください。