Vertex AI リソースの Private Service Connect インターフェースを設定する

このガイドでは、Vertex AI リソースの Private Service Connect インターフェースを設定する方法について説明します。

Vertex AI の次のようなリソースに Private Service Connect インターフェース接続を構成できます。

VPC ピアリング接続とは異なり、Private Service Connect インターフェース接続は推移的です。これにより、コンシューマー VPC ネットワークで必要な IP アドレスが少なくなります。これにより、 Google Cloud プロジェクトやオンプレミスで他の VPC ネットワークに柔軟に接続できます。

このガイドは、 Google Cloud ネットワーキングのコンセプトに精通しているネットワーク管理者を対象としています。

目標

このガイドでは、次のタスクについて説明します。

  • コンシューマー VPC ネットワーク、サブネット、ネットワーク アタッチメントを構成します。
  • Google Cloud ネットワーク ホスト プロジェクトにファイアウォール ルールを追加します。
  • Private Service Connect インターフェースを使用するネットワーク アタッチメントを指定して、Vertex AI リソースを作成します。

始める前に

次の手順で Google Cloud プロジェクトを作成または選択し、Vertex AI と Private Service Connect で使用するように構成します。

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  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 (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. Enable the Vertex AI, Compute Engine, and Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Install the Google Cloud CLI.

  6. 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

  7. gcloud CLI を初期化するには、次のコマンドを実行します。

    gcloud init
  8. gcloud CLI を初期化した後に更新して、必要なコンポーネントをインストールします。

    gcloud components update
    gcloud components install beta
  9. 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 (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

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

  11. Enable the Vertex AI, Compute Engine, and Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  12. Install the Google Cloud CLI.

  13. 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

  14. gcloud CLI を初期化するには、次のコマンドを実行します。

    gcloud init
  15. gcloud CLI を初期化した後に更新して、必要なコンポーネントをインストールします。

    gcloud components update
    gcloud components install beta
  16. プロジェクト オーナーではなく、プロジェクト IAM 管理者(roles/resourcemanager.projectIamAdminのロールがない場合は、ネットワーク リソースを管理するために必要な compute.networkAttachments.updatecompute.networkAttachments.updatecompute.regionOperations.get の権限を含む IAM ロール(Compute ネットワーク管理者(roles/compute.networkAdmin)ロールなど)を付与するようオーナーに依頼してください。
  17. 必要なロールを AI Platform サービス エージェントに割り当てます。さまざまなシナリオで付与するロールの詳細については、このドキュメントの Vertex AI サービス エージェントが必要とするロールをご覧ください。
  18. VPC ネットワークとサブネットを設定する

    既存のネットワークがない場合は、構成手順に沿って新しい VPC ネットワークを作成します。

    1. VPC ネットワークを作成します。

      gcloud compute networks create NETWORK \
          --subnet-mode=custom
      

      NETWORK は、VPC ネットワークの名前に置き換えます。

    2. サブネットを作成します。

      gcloud compute networks subnets create SUBNET_NAME \
          --network=NETWORK \
          --range=PRIMARY_RANGE \
          --region=REGION
      

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

      • SUBNET_NAME: サブネットの名前。
      • PRIMARY_RANGE: 新しいサブネットのプライマリ IPv4 範囲(CIDR 表記)。

        Vertex AI の IP 要件と制限事項は次のとおりです。

        • Vertex AI は /28 サブネットワークを推奨しています。
        • ネットワーク アタッチメントのサブネットは、サブネット 100.64.0.0/10 と 240.0.0.0/4 を除く RFC 1918 アドレスと RFC 1918 以外のアドレスをサポートしています。
        • Vertex AI は、指定されたネットワークからルーティング可能な RFC 1918 IP アドレス範囲にのみ接続できます。
        • Vertex AI は、プライベートで使用されるパブリック IP アドレスまたは次の RFC 1918 以外の範囲には到達できません。

          • 100.64.0.0/10
          • 192.0.0.0/24
          • 192.0.2.0/24
          • 198.18.0.0/15
          • 198.51.100.0/24
          • 203.0.113.0/24
          • 240.0.0.0/4

        詳細については、IPv4 サブネットの範囲をご覧ください。

      • REGION: 新しいサブネットを作成する Google Cloud リージョン。

    ネットワーク アタッチメントを作成する

    共有 VPC デプロイでは、ホスト プロジェクトでネットワーク アタッチメントに使用するサブネットを作成し、次にサービス プロジェクトで Private Service Connect ネットワーク アタッチメントを作成します。

    次の例は、接続を自動的に受け入れるネットワーク アタッチメントを作成する方法を示しています。

       gcloud compute network-attachments create NETWORK_ATTACHMENT_NAME \
           --region=REGION \
           --connection-preference=ACCEPT_AUTOMATIC \
           --subnets=SUBNET_NAME
    

    NETWORK_ATTACHMENT_NAME は、ネットワーク アタッチメントの名前に置き換えます。

    ネットワーク アタッチメントがサービス プロジェクトとは異なるプロジェクトで作成されている場合は、Vertex AI API を呼び出すときにネットワーク アタッチメントの完全なパスを渡す必要があります。

    Vertex AI サービス エージェントが必要とするロール

    ネットワーク アタッチメントを作成するプロジェクトで、同じプロジェクトの Vertex AI サービス エージェントcompute.networkAdmin ロールを付与します。このプロジェクトが Vertex AI を使用するサービス プロジェクトと異なる場合は、事前にこのプロジェクトで Vertex AI API を有効にする必要があります。

    Vertex AI が使用する共有 VPC ネットワークを指定し、サービス プロジェクトにネットワーク アタッチメントを作成する場合は、Vertex AI を使用するサービス プロジェクトの Vertex AI サービス エージェントに、VPC ホスト プロジェクトの compute.networkUser ロールを付与します。

    ファイアウォール ルールを構成する

    システムは、コンシューマー VPC上り(内向き)ファイアウォール ルールを適用し、コンピューティング エンドポイントとオンプレミス エンドポイントから Private Service Connect インターフェースのネットワーク アタッチメントのサブネットと通信できるようにします。

    ファイアウォール ルールの構成は任意です。ただし、次の例に示すように、一般的なファイアウォール ルールを設定することをおすすめします。

    1. TCP ポート 22 で SSH アクセスを許可するファイアウォール ルールを作成します。

      gcloud compute firewall-rules create NETWORK-firewall1 \
          --network NETWORK \
          --allow tcp:22
      
    2. TCP ポート 443 で HTTPS トラフィックを許可するファイアウォール ルールを作成します。

      gcloud compute firewall-rules create NETWORK-firewall2 \
          --network NETWORK \
          --allow tcp:443
      
    3. ICMP トラフィック(ping リクエストなど)を許可するファイアウォール ルールを作成します。

      gcloud compute firewall-rules create NETWORK-firewall3 \
          --network NETWORK \
          --allow icmp
      

    プライベート DNS ピアリングを設定する

    PSC-I で構成された Vertex AI Training ジョブまたは Vertex AI Agent Engine エージェントが、顧客管理の Cloud DNS ゾーンで限定公開 DNS レコードを解決できるように、Vertex AI API には、Google 内部リソースとピアリングする DNS ドメインを指定するためのユーザー構成可能なメカニズムが用意されています。次の追加構成を行います。

    1. Vertex AI Training サービスまたは Vertex AI Agent Engine サービスを使用しているプロジェクトの AI Platform サービス エージェント アカウントに DNS Peer(roles/dns.peer) ロールを割り当てます。Vertex AI が使用する共有 VPC ネットワークを指定し、サービス プロジェクトにネットワーク アタッチメントを作成する場合は、Vertex AI を使用するサービス プロジェクトの AI Platform サービス エージェントに、VPC ホスト プロジェクトの DNS Peer(roles/dns.peer) ロールを付与します。

    2. すべての ICMP、TCP、UDP トラフィックを許可するファイアウォール ルールを作成します(省略可)。

      gcloud compute firewall-rules create NETWORK-firewall4 \
          --network NETWORK
          --allow tcp:0-65535,udp:0-65535,icmp
          --source-ranges IP_RANGES
      
    3. DNS 解決とトラフィック ルーティング用に限定公開 DNS ゾーンを設定します。限定公開 DNS ゾーンに DNS レコードを追加するには、リソース レコードセットを追加するをご覧ください。

    トラブルシューティング

    このセクションでは、Vertex AI で Private Service Connect を構成する際の一般的な問題について説明します。

    共有 VPC で Vertex AI を構成する場合は、Vertex AI を使用するサービス プロジェクトにネットワーク アタッチメントを作成します。このアプローチでは、必要な権限と API が正しいプロジェクトで有効になっていることを確認することで、「Please make sure that the Vertex AI API is enabled for the project」などの特定のエラー メッセージを回避できます。

    次のステップ

    • Ray on Vertex AI で Private Service Connect インターフェースの下り(外向き)接続を使用する方法を学習する。
    • カスタム トレーニングで Private Service Connect インターフェースの下り(外向き)接続を使用する方法を学習する。
    • Vertex AI Pipelines で Private Service Connect インターフェースの下り(外向き)接続を使用する方法を学習する。
    • Vertex AI Agent Engine で Private Service Connect インターフェースの下り(外向き)接続を使用する方法を学習する