Menggunakan antarmuka Private Service Connect untuk Pelatihan Vertex AI

Antarmuka Private Service Connect direkomendasikan untuk konektivitas pribadi karena mengurangi kemungkinan kehabisan IP dan memungkinkan peering transitif.

Antarmuka Private Service Connect didukung di tugas kustom Vertex AI dan resource persisten.

Ringkasan

Antarmuka Private Service Connect didukung pada tugas kustom Vertex AI Training dan resource persisten. Untuk menggunakan antarmuka Private Service Connect, Anda harus menyiapkan jaringan VPC, subnetwork, dan lampiran jaringan di project pengguna. Lihat Menyiapkan antarmuka Private Service Connect. Nama lampiran jaringan harus disertakan dalam permintaan untuk membuat tugas kustom atau resource persisten guna mengaktifkan antarmuka Private Service Connect.

Konektivitas keluar Vertex AI Private Service Connect ke jaringan lain

Vertex AI telah mengintegrasikan konektivitas jaringan keluar yang didukung oleh Private Service Connect (lihat Menghubungkan ke beban kerja di jaringan lain), dengan perilaku arsitektur berikut.

Mengakses Google API dan layanan khusus internal

Saat Vertex AI mengirim traffic ke Google API, traffic tersebut diselesaikan secara lokal dalam lingkungan produsen dan tidak menggunakan setelan atau perutean Akses Google Pribadi dari jaringan VPC konsumen Anda.

Catatan:

  • Persyaratan identitas VPC: Karena resolusi lokal melewati jalur jaringan VPC konsumen, traffic tidak membawa identitas jaringan VPC Anda. Hal ini akan menyebabkan permintaan ke layanan Google khusus internal, seperti layanan Cloud Run yang dikonfigurasi dengan ingress internal, gagal dengan error 404 atau 403.
  • Solusi endpoint Private Service Connect: Untuk menjangkau layanan internal ini secara pribadi, Anda harus mengonfigurasi endpoint Private Service Connect untuk Google API di jaringan VPC Anda.
  • Konfigurasi DNS: Anda harus memastikan bahwa domain layanan (misalnya, *.run.app) di-resolve ke alamat IP internal endpoint Private Service Connect Anda untuk memastikan traffic tetap berada di jalur yang sepenuhnya pribadi.

Egress internet dan Cloud NAT

Secara default, Vertex AI menggunakan gateway internet yang dikelola Google untuk traffic keluar, bukan rute jaringan VPC Anda. Egress menggunakan gateway Cloud NAT konsumen hanya digunakan saat project menjadi bagian dari perimeter Kontrol Layanan VPC.

Perimeter ini memblokir akses internet default, sehingga memaksa traffic melalui antarmuka Private Service Connect dan aturan pemilihan rute jaringan VPC Anda. Jika Anda tidak menggunakan Kontrol Layanan VPC, traffic internet keluar akan melewati jaringan VPC dan gateway Cloud NAT Anda sepenuhnya.

Batasan

Untuk mengetahui fitur dan batasan antarmuka Private Service Connect, lihat Tentang cara mengakses layanan Vertex AI melalui antarmuka Private Service Connect.

Harga

Harga untuk antarmuka Private Service Connect dijelaskan di bagian "Menggunakan antarmuka Private Service Connect untuk mengakses jaringan VPC produsen atau konsumen" di halaman Semua harga jaringan.

Sebelum memulai

Siapkan resource untuk antarmuka Private Service Connect di project pengguna Anda.

Membuat tugas pelatihan serverless Vertex AI dengan antarmuka Private Service Connect

Anda dapat membuat tugas pelatihan serverless dengan antarmuka Private Service Connect menggunakan Vertex AI SDK untuk Python atau REST API.

Python

Untuk membuat tugas pelatihan serverless dengan PSC-I menggunakan Vertex AI SDK untuk Python, konfigurasi tugas menggunakan definisi aiplatform_v1/services/job_service.

Python

from google.cloud import aiplatform


def create_custom_job_psci_sample(
    project: str,
    location: str,
    bucket: str,
    display_name: str,
    machine_type: str,
    replica_count: int,
    image_uri: str,
    network_attachment: str,
    domain: str,
    target_project: str,
    target_network: str,
):
    """Custom training job sample with PSC Interface Config."""
    aiplatform.init(project=project, location=location, staging_bucket=bucket)

    worker_pool_specs = [{
        "machine_spec": {
            "machine_type": machine_type,
        },
        "replica_count": replica_count,
        "container_spec": {
            "image_uri": image_uri,
            "command": [],
            "args": [],
        },
    }]
    psc_interface_config = {
        "network_attachment": network_attachment,
        "dns_peering_configs": [
            {
                "domain": domain,
                "target_project": target_project,
                "target_network": target_network,
            },
        ],
    }
    job = aiplatform.CustomJob(
        display_name=display_name,
        worker_pool_specs=worker_pool_specs,
    )

    job.run(psc_interface_config=psc_interface_config)

  • project: . Anda dapat menemukan ID ini di halaman sambutan konsol Google Cloud .
  • location: Lihat daftar lokasi yang tersedia.
  • bucket: Ganti bucket dengan nama bucket yang dapat Anda akses.
  • display_name: Nama tampilan resource persisten.
  • machine_type: Tentukan resource komputasi.
  • replica_count: Jumlah replika worker yang akan digunakan untuk setiap uji coba.
  • service_attachment: Nama resource lampiran layanan. Diisi jika Private Service Connect diaktifkan.
  • image_uri: URI image container Docker dengan kode pelatihan Anda. Pelajari cara membuat image container kustom.
  • network_attachment: Nama atau jalur lengkap lampiran jaringan yang Anda buat saat menyiapkan resource untuk Private Service Connect.
  • domain: Nama DNS zona Cloud DNS pribadi yang Anda buat saat menyiapkan Peering DNS Pribadi.
  • target_project: Project yang menghosting jaringan VPC.
  • target_network: Nama jaringan VPC.

REST

Untuk membuat tugas pelatihan serverless, kirim permintaan POST menggunakan metode customJobs.create.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • LOCATION: Region tempat container atau paket Python akan dijalankan.
  • PROJECT_ID: Project ID Anda.
  • JOB_NAME: Nama tampilan untuk CustomJob.
  • REPLICA_COUNT: Jumlah replika worker yang akan digunakan. Pada umumnya, tetapkan ini ke 1 untuk kumpulan worker pertama Anda.
  • Jika aplikasi pelatihan Anda berjalan dalam container kustom, tentukan hal berikut:
    • IMAGE_URI: URI image container Docker dengan kode pelatihan Anda. Pelajari cara membuat image container kustom.
    • NETWORK_ATTACHMENT: Nama atau jalur lengkap lampiran jaringan yang Anda buat saat Anda menyiapkan antarmuka Private Service Connect.
    • Jika Anda memerlukan peering DNS pribadi, kolom dns_peering_configs wajib diisi. Untuk daftar ini, setiap item berisi:
      • DOMAIN_SUFFIX: Nama DNS zona Cloud DNS pribadi yang Anda buat saat menyiapkan Peering DNS Pribadi.
      • TARGET_PROJECT: Project yang menghosting jaringan VPC.
      • TARGET_NETWORK: Nama jaringan VPC.

Metode HTTP dan URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs

Meminta isi JSON:

"display_name": JOB_NAME,
"job_spec": {
    "worker_pool_specs": [
      {
        "machine_spec": {
          "machine_type": "n2-standard-4",
        },
        "replica_count": REPLICA_COUNT,
        "container_spec": {
          "image_uri": IMAGE_URI,
        },
      },
    ],
    "psc_interface_config": {
      "network_attachment": NETWORK_ATTACHMENT,
      "dns_peering_configs": [
         {
          "domain": DOMAIN_SUFFIX,
          "target_project": TARGET_PROJECT,
          "target_network": TARGET_NETWORK
         }
      ],
    },
    "enable_web_access": 1
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

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/v1/projects/PROJECT_ID/locations/LOCATION/customJobs"

PowerShell

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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/v1/projects/PROJECT_ID/locations/LOCATION/customJobs" | Select-Object -Expand Content

Anda akan menerima respons JSON yang mirip dengan yang berikut ini: