カスタム ドメインのマッピング

App Engine では、デフォルトの example.com アドレスの代わりに、appspot.com などのカスタム ドメインによりアプリケーションを提供できます。App Engine アプリのドメイン マッピングを作成すると、App Engine アプリでカスタム ドメインを使用できます。

デフォルトでは、カスタム ドメインをアプリにマッピングすると、App Engine は HTTPS 接続用のマネージド SSL 証明書を発行します。独自の SSL 証明書の使用方法をはじめとするカスタム ドメインでの SSL の使用法の詳細については、カスタム ドメインを SSL で保護するをご覧ください。

このページでは、App Engine で実行されているアプリのドメイン マッピングの作成方法を説明します。

次のリージョンでカスタム ドメインを使用すると、レスポンスのレイテンシが著しく大きくなる可能性があります。northamerica-northeast1(モントリオール)、southamerica-east1(サンパウロ)、asia-south1(ムンバイ)、australia-southeast1(シドニー)

始める前に

  1. 使用するドメインをまだ所有していない場合、新しいドメインを購入してください。ドメイン名は Google Domains などのドメイン名登録事業者から取得できます。

  2. gcloud ツールコマンドを使用する場合は、次のようにします。

    1. Cloud SDK をインストールし、初期化します。

      ダウンロードとインストール

  3. Admin API を使用する場合は、Admin API へのアクセスの前提条件に関する情報をご覧ください。

アプリケーションにカスタムドメインを追加する

App Engine アプリにカスタム ドメインを追加するには、次の手順を行います。

  1. ウェブマスター セントラルで、ドメインのオーナーであることを確認します。

    Console
    1. Google Cloud Platform Console で [App Engine] > [設定] > [カスタム ドメイン] に移動します。

      [カスタム ドメイン] ページに移動

    2. [カスタム ドメインを追加] をクリックし、[新しいカスタム ドメインの追加] フォームを表示します。

      カスタム ドメインを追加

    3. [使用するドメインを選択する] セクションで、使用するドメインの名前(example.com など)を入力し、[続行] をクリックします。ウェブマスター セントラルのページで新しいタブが開きます。
      1. ウェブマスター セントラルを使用して、ドメインの所有権を確認します。

        重要: App Engine では、CNAME レコードを使用してドメインの所有権を確認することをおすすめします。TXT レコードを使用する場合は、CNAME レコードが TXT レコードをオーバーライドし、ドメインが未確認となるため、CNAME レコードを使用してドメインの DNS を構成しないでください。

        ドメインの確認方法で CNAME レコード オプションが提供されない場合は、ドメイン プロバイダとして [その他] を選択し、[CNAME レコードを追加する] を選択します。

        1. [別の方法] をクリックし、[ドメイン名プロバイダ] をクリックします。
        2. メニューの [その他] を選択します。
        3. [問題がある場合] セクションで [CNAME レコードを追加する] をクリックし、指示に従ってドメインの所有権を確認します。

          注意: CNAME がドメイン登録事業者に設定されるまでに 1 分ほどかかることがあります。

      2. GCP Console の [新しいカスタム ドメインの追加] フォームに戻ります。
    gcloud
    1. 次の gcloud domains コマンドを使用して、ウェブマスター セントラルのページを開きます。

      gcloud domains verify DOMAIN

      DOMAIN は所有権を確認するドメインです。

      例:

      gcloud domains verify example.com
    2. Search Console を使用して、ドメインの所有権を確認します。

      重要: App Engine では、CNAME レコードを使用してドメインの所有権を確認することをおすすめします。TXT レコードを使用する場合は、CNAME レコードが TXT レコードをオーバーライドし、ドメインが未確認となるため、CNAME レコードを使用してドメインの DNS を構成しないでください。

      ドメインの確認方法で CNAME レコード オプションが提供されない場合は、ドメイン プロバイダとして [その他] を選択し、[CNAME レコードを追加する] を選択します。

      1. [別の方法] をクリックし、[ドメイン名プロバイダ] をクリックします。
      2. メニューの [その他] を選択します。
      3. [問題がある場合] セクションで [CNAME レコードを追加する] をクリックし、指示に従ってドメインの所有権を確認します。

        注意: CNAME がドメイン登録事業者に設定されるまでに 1 分ほどかかることがあります。

      ドメインの DNS 構成に次の CNAME レコードを追加するには、次を実行します。
      CNAME Label / Host: a1b2c3d4e5.example.com.
      CNAME Destination / Target: gv-abcdefghijk.dv.googlehosted.com
      Label / Host および Destination / Target 値をドメインの DNS 構成の対応するフィールドにマッピングします。たとえば、Google Domains では、CNAME を次のように設定します。
      NAMETYPETTLDATA
      a1b2c3d4e5CNAME1hgv-abcdefghijk.dv.googlehosted.com.

      ドメインに固有の手順など、CNAME レコードの追加の詳細については、サポートページをご覧ください。

  2. ドメインが確認済みであることを確認してください。確認が完了していない場合、次の手順に進むことができません。確認済みのドメインのみが表示されます。

    Console

    ドメインがまだリストにない場合は、[ドメインを更新] をクリックします。

    gcloud

    次の gcloud domains コマンドを実行して、確認済みのドメインを一覧表示します。

    gcloud domains list-user-verified
    API

    確認したドメインをプログラムで一覧表示するには、Admin API の apps.authorizedDomains.list メソッドを参照してください。

  3. ドメインの所有権を他のユーザーまたはサービス アカウントに委任する必要がある場合は、[Search Console] ページで権限を追加できます。

    1. ウェブブラウザで次のアドレスを開きます。

      https://www.google.com/webmasters/verification/home

    2. [プロパティ] で、ユーザーまたはサービス アカウントを追加するドメインをクリックします。

    3. [確認済みサイト所有者] リストまでスクロールして [サイト所有者を追加] をクリックし、Google アカウントのメールアドレスまたはサービス アカウント ID を入力します。

      サービス アカウントのリストを表示するには、GCP Console の [サービス アカウント] ページを開きます。

      [サービス アカウント] ページに移動

  4. ドメインの所有権を確認したら、そのドメインを App Engine アプリにマッピングできます。

    Console

    [新しいカスタム ドメインの追加] フォームの次のステップに進み、App Engine アプリにマッピングするドメインを選択します。

    1. マッピングするドメインとサブドメインを指定します。ネイキッド ドメインと www サブドメインは、フォームに自動入力されます。
      • example.com などのネイキッド ドメインは、http://example.com にマッピングされます。
      • www などのサブドメインは、http://www.example.com にマッピングされます。
    2. [マッピングを保存] をクリックして目的のマッピングを作成します。
    3. [新しいカスタム ドメインの追加] フォームの最後のステップでは、タイプと正規名(CNAME)とともに一覧表示されているリソース レコードをメモします。これらの詳細をドメインの DNS 構成に追加する必要があります。

      次の例では、CNAME が一覧表示されているタイプの 1 つであり、ghs.googlehosted.com がその正規名です。

      カスタム ドメインを追加
    gcloud

    次の gcloud app domain-mappings コマンドを実行して、ドメインを App Engine アプリにマッピングします。

    gcloud app domain-mappings create DOMAIN
    • DOMAIN の部分は、App Engine アプリにマッピングするドメイン(*.example.com など)に置き換えます。
    • エラーが発生した場合は、ドメインを引用符で囲んでください(例: '*.example.com')。

      例:

      gcloud app domain-mappings create '*.example.com'
    • 一覧表示されているリソース レコード(タイプと正規名(CNAME)を含む)をメモします。これは、これらの詳細をドメインの DNS 構成に追加する必要があるためです。
    API

    プログラムによってドメインを App Engine アプリにマッピングするには、Admin API の app.domainMappings.create メソッドをご覧ください。

    ドメインが App Engine アプリにマッピングされたら、apps.domainMappings.list メソッドを使用して、リソース レコードを一覧表示します。

  5. 受信したリソース レコードをドメイン登録事業者の DNS 構成に追加します。

    1. ドメイン登録事業者のアカウントにログインし、DNS 構成ページを開きます。

    2. ドメインの構成ページのホスト レコード セクションを見つけて、ドメインを App Engine アプリにマッピングしたときに受け取った各リソース レコードを追加します。

      通常は、ホスト名と、アドレスとなる正規名を追加していきます。たとえば、Google Domain を登録した場合、DNS 構成に追加するレコードの 1 つは www ホスト名と ghs.googlehosted.com アドレスです。独自ドメインを指定するには、ghs.googlehosted.com アドレスに @ を使用します。

      別のプロバイダから移行する場合は、すべての DNS レコードが App Engine アプリをポイントしていることを確認します。

      ドメインのマッピングの詳細については、次のサブドメインを使用するおよびワイルドカード マッピングのセクションをご覧ください。

    3. ドメインのアカウントの DNS 構成ページに変更を保存します。変更が反映されるまでしばらく時間がかかることがあります。

  6. 新しいドメインの URL(www.example.com)でアプリを閲覧して、成功したかどうかテストします。

サブドメインを使用する

カスタム ドメインにワイルドカード サブドメイン マッピングを設定すると、アプリケーションは、一致するサブドメインに対するリクエストを処理します。

  • アプリケーションのバージョン名またはサービス名と一致するドメインが表示された場合、アプリケーションではそのバージョンが提供されています。
  • サービス名と一致するドメインが表示された場合、アプリケーションではそのサービスが提供されています。
  • マネージド SSL 証明書には上限(ベースドメインごとに週あたり 20 個)があります。この制限に達した場合、App Engine はすべてのリクエストが処理されるまで、マネージド証明書の発行を継続します。

ワイルドカード マッピング

ワイルドカードを使用すると、第 3 レベル以降であればどのレベルのサブドメインでもマッピングできます。たとえば、使用するドメインが example.com の場合、ウェブアドレス フィールドにテキストを入力すると次のような結果になります。

  • *.example.com」と入力すると、example.com のすべてのサブドメインがアプリにマッピングされます。
  • *.private.example.com」と入力すると、private.example.com のすべてのサブドメインがアプリにマッピングされます。
  • *.nichol.sharks.nhl.example.com」と入力すると、nichol.sharks.nhl.example.com のすべてのサブドメインがアプリにマッピングされます。
  • *.excogitate.system.example.com」と入力すると、excogitate.system.example.com のすべてのサブドメインがアプリにマッピングされます。

dispatch.yaml ファイルを使用して特定のサービスに対するリクエストのルーティングを定義すると、App Engine のサービスでワイルドカード マッピングを使用できます。

sitesmail など、ドメインのその他のサブドメインと G Suite を使用する場合、これらのマッピングの優先順位が高くなり、ワイルドカード マッピングが行われる前に最初に照合されます。また、他の App Engine アプリを他のサブドメインにマッピングしている場合にも、これらのマッピングはワイルドカード マッピングよりも優先順位が高くなります。

DNS プロバイダによってはワイルドカード サブドメイン マッピングに対応していないことがあります。特に、CNAME ホストエントリでのワイルドカードの使用が許可されているかどうかに注意が必要です。

ワイルドカード ルーティング ルールは、App Engine のサービス ルーティング ルールに従って、サービス、バージョン、インスタンスのコンポーネントを含む URL に適用されます。

次のステップ

カスタム ドメインを SSL で保護します。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

PHP の App Engine フレキシブル環境に関するドキュメント