カスタム URL を作成する

このページでは、カスタム URL を構成して管理する方法について説明します。カスタム URL を使用すると、デフォルトの決定論的 URL ではなく、Cloud Run サービス用に覚えやすく、グローバルに利用可能な URL を取得できます。

  • カスタム URL 形式: https://CUSTOM_URL_DOMAIN.cloud.run
  • デフォルトの URL 形式: https://SERVICE_NAME-PROJECT_NUMBER.REGION.run.app

カスタム URL を使用すると、カスタム ドメイン、DNS レコード、外部ロードバランサを設定せずにサービスを共有できます。

Cloud Run サービスにカスタム URL を使用すると、次のメリットがあります。

  • シンプルな URL: サービスをクリーンな https://CUSTOM_URL_DOMAIN.cloud.run 形式にマッピングします。
  • グローバルで利用可能: カスタム URL は、標準の .run.app URL と同様に、どこからでもアクセスできます。
  • 柔軟なライフサイクル: 新しいリビジョンをデプロイせずに、カスタム URL をサービス間で柔軟に接続、切断、移動できます。
  • 複数のマッピング: 複数のカスタム URL を 1 つのサービスにマッピングできます。

始める前に

  1. Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオで Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分も差し上げます。
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Google Cloud プロジェクトで Cloud Run 開発環境を設定します。
  7. gcloud CLI をインストールして初期化します。

必要なロール

カスタム URL の管理に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

  • カスタム URL マッピングを作成、更新、削除する: プロジェクトに対する Cloud Run 管理者 (roles/run.admin)

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

制限事項

  • デフォルトでは、プロジェクトごとに最大 50 個のドメインをマッピングできます。
  • カスタム URL のサブドメインは 6 ~ 63 文字で、英数字とハイフンを使用できる標準の DNS 命名規則に準拠している必要があります。先頭と末尾をハイフンにすることはできません。
  • 一部のサブドメインは制限されています。
  • デフォルトの .run.app URL とは異なり、カスタム URL を一時的に無効にすることはできません。トラフィックの配信を停止するには、マッピングを削除する必要があります。
  • 内部トラフィックまたは内部と Cloud Load Balancingトラフィックに上り(内向き)を制限する Cloud Run サービスはサポートされていません。
  • Terraform はカスタム URL でサポートされていません。潜在的な破壊的変更を回避するには、プレビュー版の domain_mapping リソースを使用しないでください。
  • カスタム URL は完全に独立しています。サービスのデフォルトの .run.app URL を無効にする場合、カスタム URL マッピングは完全に有効な状態が維持され、アクセス可能になります。

カスタム URL をサービスに接続またはマッピングする

カスタム URL は、新しいサービスをデプロイするときに新しいサービスに付加するか、 Google Cloud コンソールまたは gcloud を使用して既存のサービスにマッピングできます。

カスタム URL を新しいサービスに関連付ける

新しい Cloud Run サービスをデプロイするときに、デプロイ構成の一部としてカスタム URL を関連付けることができます。

  1. Google Cloud コンソールで、[Cloud Run] [サービス] ページに移動します。

    Cloud Run に移動

  2. [コンテナをデプロイ] をクリックします。

  3. サービスの基本構成の詳細を入力します。

  4. [カスタム URL] セクションで、[カスタム URL を追加] をクリックします。

  5. 有効なカスタム URL ドメインを入力します。

  6. 省略可。複数のカスタム URL を追加するには、[カスタム URL を追加] をもう一度クリックします。

  7. [作成] をクリックします。

カスタム URL を既存のサービスにマッピングする

Google Cloud コンソールまたは gcloud CLI を使用して、カスタム URL を既存の Cloud Run サービスにマッピングできます。

コンソール

  1. Google Cloud コンソールで、[ドメイン マッピング] ページに移動します。

    [ドメイン マッピング] に移動

  2. [カスタム URL を追加] をクリックします。

  3. [サービス] リストで、マッピングするサービスを選択します。

  4. カスタム URL ドメインを入力します。

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

複数のカスタム URL を追加する場合は、[カスタム URL を追加] をもう一度クリックして、上記の手順に沿って操作します。

gcloud

既存のサービスのカスタム URL ドメイン マッピングを作成するには、次のコマンドを実行します。

gcloud beta run domain-mappings create \
    --service=SERVICE_NAME \
    --domain=CUSTOM_URL_DOMAIN.cloud.run

次のように置き換えます。

  • SERVICE_NAME: カスタム URL のマッピング先となるサービスの名前。
  • CUSTOM_URL_DOMAIN: アタッチするサブドメイン。

省略可。gcloud CLI を使用して複数のカスタム URL をマッピングするには、カスタム URL ごとにマッピング作成コマンドを繰り返し実行します。

gcloud beta run domain-mappings create \
    --service=SERVICE_NAME \
    --domain=CUSTOM_URL_DOMAIN_1.cloud.run

gcloud beta run domain-mappings create \
    --service=SERVICE_NAME \
    --domain=CUSTOM_URL_DOMAIN_2.cloud.run

次のように置き換えます。

  • SERVICE_NAME: デプロイするサービスの名前。
  • CUSTOM_URL_DOMAIN_1: 接続する最初のサブドメイン。
  • CUSTOM_URL_DOMAIN_2: 関連付ける 2 番目のサブドメイン。

リクエストされたサブドメインが Google Cloudですでに別のユーザーまたはサービスで使用されている場合は、エラーが表示され、一意のターゲットを選択する必要があります。

カスタム URL を一覧表示して表示する

すべてのカスタム URL を一覧表示し、環境のマッピングの詳細を表示できます。

コンソール

  1. Google Cloud コンソールで、[Cloud Run] ページに移動します。

    Cloud Run に移動

  2. サービスの名前をクリックします。

  3. [ネットワーキング] タブに移動します。

  4. [エンドポイント] ラベルの [カスタム ドメイン] セクションで、添付した URL を確認します。

gcloud

プロジェクト内のすべてのカスタム URL とドメイン マッピングを一覧表示するには、次のコマンドを実行します。

gcloud beta run domain-mappings list

特定のカスタム URL ドメイン マッピングの詳細を表示するには、次のコマンドを実行します。

gcloud beta run domain-mappings describe \
    --domain=CUSTOM_URL_DOMAIN.cloud.run

CUSTOM_URL_DOMAIN は、説明するサブドメインに置き換えます。

カスタム オーディエンスで保護する

カスタム オーディエンスをカスタム URL に関連付けて、アクセスを制限できます。

gcloud beta run services update SERVICE_NAME \
    --add-custom-audiences=CUSTOM_URL_DOMAIN.cloud.run

次のように置き換えます。

  • SERVICE_NAME: サービスの名前。
  • CUSTOM_URL_DOMAIN: カスタム オーディエンスとして機能するサブドメイン。

カスタム URL を削除する

カスタム URL マッピングは、不要になったら削除できます。

コンソール

  1. Google Cloud コンソールで、[ドメイン マッピング] ページに移動します。

    [ドメイン マッピング] に移動

  2. 削除するカスタム URL の横にあるチェックボックスをオンにします。

  3. [削除] をクリックします。

gcloud

Cloud Run サービスからカスタム URL ドメイン マッピングを削除するには、次のコマンドを実行します。

gcloud beta run domain-mappings delete \
    --domain=CUSTOM_URL_DOMAIN.cloud.run

CUSTOM_URL_DOMAIN は、削除するサブドメインに置き換えます。

既知の問題

  • 伝播の遅延: カスタム URL を作成してから完全に機能するまで数秒かかることがあります。作成直後に URL にアクセスすると、一時的なルーティング エラーが発生する可能性があります。

  • カスタム URL を更新または移動する: カスタム URL の直接更新コマンドはありません。関連付けられたカスタム URL をあるサービスから別のサービスに移動するには、削除と再作成のフローに沿って操作する必要があります。

    コンソール

    1. Google Cloud コンソールで、[ドメイン マッピング] ページに移動します。

      [ドメイン マッピング] に移動

    2. 移動するカスタム URL の横にあるチェックボックスをオンにします。

    3. [削除] をクリックします。

    4. [カスタム URL を追加] をクリックします。

    5. [サービス] リストで、新しいターゲット サービスを選択します。

    6. 以前に申し立てたカスタム URL のドメインを正確に入力します。

    7. [作成] をクリックして、トラフィックを新しいサービスにリダイレクトします。

    gcloud

    1. 古いサービスから既存のマッピングを削除します。

      gcloud beta run domain-mappings delete \
          --domain=CUSTOM_URL_DOMAIN.cloud.run

      CUSTOM_URL_DOMAIN は、以前に所有権を主張したサブドメインに置き換えます。

    2. URL を再利用して新しいサービスにマッピングします。

      gcloud beta run domain-mappings create \
          --service=NEW_SERVICE_NAME \
          --domain=CUSTOM_URL_DOMAIN.cloud.run

      次のように置き換えます。

      • NEW_SERVICE_NAME: カスタム URL の移動先のサービスの名前。
      • CUSTOM_URL_DOMAIN: 関連付けるサブドメイン。

次のステップ