Python 2 は、コミュニティでサポートを終了しました。Python 2 アプリを Python 3 に移行することをおすすめします。

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

リージョン ID

REGION_ID は、アプリを作成するときに選択するリージョンに基づいて Google が割り当てるコードです。既存のアプリでは省略可能でしたが、新しいアプリでは App Engine の URL に REGION_ID.r を含めることが必須になります。

移行がスムーズに行われるように、リージョン ID を使用するよう App Engine を徐々に更新しています。Google Cloud プロジェクトがまだ更新されていない場合、アプリにリージョン ID が表示されません。ID は既存のアプリでは省略可能なため、リージョン ID が既存のアプリで使用可能になったときに、URL を更新する、またはその他の変更を行う必要はありません。

詳しくは、リージョン ID をご覧ください。

App Engine がアプリに提供するデフォルトのアドレスではなく、カスタム ドメインを使用できます。

カスタム ドメインを使用するには、ドメインをアプリにマッピングしてから、DNS レコードを更新します。example.com のようなネイキッド ドメインや、subdomain.example.com のようなサブドメインをマッピングできます。ワイルドカードを使用してサブドメインをマッピングすることもできます。

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

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

  • us-west2
  • us-east4
  • northamerica-northeast1
  • southamerica-east1
  • europe-west2
  • europe-west3
  • asia-south1
  • asia-northeast1
  • australia-southeast1

始める前に

ドメインをお持ちでない場合は、ドメインを購入してください。任意のドメイン名録事業者を使用できますが、Google Domains を使用する場合は、App Engine のドメインが自動的に検証されるため、ドメイン検証プロセスを行う必要はありません。

カスタム ドメインをアプリにマッピングする

  1. Google Cloud Console で、App Engine の [設定] ページの [カスタム ドメイン] タブに移動します。

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

  2. [カスタム ドメインを追加してください] をクリックします。

  3. ドメインがすでに確認済みの場合、[使用するドメインを選択する] セクションにドメインが表示されます。プルダウン メニューからドメインを選択して、[続行] をクリックします。

    まだドメインを確認していない場合は、次の手順を行います。

    1. プルダウン メニューから [新しいドメインの確認] を選択します。
    2. ネイキッド ドメイン名(「example.com」など)を入力し、[確認] をクリックします。

      「www.example.com」などのサブドメインのみをマッピングする場合でも、ネイキッド ドメイン名を入力して所有権を確認します。

    3. 表示されるウェブマスター セントラル ウィンドウに情報を入力します。 ウェブマスター セントラルの使用方法については、ウェブマスター セントラルのヘルプをご覧ください。

    4. ウェブマスター セントラルで手順を完了したら、Google Cloud Console の [新しいカスタム ドメインの追加] ページに戻ります。

  4. [ドメインを [project-ID] に指定する] セクションで、マッピングするドメインとサブドメインを指定します。

    ネイキッド ドメインと www サブドメインをマッピングすることをおすすめします。サブドメインは必要に応じて追加できます。

    必要なマッピングをすべて追加したら、[マッピングを保存] をクリックします。

  5. ドメインの DNS レコードを確認するには、[続行] をクリックしてください。

    これらのレコードは、App Engine の [設定] ページの [カスタム ドメイン] タブでいつでも取得できます。

  6. ドメイン登録事業者のウェブサイトにログインし、前の手順で表示されたレコードを使用して DNS レコードを更新します。

ドメイン登録事業者で DNS レコードを更新する

App Engine でサービスをカスタム ドメインにマッピングしたら、ドメイン登録事業者で DNS レコードを更新する必要があります。利便性のため、入力に必要な DNS レコードは、App Engine によって生成され、表示されます。

  1. ドメイン マッピングの DNS レコード情報を取得します。

    Google Cloud Console で、App Engine の [設定] ページの [カスタム ドメイン] タブに移動します。このページには、アプリにマッピングされているすべてのドメインの DNS レコードが一覧表示されます。

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

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

    レコード フィールドに次の情報を入力します。

    • レコードタイプ: Google が作成した DNS レコードに表示されるレコードタイプ(AAAAACNAME)を入力します。
    • レコード名:
      • A または AAAA レコードに、@ を入力します。
      • CNAME レコードに、第 3 レベルのドメイン名を入力します。たとえば、www.example.com サブドメインをマッピングするには www と入力します。
    • TTL: 必要に応じて、TTL を指定します。
    • データ: Google が作成した DNS レコードに表示されるレコードデータ(rrdata)を入力します。
      • A または AAAA レコードでは、レコードデータは IP アドレスです。
      • CNAME レコードでは、レコードデータはドメイン名です。
  4. ドメインのアカウントの DNS 構成ページで変更を保存します。通常、この変更が反映されるまでに数分しかかかりませんが、登録事業者やドメインの以前の DNS レコードに設定されている有効期間(TTL)によっては、数時間かかることもあります。このオンラインの dig バージョンなどの dig ツールを使用して、DNS レコードが正常に更新されたことを確認できます。

  5. 新しい URL(https://www.example.com など)でサービスを閲覧して、成功したかどうかをテストします。自動 SSL 証明書の発行には数分かかる場合があるので注意してください。

他の Google Cloud ユーザーまたはサービス アカウントへの所有権を委任する

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

  1. ウェブマスター セントラル確認ページを開きます。

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

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

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

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

サブドメインを使用する

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

  • アプリケーションのバージョン名またはサービス名と一致するドメインが参照されると、アプリケーションはそのバージョンを提供します。
  • サービス名と一致するドメインが参照されると、アプリケーションはそのサービスを提供します。
  • マネージド 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 で保護する