Wdrażanie bazy modeli w punkcie końcowym PSC

1. Wprowadzenie

Korzystaj z Private Service Connect, aby zapewnić bezpieczny, prywatny dostęp do modeli wdrożonych z bazy modeli Vertex AI. Zamiast udostępniać publiczny punkt końcowy, ta metoda umożliwia wdrożenie modelu w prywatnym punkcie końcowym Vertex AI dostępnym tylko w Twoim prywatnym środowisku wirtualnym w chmurze (VPC).

Usługa Private Service Connect tworzy w Twojej sieci VPC punkt końcowy z wewnętrznym adresem IP, który łączy się bezpośrednio z zarządzaną przez Google usługą Vertex AI hostującą Twój model. Umożliwia to aplikacjom w środowiskach VPC i lokalnych (za pomocą Cloud VPN lub Interconnect) wysyłanie żądań wnioskowania z użyciem prywatnych adresów IP. Cały ruch sieciowy pozostaje w sieci Google, co zwiększa bezpieczeństwo, skraca czas oczekiwania i całkowicie izoluje punkt końcowy obsługi modelu od publicznego internetu.

4a78228d4197997c.png

Co utworzysz

W tym samouczku pobierzesz model Gemma 3 z bazy modeli hostowanej w Vertex AI Online Inference jako prywatny punkt końcowy dostępny przez Private Service Connect. Konfiguracja kompleksowa obejmuje:

  1. Model z bazy modeli: wybierzesz model Gemma 3 z bazy modeli Vertex AI i wdrożysz go w punkcie końcowym Private Service Connect.
  2. Private Service Connect: skonfigurujesz punkt końcowy konsumenta w prywatnym środowisku wirtualnym w chmurze (VPC), który będzie się składać z wewnętrznego adresu IP w Twojej sieci.
  3. Bezpieczne połączenie z Vertex AI: punkt końcowy PSC będzie kierowany na przyłącze usługi wygenerowane automatycznie przez Vertex AI na potrzeby wdrożenia modelu prywatnego. Ustanawia to połączenie prywatne, dzięki czemu ruch między siecią VPC a punktem końcowym obsługującym model nie przechodzi przez publiczny internet.
  4. Konfiguracja klienta w sieci VPC: skonfigurujesz klienta (np. maszyny wirtualnej Compute Engine) w sieci VPC, aby wysyłać żądania wnioskowania do wdrożonego modelu za pomocą wewnętrznego adresu IP punktu końcowego PSC.

Na koniec będziesz mieć działający przykład modelu Model Garden udostępnianego prywatnie, do którego dostęp można uzyskać tylko z wyznaczonej sieci VPC.

Czego się nauczysz

Z tego samouczka dowiesz się, jak wdrożyć model z Model Garden w Vertex AI i bezpiecznie udostępnić go z prywatnego środowiska wirtualnego w chmurze (VPC) za pomocą usługi Private Service Connect (PSC). Ta metoda umożliwia aplikacjom w sieci VPC (konsumentowi) prywatne łączenie się z punktem końcowym modelu Vertex AI (usługą producenta) bez przechodzenia przez internet publiczny.

Dowiesz się m.in.:

  1. Informacje o PSC w Vertex AI: jak PSC umożliwia prywatne i bezpieczne połączenia między konsumentem a producentem. Sieć VPC może uzyskać dostęp do wdrożonego modelu z bazy modeli za pomocą wewnętrznych adresów IP.
  2. Wdrażanie modelu z dostępem prywatnym: jak skonfigurować punkt końcowy Vertex AI dla modelu z bazy modeli, aby używać PSC, co sprawi, że będzie to punkt końcowy prywatny.
  3. Rola połączenia z usługą: gdy wdrażasz model w prywatnym punkcie końcowym Vertex AI, Google Cloud automatycznie tworzy połączenie z usługą w projekcie najemcy zarządzanym przez Google. To połączenie usługi udostępnia usługę obsługi modelu sieciom konsumentów.
  4. Tworzenie punktu końcowego PSC w sieci VPC:
  • Jak uzyskać unikalny identyfikator URI przyłączenia usługi z informacji o wdrożonym punkcie końcowym Vertex AI.
  • Jak zarezerwować wewnętrzny adres IP w wybranej podsieci w sieci VPC.
  • Jak utworzyć w sieci VPC regułę przekazywania, która będzie działać jako punkt końcowy PSC i będzie kierować ruch do przyłącza usługi Vertex AI. Ten punkt końcowy udostępnia model za pomocą zarezerwowanego wewnętrznego adresu IP.
  1. Nawiązywanie połączenia prywatnego: jak punkt końcowy PSC w sieci VPC łączy się z przyłączem usługi, bezpiecznie łącząc Twoją sieć z usługą Vertex AI.
  2. Prywatne wysyłanie żądań wnioskowania: jak wysyłać żądania prognozowania z zasobów (takich jak maszyny wirtualne Compute Engine) w sieci VPC na wewnętrzny adres IP punktu końcowego PSC.
  3. Weryfikacja: czynności, które należy wykonać, aby przetestować i potwierdzić, że możesz wysyłać żądania wnioskowania z sieci VPC do wdrożonego modelu Model Garden za pomocą połączenia prywatnego.

Dzięki temu będziesz mieć możliwość hostowania modeli z Model Garden, które są dostępne tylko z Twojej prywatnej infrastruktury sieciowej.

Czego potrzebujesz

Projekt Google Cloud

Uprawnienia

2. Zanim zaczniesz

Aktualizowanie projektu na potrzeby samouczka

W tym samouczku używamy zmiennych $variables, aby ułatwić implementację konfiguracji gcloud w Cloud Shell.

W Cloud Shell wykonaj te czynności:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
projectid=[YOUR-PROJECT-ID]
echo $projectid

Włączanie interfejsu API

W Cloud Shell wykonaj te czynności:

gcloud services enable "compute.googleapis.com"
gcloud services enable "aiplatform.googleapis.com"
gcloud services enable "serviceusage.googleapis.com"

3. Wdrażanie modelu

Aby wdrożyć model z Model Garden, wykonaj te czynności:

W konsoli Google Cloud otwórz Model Garden, a następnie wyszukaj i wybierz Gemma 3.

10c7ce35cfc571dc.png

Kliknij Opcje wdrażania i wybierz Vertex AI.

ed9280fcc5f4c3fa.png

W panelu Wdróż w Vertex AI kliknij Zaawansowane. Wstępnie wypełnione region i specyfikacja maszyny są wybierane na podstawie dostępnej mocy obliczeniowej. Możesz zmienić te wartości, ale codelab jest dostosowany do regionu us-central1.

3f7e4cefdc06488a.png

W panelu Wdróż w Vertex AI sprawdź, czy dostęp do punktu końcowego jest skonfigurowany jako Private Service Connect, a następnie wybierz projekt.

d0f0d9bc49205fb3.png

W przypadku pozostałych opcji pozostaw wartości domyślne, a następnie u dołu kliknij Wdróż i sprawdź stan wdrożenia w powiadomieniach.

9bd3b10256b7b2cc.png

W bazie modeli wybierz region us-central1, który udostępnia model i punkt końcowy Gemma 3. Wdrożenie modelu zajmuje około 5 minut.

e998ee6288a8a7a.png

Po 30 minutach punkt końcowy przejdzie w stan „Aktywny”.

9dcc7c56dbe0e88a.png

Wybierz punkt końcowy i zapisz jego identyfikator.

6e3e2feef82fadd5.png

Otwórz Cloud Shell i wykonaj te czynności, aby uzyskać identyfikator URI przyłącza usługi Private Service Connect. Ten ciąg URI jest używany przez konsumenta podczas wdrażania punktu końcowego konsumenta PSC.

W Cloud Shell zaktualizuj identyfikator punktu końcowego, a potem wpisz to polecenie.

gcloud ai endpoints describe [Endpoint ID] --region=us-central1  | grep -i serviceAttachment:

Oto przykład:

user@cloudshell:$ gcloud ai endpoints describe 2124795225560842240 --region=us-central1 | grep -i serviceAttachment:

Using endpoint [https://us-central1-aiplatform.googleapis.com/]
    serviceAttachment: projects/o9457b320a852208e-tp/regions/us-central1/serviceAttachments/gkedpm-52065579567eaf39bfe24f25f7981d

Skopiuj zawartość po serviceAttachment do zmiennej o nazwie „Service_attachment”. Będzie ona potrzebna później podczas tworzenia połączenia PSC.

user@cloudshell:$ Service_attachment=projects/o9457b320a852208e-tp/regions/us-central1/serviceAttachments/gkedpm-52065579567eaf39bfe24f25f7981d

4. Konfiguracja konsumencka

Tworzenie sieci VPC konsumenta

W Cloud Shell wykonaj te czynności:

gcloud compute networks create consumer-vpc --project=$projectid --subnet-mode=custom

Tworzenie podsieci maszyny wirtualnej konsumenta

W Cloud Shell wykonaj te czynności:

gcloud compute networks subnets create consumer-vm-subnet --project=$projectid --range=192.168.1.0/24 --network=consumer-vpc --region=us-central1 --enable-private-ip-google-access

Tworzenie podsieci punktu końcowego PSC

gcloud compute networks subnets create pscendpoint-subnet --project=$projectid --range=10.10.10.0/28 --network=consumer-vpc --region=us-central1

5. Włączanie IAP

Aby umożliwić IAP połączenie z instancjami maszyn wirtualnych, utwórz regułę zapory sieciowej, która:

  • Dotyczy wszystkich instancji maszyn wirtualnych, które mają być dostępne przez IAP.
  • Zezwala na ruch przychodzący z zakresu adresów IP 35.235.240.0/20. Ten zakres zawiera wszystkie adresy IP, których IAP używa do przekierowywania TCP.

W Cloud Shell utwórz regułę zapory sieciowej IAP.

gcloud compute firewall-rules create ssh-iap-consumer \
    --network consumer-vpc \
    --allow tcp:22 \
    --source-ranges=35.235.240.0/20

6. Tworzenie instancji maszyn wirtualnych konsumentów

W Cloud Shell utwórz instancję maszyny wirtualnej klienta o nazwie consumer-vm.

gcloud compute instances create consumer-vm \
    --project=$projectid \
    --machine-type=e2-micro \
    --image-family debian-11 \
    --no-address \
    --shielded-secure-boot \
    --image-project debian-cloud \
    --zone us-central1-a \
    --subnet=consumer-vm-subnet 

7. Punkty końcowe Private Service Connect

Klient tworzy punkt końcowy klienta (regułę przekierowania) z wewnętrznym adresem IP w swojej sieci VPC. Ten punkt końcowy PSC jest kierowany na przyłącze usługi producenta. Klienty w sieci VPC konsumenta lub w sieci hybrydowej mogą wysyłać ruch na ten wewnętrzny adres IP, aby uzyskać dostęp do usługi producenta.

Zarezerwuj adres IP dla punktu końcowego klienta.

W Cloud Shell utwórz regułę przekierowania.

gcloud compute addresses create psc-address \
    --project=$projectid \
    --region=us-central1 \
    --subnet=pscendpoint-subnet \
    --addresses=10.10.10.6

Sprawdź, czy adres IP jest zarezerwowany.

W Cloud Shell wyświetl listę zarezerwowanych adresów IP.

gcloud compute addresses list 

Powinien być widoczny zarezerwowany adres IP 10.10.10.6.

edb5661bea25cd14.png

Utwórz punkt końcowy klienta, podając identyfikator URI przyłącza usługi, target-service-attachment, który został zarejestrowany w sekcji Wdrażanie modelu w poprzednim kroku.

W Cloud Shell opisz przyłącze sieci.

 gcloud compute forwarding-rules create psc-consumer-ep \
    --network=consumer-vpc \
    --address=psc-address \
    --region=us-central1 \
    --target-service-attachment=$Service_attachment \
    --project=$projectid

Sprawdź, czy przyłączenie usługi akceptuje punkt końcowy

gcloud compute forwarding-rules describe psc-consumer-ep \
    --project=$projectid \
    --region=us-central1 \

W odpowiedzi sprawdź, czy w polu pscConnectionStatus wyświetla się stan „ACCEPTED”.

6c66347ede9d4c7d.png

8. Testowanie z maszyny wirtualnej konsumenta

Aby przyznać maszynie wirtualnej klienta dostęp do interfejsu Vertex Model Garden API, wykonaj w Cloud Shell te czynności:

Łączenie się z maszyną wirtualną klienta przez SSH

f0984d9e60530cb2.png

Ponownie uwierzytelnij się za pomocą domyślnych danych logowania aplikacji i określ zakresy Vertex AI.

gcloud auth application-default login
--scopes=https://www.googleapis.com/auth/cloud-platform 

Aby wygenerować polecenie CURL, skorzystaj z tabeli poniżej. Dostosuj je do swojego środowiska.

Atrybut

Wartość

Protokół

HTTP

Lokalizacja

us-central1

Punkt końcowy prognozy online

2133539641536544768

Identyfikator projektu

test4-473419

Model

gemma-3-12b-it

Adres IP punktu końcowego Private Service Connect

10.10.10.6

Wiadomości

[{"role": "user","content": "Co waży więcej: funt piór czy funt kamieni?"}]

Zaktualizuj i wykonaj polecenie curl na podstawie szczegółów środowiska:

curl -k -v -X POST   -H "Authorization: Bearer $(gcloud auth application-default print-access-token)"   -H "Content-Type: application/json"   http://[PSC-IP]/v1/projects/[Project-ID]/locations/us-central1/endpoints/[Predictions Endpoint]/chat/completions   -d '{"model": "google/gemma-3-12b-it", "messages": [{"role": "user","content": "What weighs more 1 pound of feathers or rocks?"}] }'

Przykład:

curl -k -v -X POST   -H "Authorization: Bearer $(gcloud auth application-default print-access-token)"   -H "Content-Type: application/json"   http://10.10.10.6/v1/projects/test4-473419/locations/us-central1/endpoints/2133539641536544768/chat/completions   -d '{"model": "google/gemma-3-12b-it", "messages": [{"role": "user","content": "What weighs more 1 pound of feathers or rocks?"}] }'

WYNIK KOŃCOWY – SUKCES!!!

Na dole danych wyjściowych powinna się pojawić prognoza z modelu Gemma 3. Oznacza to, że udało Ci się uzyskać dostęp do punktu końcowego interfejsu API w sposób prywatny za pomocą punktu końcowego PSC.

 Connection #0 to host 10.10.10.6 left intact
{"id":"chatcmpl-9e941821-65b3-44e4-876c-37d81baf62e0","object":"chat.completion","created":1759009221,"model":"google/gemma-3-12b-it","choices":[{"index":0,"message":{"role":"assistant","reasoning_content":null,"content":"This is a classic trick question! They weigh the same. One pound is one pound, regardless of the material. 😊\n\n\n\n","tool_calls":[]},"logprobs":null,"finish_reason":"stop","stop_reason":106}],"usage":{"prompt_tokens":20,"total_tokens":46,"completion_tokens":26,"prompt_tokens_details":null},"prompt_logprobs":null

9. Czyszczenie danych

W Cloud Shell usuń komponenty samouczka.

gcloud ai endpoints undeploy-model ENDPOINT_ID --deployed-model-id=DEPLOYED_MODEL_ID --region=us-central1 --quiet

gcloud ai endpoints delete $ENDPOINT_ID --project=$projectid --region=us-central1 --quiet

gcloud ai models delete $MODEL_ID --project=$projectid --region=us-central1 --quiet

gcloud compute instances delete consumer-vm --zone=us-central1-a --quiet

gcloud compute forwarding-rules delete psc-consumer-ep --region=us-central1 --project=$projectid --quiet

gcloud compute addresses delete psc-address --region=us-central1 --project=$projectid --quiet

gcloud compute networks subnets delete pscendpoint-subnet consumer-vm-subnet --region=us-central1 --quiet

gcloud compute firewall-rules delete ssh-iap-consumer --project=$projectid

gcloud compute networks delete consumer-vpc --project=$projectid --quiet

gcloud projects delete $projectid --quiet

10. Gratulacje

Gratulacje. Udało Ci się skonfigurować i zweryfikować prywatny dostęp do interfejsu Gemma 3 API hostowanego w Vertex AI Prediction przy użyciu punktu końcowego Private Service Connect.

Infrastruktura klienta została utworzona, w tym zarezerwowano wewnętrzny adres IP i skonfigurowano punkt końcowy usługi Private Service Connect (regułę przekierowania) w sieci VPC. Ten punkt końcowy bezpiecznie łączy się z usługą Vertex AI, kierując się na załącznik usługi powiązany z wdrożonym modelem Gemma 3. Ta konfiguracja umożliwia aplikacjom w sieci VPC lub połączonych sieciach prywatną i bezpieczną interakcję z interfejsem Gemma 3 API za pomocą wewnętrznego adresu IP bez konieczności przesyłania ruchu przez internet publiczny.

Więcej informacji i filmy

Dokumentacja