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

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

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

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

次のリージョンでカスタム ドメインを使用すると、レスポンスに著しいレイテンシが発生する可能性があります。

  • us-west2
  • us-east4
  • northamerica-northeast1
  • southamerica-east1
  • europe-west2
  • europe-west3
  • asia-south1
  • asia-northeast1
  • 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 レコードを使用する場合は、TXT レコードが CNAME レコードにオーバーライドされ、ドメインが未確認となることを避けるため、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. ウェブマスター セントラルを使用して、ドメインの所有権を確認します。

      重要: App Engine では、CNAME レコードを使用してドメインのオーナー権限を確認することをおすすめします。TXT レコードを使用する場合は、TXT レコードが CNAME レコードにオーバーライドされ、ドメインが未確認となることを避けるため、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. ドメインの所有権を他のユーザーまたはサービス アカウントに委任する必要がある場合は、ウェブマスター セントラルのページで権限を追加できます。

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

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

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

    3. [Verified owners] リストまでスクロールして [Add an owner] をクリックし、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 構成に追加するレコードは、ホスト名(例: 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 で保護する

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

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

Python 2 の App Engine スタンダード環境