Private Service Connect インターフェースは、IP の枯渇の可能性を減らし、推移的なピアリングを可能にするため、プライベート接続に推奨されます。
Private Service Connect インターフェースは、Vertex AI カスタムジョブと永続リソースでサポートされています。
概要
Private Service Connect インターフェースは、Vertex AI Training カスタムジョブと永続リソースでサポートされています。Private Service Connect インターフェースを使用するには、ユーザー プロジェクトに VPC ネットワーク、サブネットワーク、ネットワーク アタッチメントを設定する必要があります。Private Service Connect インターフェースを設定するをご覧ください。Private Service Connect インターフェースを有効にするには、カスタムジョブまたは永続リソースを作成するリクエストにネットワーク アタッチメント名を含める必要があります。
Vertex AI Private Service Connect から他のネットワークへの下り(外向き)接続
Vertex AI には、Private Service Connect でサポートされている下り(外向き)ネットワーク接続が統合されています(他のネットワーク内のワークロードに接続するをご覧ください)。ただし、次の例外があります。
お客様の限定公開の Google アクセスへの下り(外向き)はサポートされていません。代わりに、限定公開の Google アクセスでは Private Service Connect 下り(外向き)がローカルで解決されます。
Cloud NAT への下り(外向き)トラフィックは、VPC Service Control が有効になっている場合にのみサポートされます。
制限事項
- Private Service Connect インターフェースは外部 IP アドレスをサポートしていません。
料金
Private Service Connect インターフェースの料金については、すべてのネットワーキングの料金ページの「プロデューサーまたはコンシューマ VPC ネットワークへのアクセスに Private Service Connect インターフェースを使用する」をご覧ください。
始める前に
ユーザー プロジェクトで Private Service Connect インターフェースのリソースを設定します。
Private Service Connect インターフェースを使用してカスタム トレーニング ジョブを作成する
Private Service Connect インターフェースを使用してカスタム トレーニング ジョブを作成するには、Vertex AI SDK for Python または REST API を使用します。
Python
Vertex AI SDK for Python を使用して PSC-I でカスタム トレーニング ジョブを作成するには、aiplatform_v1beta1/services/job_service
定義を使用してジョブを構成します。
Python
project
: 実際のプロジェクト ID。これらの ID は、Google Cloud コンソールの [ようこそ] ページで確認できます。location
: 利用可能なロケーションの一覧をご覧ください。bucket
:bucket
は、アクセスできるバケットの名前に置き換えます。display_name
: 永続リソースの表示名。machine_type
: コンピューティング リソースを指定します。replica_count
: 各トライアルで使用するワーカー レプリカの数。service_attachment
: サービス アタッチメント リソースの名前。Private Service Connect が有効になっている場合に入力されます。image_uri
: トレーニング コードを含む Docker コンテナ イメージの URI。カスタム コンテナ イメージを作成する方法を確認してください。network_attachment_name
: ユーザー プロジェクトで Private Service Connect のリソースを設定するときに指定した名前。
REST
カスタム トレーニング ジョブを作成するには、customJobs.create メソッドを使用して POST リクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: コンテナまたは Python パッケージを実行するリージョン。
- PROJECT_ID: 実際のプロジェクト ID。
- JOB_NAME:
CustomJob
の表示名。 - REPLICA_COUNT: 使用するワーカー レプリカの数。最初のワーカープールでは、ほとんどの場合、
1
に設定します。 - トレーニング アプリケーションがカスタム コンテナで実行される場合は、次のように指定します。
- IMAGE_URI: トレーニング コードを含む Docker コンテナ イメージの URI。カスタム コンテナ イメージの作成方法を確認してください。
- NETWORK_ATTACHMENT_NAME: Vertex AI リソースの Private Service Connect インターフェースを設定するときに作成した NETWORK_ATTACHMENT_NAME。
HTTP メソッドと URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/customJobs
リクエストの本文(JSON):
"display_name": JOB_NAME, "job_spec": { "worker_pool_specs": [ { "machine_spec": { "machine_type": "n1-standard-4", }, "replica_count": REPLICA_COUNT, "container_spec": { "image_uri": IMAGE_URI, }, }, ], "psc_interface_config": { "network_attachment": NETWORK_ATTACHMENT_NAME }, "enable_web_access": 1 }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/customJobs"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/customJobs" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。