Amazon CloudFront ディストリビューションを使用して静的なウェブサイトを提供する - Amazon Route 53

Amazon CloudFront ディストリビューションを使用して静的なウェブサイトを提供する

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

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

  • ドメインの証明書を作成する。

  • 2 つの Amazon S3 バケットを作成し、1 つをウェブサイトをホストするように設定し、もう 1 つをサブドメインにリダイレクトするように設定する。

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

  • 両方の S3 バケットの CloudFront ディストリビューションを作成する。

  • Amazon Route 53 を設定して、CloudFront ディストリビューションにトラフィックをルーティングする。

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

前提条件

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

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

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

Amazon Route 53 を使用して新しいドメインを登録します。
  1. AWS Management Console にサインインし、Route 53 コンソール (https://console.aws.amazon.com/route53/) を開きます。

  2. Route 53 を初めて使用する場合は、[今すぐ始める] を選択します。

    既に Route 53 を利用している場合は、ナビゲーションペインの [Registered Domains (登録済みドメイン)] を選択します。

  3. [Register Domain] をクリックします。

  4. 登録するドメイン名を入力し、[Check] を選択してそのドメイン名が使用できるかどうか確認します。

    a~z、0~9、- (ハイフン) 以外の文字を指定する方法、および国際化されたドメイン名を指定する方法については、「DNS ドメイン名の形式」を参照してください。

  5. ドメインが使用できる場合は、[Add to cart] を選択します。ドメイン名がショッピングカートに表示されます。

    [Related domain suggestions] (関連ドメイン候補) リストには、最初の選択肢が使用できない場合にその代わりに、または、最初の選択肢に加えて登録できる他のドメインが表示されます。登録する追加のドメインごとに [Add to cart] を選択します。最大 5 個のドメインを登録できます。

    入力したドメイン名を使用できず、提案されたドメイン名も使用したくない場合は、使用したいドメイン名が見つかるまでステップ 4 を繰り返します。

    注記

    www.ドメイン名 (www.example.com など) でサンプルウェブサイトにアクセスできるようにする場合でも、2 つ目のドメインを作成する必要はありません。このトピックの中で、www.ドメイン名のトラフィックをウェブサイトにルーティングする方法について説明します。

  6. カートショッピングで、ドメインを登録する年数を選択します。

  7. 他のドメインを登録するには、ステップ 4 ~ 6 を繰り返します。

  8. [続行] をクリックします。

  9. [Contact Details for Your n Domains] ページで、ドメインの登録者、管理者、技術担当者の連絡先情報を入力します。

    デフォルトでは、3 種類の連絡先すべてについて同じ情報が使用されます。連絡先として異なる情報を入力する場合は、[My Registrant, Administrative, and Technical Contacts are all the same] の値を [No] に変更します。

    複数のドメインを登録する場合は、すべてのドメインについて同じ連絡先情報が使用されます。

    詳細については、「ドメインを登録または移管するときに指定する値」を参照してください

  10. 一部の最上位ドメイン (TLD) では追加情報を収集する必要があります。そのような TLD の場合は、[Postal/Zip Code] の後に、該当する値を入力します。

  11. WHOIS クエリに対して連絡先情報を非表示にするかどうかを選択します。詳細については、以下のトピックを参照してください。

  12. [続行] をクリックします。

  13. 入力した情報を確認し、サービスの利用規約を読み、利用規約を読んだことを確認するチェックボックスをオンにします。

  14. [Complete Purchase] を選択します。

    連絡先として指定されたメールアドレスで登録者に連絡できることを確認するメールがドメインの登録者に送信されます (これは ICANN の要件です)。メールは次のメールアドレスの 1 つから送信されます。

    • noreply@registrar.amazon.com – Amazon Registrar によって登録された TLD の場合。

    • noreply@domainnameverification.net – レジストラアソシエイトである Gandi によって登録された TLD の場合。

    TLD のレジストラを調べる方法については、「レジストラの検索」を参照してください。

    重要

    登録者はメールの指示に従って、メールを受け取ったことを通知する必要があります。そうしないと、ICANN の規定に従ってそのドメインは停止されます。ドメインが停止されると、インターネットでそのドメインにアクセスできなくなります。

    ドメイン登録が承認されると、別のメールを受け取ります。リクエストの現在のステータスを調べるには、「ドメイン登録のステータスの表示」を参照してください。

デフォルトでは、ドメインは 1 年間登録されます。ドメインの維持を希望しない場合は、自動更新を無効にしてドメインを 1 年後に期限切れにすることができます。

(オプション) ドメインの自動更新をオフにするには
  1. ナビゲーションペインで [Registered Domains] をクリックします。

  2. ドメインリストから、ドメインにリンク済みの名前を選択します。

  3. [Auto renew] (自動更新) フィールドの値が [Enabled (disable)] (有効 (無効化)) であれば、[disable] (無効化) を選択して自動更新をオフにします。変更はすぐに反映されます。

    フィールドの値が [Disabled (enable)] の場合は、設定を変更しません。

ステップ 2: パブリック証明書のリクエスト

Amazon CloudFront ディストリビューションによって、 ビューワーが HTTPS を使用するように CloudFront が設定されて、CloudFront とビューワーとの通信で接続が暗号化されるようにするには、パブリック証明書が必要です。

AWS Certificate Manager (ACM) パブリック証明書をリクエストするには (コンソール)
  1. AWS マネジメントコンソールにサインインして ACM コンソール (https://console.aws.amazon.com/acm/home) を開きます。

    注記

    米国東部 (バージニア北部) リージョンで証明書を作成していることを確認します。Amazon CloudFront では、これが必要です。

    [Request a public certificate] (パブリック証明書のリクエスト)、[Request a certificate] (証明書のリクエスト) の順に選択します。

  2. [Domain name] (ドメイン名) では、example.com など、自分のドメインを入力します。

    [Add another name to this certificate] (この証明書に別の名前を追加する) で、ドメイン名の前にアスタリスクを入力して、すべてのサブドメインに対してワイルドカード証明書を要求します (例: *.example.com)。

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

  4. リポジトリの [Select validation method] (検証方法の選択) ページで、[DNS validation] (DNS 検証) を選択し、[Next] (次へ) をクリックします。

  5. [タグの追加] ページでは、オプションで証明書にタグを付けることができます。タグとは、AWS リソースを識別および整理するためのメタデータとして機能するキーと値のペアのことを指します。

    タグの追加が完了したら、[Confirm] を選択します。

  6. リポジトリの [Review] (確認) ページで、入力した情報が正しいことを確認してから、[Confirm and request] (確認とリクエスト) をクリックします。

  7. リポジトリの [Validation] (検証) ページで、両方のドメインを展開し、[Create record in Route 53] (Route 53 でレコードを作成する) を選択してドメインの CNAME レコードを自動的に追加し、[Create] (作成) をクリックします。

    [Success] (成功) が両方のドメインに対して表示されたら、ページの下部にある [Continue] (続行) をクリックします。

ステップ 3: サブドメインをホストする S3 バケットを作成する

www.ドメイン名 用の別の S3 バケットを作成するには

Amazon S3 では、インターネットのどこからでもデータの保存と取得を実行できます。このステップでは、ウェブサイトのすべてのファイルを保存する S3 バケットを作成します。

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

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

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

    バケット名 

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

    リージョン

    バケットのリージョンを選択します。

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

    S3 バケットの設定の詳細については、Amazon S3 ユーザーガイドの「S3 バケットのプロパティを表示するには」を参照してください。

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

.ドメイン名 (example.com など) というルートドメインを使用してユーザーがサンプルウェブサイトにアクセスできるようにする場合、2 つ目の S3 バケットを作成します。最初のバケットにトラフィックをルーティングするように 2 つ目のバケットを設定します。

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

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

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

    バケット名 

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

    リージョン

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

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

ステップ 5: ウェブサイトファイルをサブドメインバケットにアップロードする

S3 バケットの作成が完了したので、ウェブサイトファイルをアップロードできます。このチュートリアルでは、ページにテキストを表示するシンプルな index.html ファイルをアップロードします。

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

  2. Buckets (バケット) リストで、ウェブサイトファイルのアップロード先のバケットのリンク名 (例: www.example.com) を選択します。

  3. シンプルな 1 ページのウェブサイトを作成するためのサンプルテキストをコピーしてテキストエディタに貼り付け、index.html として保存します。

    <html> <head> <title>Amazon Route 53 Getting Started</title> </head> <body> <h1>Routing Internet traffic to Cloudfront distributions for your website stored in an S3 bucket</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>
  4. [Objects] (オブジェクト) タブで、[Upload] (アップロード) を選択します。

  5. [Files and folders] (ファイルとフォルダ) で、[Add files] (ファイルの追加) を選択して、ウェブサイトファイルをアップロードします。このチュートリアルでは、ステップ 3 で保存した index.html ファイルをアップロードします。

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

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

リダイレクトを設定するには
  1. Amazon S3 コンソールの [Buckets] (バケット) リストで、バケット名 (example.com など) を選択します。

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

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

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

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

  6. [Host name] (ホスト名) ボックスに、サブドメインを入力します (例: www.example.com)。

  7. [Protocol] (プロトコル) として [https] を選択します。

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

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

    [Endpoint (エンドポイント)] は、バケットの Amazon S3 ウェブサイトエンドポイントです。このエンドポイントを使用して、Amazon CloudFront ディストリビューションを設定します。

ステップ 7: サブドメイン用の Amazon CloudFront ディストリビューションを作成する

このステップでは、www.example.com などのサブドメイン用の CloudFront ディストリビューションを作成し、ウェブサイトが HTTPS を使用できるようにして、ユーザーが安全に表示できるようにします。

CloudFront ディストリビューションを作成するには
  1. で CloudFront コンソールを開きますhttps://console.aws.amazon.com/cloudfront/v3/home

  2. [Create Distribution] を選択します。

  3. [オリジン][オリジンドメイン] で、前の手順で作成した Amazon S3 バケットを選択します。

    [S3 バケットへのアクセス] で、[オリジンアクセスコントロール設定 (推奨) バケットは CloudFront のみにアクセスを制限できます] を選択します。[Origin access identity] (オリジンアクセスアイデンティティ) では、リストから選択するか、[Create new OAI] (新しい OAI の作成) を選択します (どちらも動作します)。

    [Bucket policy] (バケットポリシー) では、[Yes, update the bucket policy] (はい、バケットポリシーを更新します) を選択します。

  4. [Default Cache Behavior Settings] (デフォルトのキャッシュ動作の設定) の下で、[Viewer (ビューワー) にある [Viewer protocol policy] (ビューワープロトコルポリシー) を [Redirect HTTP to HTTPS] (HTTP を HTTPS にリダイレクト) に 設定し、残りの設定はデフォルト値のままにします。

    キャッシュ動作のオプションの詳細については、Amazon CloudFront デベロッパーガイドの「キャッシュ動作の設定」を参照してください。

  5. [Settings] (設定) の下にあるフィールドで、次の作業を行います。

    • [Alternate domain name (CNAME) - optional] (代替ドメイン名 (CNAME) - オプション) に [Add item] (アイテムの追加) を選択し、www.example.com などのサブドメインを入力します。

    • [Custom SSL Certificate] (カスタム SSL 証明書) では、以前に作成した証明書を選択します。

    • [Default root object] (デフォルトのルートオブジェクト) テキストボックスに「index.html」と入力します。

    • それ以外は、デフォルト値のままにしておきます。

      ディストリビューションのオプションの詳細については、「ディストリビューション設定」を参照してください。

  6. ページの最下部で、[ディストリビューションの作成] をクリックします。

  7. CloudFront がディストリビューションを作成すると、ディストリビューションの [ステータス] 列の値が、[進行中] から [デプロイ済み] に変わります。これには通常数分かかります。

    CloudFront によってディストリビューションに割り当てられたドメイン名が記録され、ディストリビューションのリストに表示されます。このドメイン名を使用して、ディストリビューションをテストできます。

ステップ 8: ルートドメインの Amazon CloudFront ディストリビューションを作成する

このステップでは、ルートドメインの CloudFront ディストリビューションを作成して、その URL がサブドメインにリダイレクトされるときに HTTPS を使用するようにします。

CloudFront ディストリビューションを作成するには
  1. で CloudFront コンソールを開きますhttps://console.aws.amazon.com/cloudfront/v3/home

  2. [Create Distribution] を選択します。

  3. [Origin Settings] (オリジンの設定) で、[Origin Domain Name] (オリジンドメイン名) に、バケットウェブサイトエンドポイントを入力します。以前に作成した Amazon S3 バケットの [Properties] (プロパティ) の [Static website hosting] (静的ウェブサイトホスティング) セクションからこれを取得します。

    それ以外は、デフォルト値のままにしておきます。

  4. [Default Cache Behavior Settings]( デフォルトのキャッシュ動作の設定) の各フィールドについて、次の作業を行います。

    • [Viewer] (ビューワー) で、[Viewer protocol policy] (ビューワープロトコルポリシー) を [Redirect HTTP to HTTPS] (HTTP を HTTPS にリダイレクト) に設定してください。

    • [Cache settings] (キャッシュ設定) を [CachingDisabled] (キャッシュ無効化) に設定してください。

    • 残りの部分はデフォルト値のままにします。

    キャッシュ動作のオプションの詳細については、Amazon CloudFront デベロッパーガイドの「キャッシュ動作の設定」を参照してください。

  5. [Settings] (設定) の下にあるフィールドで、次の作業を行います。

    • [Alternate domain name (CNAME) - optional] (代替ドメイン名 (CNAME) - オプション) に [Add item] (アイテムを追加) を選択し、example.com などのルートドメインを入力します。

    • [Custom SSL Certificate] (カスタム SSL 証明書) では、以前に作成した証明書を選択します。

    • それ以外は、デフォルト値のままにしておきます。

    ディストリビューションのオプションの詳細については、「ディストリビューション設定」を参照してください。

  6. ページの最下部で、[ディストリビューションの作成] をクリックします。

  7. CloudFront がディストリビューションを作成すると、ディストリビューションの [ステータス] 列の値が、[進行中] から [デプロイ済み] に変わります。これには通常数分かかります。

    CloudFront によってディストリビューションに割り当てられたドメイン名が記録され、ディストリビューションのリストに表示されます。このドメイン名を使用して、ディストリビューションをテストできます。

ステップ 9: ドメインの DNS トラフィックを CloudFront ディストリビューションにルーティングする

これで、CloudFront ディストリビューションを使用する 1 ページのウェブサイトが S3 バケットに配置されました。ドメインのインターネットトラフィックが CloudFront ディストリビューションにルーティングされるようにするには、次の手順を実行します。

CloudFront Distributions へのトラフィックのルーティングの詳細については、「ドメイン名を使用したトラフィックの Amazon CloudFront ディストリビューションへのルーティング」を参照してください。。

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

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

    注記

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

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

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

    [Quick create record] (レコードのクイック作成) ビューが表示されている場合は、[Switch to wizard] (ウィザードへの切り替え) を選択します。

    注記

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

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

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

  7. [Record name] (レコード名) では、デフォルト値の前に「www」を入力します。これが、ホストゾーンとドメインの名前です。

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

  9. [Value/Route traffic to] (値/トラフィックのルーティング先) で、[Alias to CloudFront distribution] (CloudFront ディストリビューションへのエイリアス) を選択します。

  10. ディストリビューションを選択します。

    ディストリビューション名は、[Distributions] (ディストリビューション) リストの [Domain name] (ドメイン名) ボックスに表示されている名前と一致する必要があります (例えば、dddjjjkkk.cloudfront.net)。

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

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

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

ルートドメインのエイリアスレコードをさらに追加して、そのレコードがトラフィックを www.example.com にリダイレクトする S3 バケットを指すようにします。CloudFront ディストリビューションへのトラフィックのルーティングの詳細については、「ドメイン名を使用したトラフィックの Amazon CloudFront ディストリビューションへのルーティング」を参照してください。

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

  2. [Record name] (レコード名) では、デフォルト値をそのまま使用します。

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

  4. [Value/Route traffic to] (値/トラフィックのルーティング先) で、[Alias to CloudFront distribution] (CloudFront ディストリビューションへのエイリアス) を選択します。

  5. ディストリビューションを選択します。

    ディストリビューション名は、[Distributions] (ディストリビューション) リストの [Domain name] (ドメイン名) ボックスに表示されている名前と一致する必要があります (例えば、dddjjjkkk.cloudfront.net)。

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

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

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

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

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

  • https://www.ドメイン名 (www.example.com など) – www.ドメイン名 のバケットにあるインデックスドキュメントが表示されます

  • https://ドメイン名 (example.com など) – リクエストが www.ドメイン名 のバケットにリダイレクトされます

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

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