グローバル外部アプリケーション ロードバランサを使用してカスタム ドメインをマッピングする

Cloud Run サービスに新しいパブリック エンドポイントを設定するには、Cloud Load Balancing を使用して、Cloud Run サービスの前にグローバル外部アプリケーション ロードバランサを追加します。グローバル外部アプリケーション ロードバランサを使用すると、カスタム ドメインの設定を制御できますが、TLS 証明書を所有していない場合や、グローバル外部アプリケーション ロードバランサを使用している場合は、設定手順が必要です。

このページで説明する Cloud Run インテグレーション(プレビュー)を使用すると、グローバル外部アプリケーション ロードバランサを使用して Cloud Run サービスに対して新しいカスタム ドメイン マッピングをすばやく設定できます。既存のグローバル外部アプリケーション ロードバランサを使用する場合は、Cloud Run を使用したグローバル外部アプリケーション ロードバランサの設定をご覧ください。

始める前に

  • Cloud Run サービスにマッピングするドメインの DNS を変更するために必要なアクセス権があることを確認します。

必要なロール

Cloud Run インテグレーションを使用するには、ユーザーまたは管理者が 2 つの異なるプリンシパルに IAM のロールを付与する必要があります。

クリックして Google アカウントに必要なロールを表示

Cloud Run の統合を使用するために必要な権限を取得するには、プロジェクトに対する次の IAM ロールを Google アカウントに付与するよう管理者に依頼してください。

クリックしてサービス アカウントに必要なロールを表示

Cloud Run サービスをデプロイするには、自動作成された Compute Engine のデフォルトのサービス アカウントを使用するか、ユーザー管理のサービス アカウントを指定します。サービス アカウントには次のロールが必要です。

グローバル外部アプリケーション ロードバランサを使用してカスタム ドメインをマッピングする

カスタム ドメインは、コンソールまたはコマンドラインを使用してマッピングできます。SSL 証明書がプロビジョニングされ、Cloud Run サービスに対する HTTPS トラフィックの転送が開始するまでに最大で 1 時間かかることがあります。

コンソール

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

    Cloud Run に移動

  2. この統合で使用するサービスリストでサービスをクリックします。

  3. [統合] タブをクリックします。

  4. [統合を追加] をクリックします。

  5. [カスタム ドメイン - Google Cloud Load Balancing] をクリックします。

    画像

  6. [ドメイン] フィールドにドメインを入力します。

  7. [パス] フィールドに、使用しているドメインパスを入力します。

  8. このカスタム ドメインにマッピングするサービスの名前を [サービス] フィールドに入力します。

  9. 他のドメインをマッピングする場合は、[項目を追加] をクリックし、上記の手順を繰り返して、必要に応じてドメインをサービスにマッピングします。

  10. API のリストを有効にするように求められたら、[有効にする] をクリックし、API が有効になるまで待ちます。

  11. [リソース] の下に、この統合の結果として作成される新しいリソースが表示されます。

  12. [送信] をクリックし、統合とリソースが作成されるまで待ちます。

    • 完了すると、構成が必要な DNS レコードを持つテーブルが作成されます。DNS プロバイダでは、これを使用して DNS レコードを更新します。
    • DNS プロバイダで DNS を更新した後、SSL 証明書のプロビジョニングが完了し、サービスへのトラフィックの転送が開始されるまでに最大 45 分を要する場合があります。

コマンドライン

  1. 最新の Google Cloud CLI に更新します。

    gcloud components update
    
  2. 統合を作成します。

    gcloud beta run integrations create \
    --type=custom-domains \
    --parameters='set-mapping=DOMAIN:SERVICE' \
    

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

    • DOMAIN は、カスタム ドメイン(example.com または subdomain.example.com など)に置き換えます。
      • example.com/subpath/* のようなパスを含めることもできます
    • SERVICE: Cloud Run サービス名。

    必要に応じて、--service-account=SERVICE_ACCOUNT_EMAIL フラグを含めます。

    • SERVICE_ACCOUNT_EMAIL は、サービスのデプロイに使用されるユーザー管理のサービス アカウントのメールアドレス(PROJECT_NUMBER-compute@developer.gserviceaccount.com)に置き換えます。デフォルトのコンピューティング サービス アカウント(SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com)を使用する場合は、このフラグを省略します。

      Cloud Run インテグレーションをデプロイするときに、指定されたサービス アカウントを引き続き使用するには、次のコマンドを実行します。

      gcloud config set runapps/deployment-service-account
      
  3. 完全に構成されたロードバランサが作成されるまでに 2~5 分かかります。プロセスが完了すると、次のメッセージが表示されます。

    [custom-domains] integration [custom-domains] has been created successfully.
    To complete the process, please ensure the following DNS records are configured for the domains:
    NAME    TTL   TYPE  DATA
    DOMAIN  3600  A     IP_ADDRESS
    It can take up to an hour for the SSL certificate to be provisioned.

    gcloud beta run integrations describe を使用してステータスを確認できます。

  4. 表示された IP_ADDRESS 値を使用して、DNS プロバイダで DNS レコードを更新します。DNS プロバイダで DNS を更新した後、SSL 証明書のプロビジョニングが完了し、サービスへのトラフィックの転送が開始されるまでに最大 45 分を要する場合があります。

ロードバランサ インテグレーションを使用するカスタム ドメインを更新する

インテグレーションを更新すると、そのインテグレーションに関連付けられているすべての Google Cloud リソースが更新されます。ロードバランサ インテグレーションを使用するカスタム ドメインを Cloud Run サービスから更新するには:

コンソール

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

    Cloud Run に移動

  2. 更新するサービスをクリックします。

  3. [統合] タブをクリックします。

  4. ロードバランサが統合されたカスタム ドメインを見つけて、[編集] をクリックします。

  5. フィールドの更新が完了したら、[更新] をクリックします。

コマンドライン

  1. 利用可能なインテグレーションのリストを取得するには、次のコマンドを使用します。

    gcloud beta run integrations list
  2. コマンドを実行してインテグレーションを更新します。

    gcloud beta run integrations update INTEGRATION_NAME
    

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

    • INTEGRATION_NAME は、ロードバランサ インテグレーションを使用しているカスタム ドメインの名前に置き換えます。

    必要に応じて、次のフラグ オプションを使用できます。

    オプション 説明
    --parameters サービスに設定するカスタム ドメイン。
    --service-account サービスの更新時に指定するユーザー管理のサービス アカウントのメールアドレス。このサービス アカウントは、デプロイ時に使用された以前のサービス アカウントをオーバーライドします。

ロードバランサ インテグレーションを使用するカスタム ドメインを表示する

Cloud Run サービスのロードバランサ統合でカスタム ドメインの現在のステータスを表示するには:

コンソール

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

    Cloud Run に移動

  2. この統合で使用するサービスリストでサービスをクリックします。

  3. [統合] タブをクリックします。

  4. 目的のロードバランサが使用されているカスタム ドメインを見つけて、[詳細を表示] をクリックします。

コマンドライン

  1. 利用可能なインテグレーションのリストを取得するには、次のコマンドを使用します。

    gcloud beta run integrations list
  2. 返されたリストの名前を使用して、その詳細を表示します。

    gcloud beta run integrations describe INTEGRATION_NAME

    INTEGRATION_NAME は、ロードバランサ統合を使用しているカスタム ドメインの名前に置き換えます。

ロードバランサ統合を使用するカスタム ドメインを削除する

インテグレーションを削除すると、インテグレーションに関連付けられているすべての Google Cloud リソースも削除されますが、Cloud Run サービスは削除されません。

ロードバランサ統合を使用するカスタム ドメインを Cloud Run サービスから削除するには:

コンソール

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

    Cloud Run に移動

  2. 統合を削除するサービスをクリックします。

  3. [統合] タブをクリックします。

  4. 目的のロードバランサを統合しているカスタム ドメインを見つけて、その統合の右側にある省略記号をクリックし、[削除] をクリックします。

コマンドライン

  1. 利用可能なインテグレーションのリストを取得するには、次のコマンドを使用します。

    gcloud beta run integrations list
  2. 返されたリストの名前を使用して、インテグレーションを削除します。

    gcloud beta run integrations delete INTEGRATION_NAME
    

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

    • INTEGRATION_NAME は、ロードバランサ インテグレーションを使用しているカスタム ドメインの名前に置き換えます。

    必要に応じて、次のフラグ オプションを使用できます。

    オプション 説明
    --service-account 削除オペレーションを実行するユーザー管理のサービス アカウントのメールアドレス。

制限事項

Cloud Run インテグレーションは、特定のリージョンでのみサポートされています。Cloud Run インテグレーションでサポートされていないリージョンを使用する必要がある場合は、Cloud Run を使用したグローバル外部アプリケーション ロードバランサの設定をご覧ください。