Vertex AI получает доступ к конечным точкам онлайн-прогнозирования в частном порядке с помощью PSC

1. Введение

Локальные хосты могут получить доступ к онлайн-прогнозированию напрямую через общедоступный интернет (вариант 1) или с помощью облачного VPN или облачного межсетевого соединения с частным сервисом подключения (PSC) (вариант 2) из ​​своей локальной сети, причем оба варианта обеспечивают шифрование SSL/TLS. Гибридное подключение к онлайн-прогнозированию через межсетевое соединение обеспечивает более высокую производительность, чем подключение через Интернет, поэтому рекомендуется для критически важных приложений, как показано на рисунке 1.

В этом руководстве мы продемонстрируем, как использовать VPN с высокой доступностью (HA VPN) для частного доступа к онлайн-прогнозированию между двумя сетями VPC, которые могут служить основой для частного подключения в многооблачной и локальной средах.

Обратите внимание, что Vertex Online Prediction — это общедоступная конечная точка, поэтому вам следует ограничить доступ с помощью VPC Service Controls (VPC-SC), чтобы создать безопасные периметры, разрешающие или запрещающие доступ к Vertex и другим API Google. В этом руководстве не рассматривается VPC-SC; для получения более подробной информации см. раздел «VPC Service Controls с Vertex AI».

24a07ba49a7bcb16.png

Что вы построите

Вам потребуется настроить сеть VPC под названием on-prem-vpc , представляющую собой локальную среду. В вашем случае сеть on-prem-vpc не будет существовать, вместо этого будет использоваться гибридная сеть, подключенная к вашему локальному центру обработки данных или облачному провайдеру.

Вам предстоит создать комплексную архитектуру Private Service Connect, которая демонстрирует публичный доступ к онлайн-прогнозированию через облачный NAT и частный доступ с использованием PSC через HA VPN в соответствии с приведенными ниже инструкциями.

b545c808b366341a.png

После развертывания системы онлайн-прогнозирования в проекте Google Cloud будут рассмотрены следующие варианты ее использования:

Публичный доступ к онлайн-прогнозированию включает в себя следующее:

  • Создайте экземпляр GCE (nat-client), использующий NAT для исходящего доступа в интернет.
  • Используйте CURL для выполнения выводов на основе модели.
  • Используйте TCPDUMP для проверки того, что доступ к онлайн-прогнозированию осуществляется через общедоступный виртуальный IP-адрес.

Приватный доступ к онлайн-прогнозированию включает в себя следующее:

  • Разверните модель на конечной точке онлайн-прогнозирования Vertex в проекте.
  • Создайте конечную точку Private Service Connect (Googleapis) в aiml-vpc.
  • Экспортируйте IP-адрес PSC через облачный маршрутизатор в качестве пользовательского объявления в локальную VPC.
  • Создайте экземпляр GCE (частный клиент) и обновите файл etc/hosts, указав IP-адрес конечной точки PSC.
  • Используйте CURL для выполнения выводов на основе модели.
  • Используйте TCPDUMP для проверки того, что доступ к онлайн-прогнозированию осуществляется через IP-адрес конечной точки PSC.

Что вы узнаете

  • Как настроить конечную точку Private Service Connect
  • Как объявить IP-адрес конечной точки PSC через облачный маршрутизатор
  • Как использовать TCPDUMP для проверки доступа к онлайн-прогнозированию, как публичного, так и частного.

Что вам понадобится

  • Проект Google Cloud

Разрешения IAM

Администратор вычислительной сети

Редактор каталога услуг

Администратор DNS

Администратор сети

Администратор квот

Администратор блокнотов

Пользователь служебной учетной записи

Администратор хранилища

Пользователь Vertex AI

Администратор учетной записи службы

2. Прежде чем начать

Обновите проект, чтобы он соответствовал учебному пособию.

В этом руководстве переменные `$variables` используются для упрощения настройки gcloud в Cloud Shell.

Внутри Cloud Shell выполните следующие действия:

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

3. Включите службы

Внутри Cloud Shell выполните следующие действия:

gcloud services enable dns.googleapis.com
gcloud services enable aiplatform.googleapis.com
gcloud services enable iam.googleapis.com 
gcloud services enable compute.googleapis.com 
gcloud services enable notebooks.googleapis.com

4. Настройка aiml-vpc

Создайте aiml-vpc

Внутри Cloud Shell выполните следующие действия:

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

Создайте подсеть для ноутбуков, управляемую пользователем.

Внутри Cloud Shell выполните следующие действия:

gcloud compute networks subnets create workbench-subnet --project=$projectid --range=172.16.10.0/28 --network=aiml-vpc --region=us-central1 --enable-private-ip-google-access

Настройка облачного маршрутизатора и NAT.

В руководстве по загрузке программных пакетов для ноутбуков используется Cloud NAT, поскольку управляемый пользователем экземпляр ноутбука не имеет внешнего IP-адреса. Cloud NAT также предлагает возможности исходящего NAT, что означает, что интернет-хостам не разрешается инициировать связь с управляемым пользователем ноутбуком, что повышает безопасность.

Внутри Cloud Shell создайте региональный облачный маршрутизатор.

gcloud compute routers create cloud-router-us-central1-aiml-nat --network aiml-vpc --region us-central1

Внутри Cloud Shell создайте региональный шлюз NAT облака.

gcloud compute routers nats create cloud-nat-us-central1 --router=cloud-router-us-central1-aiml-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1

5. Настройка локальной VPC

Создайте локальную VPC.

Внутри Cloud Shell выполните следующие действия:

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

Создайте NAT-подсеть

Внутри Cloud Shell выполните следующие действия:

gcloud compute networks subnets create nat-subnet --project=$projectid --range=192.168.10.0/28 --network=on-prem-vpc --region=us-central1

Создайте частную IP-подсеть

Внутри Cloud Shell выполните следующие действия:

gcloud compute networks subnets create private-ip-subnet --project=$projectid --range=192.168.20.0/28 --network=on-prem-vpc --region=us-central1

Настройка облачного маршрутизатора и NAT.

В этом руководстве для загрузки программных пакетов используется Cloud NAT. Cloud NAT также предоставляет возможности исходящего NAT, что означает, что интернет-хосты не могут инициировать обмен данными с вычислительными ресурсами, что повышает безопасность.

Внутри Cloud Shell создайте региональный облачный маршрутизатор.

gcloud compute routers create cloud-router-us-central1-on-prem-nat --network on-prem-vpc --region us-central1

Внутри Cloud Shell создайте региональный шлюз NAT облака.

gcloud compute routers nats create cloud-nat-us-central1 --router=cloud-router-us-central1-on-prem-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1

6. Создайте конечную точку Private Service Connect.

В следующем разделе вы создадите конечную точку Private Service Connect (PSC), которая будет использоваться для доступа к API Vertex из локальной VPC. IP-адрес PSC 100.100.10.10 будет объявлен маршрутизатором aiml-vpc-cloud-router-vpn в качестве пользовательского объявления маршрутизатора в локальной сети на следующем шаге.

Из Cloud Shell

gcloud compute addresses create psc-ip \
    --global \
    --purpose=PRIVATE_SERVICE_CONNECT \
    --addresses=100.100.10.10 \
    --network=aiml-vpc

Создайте конечную точку PSC.

Из Cloud Shell

gcloud compute forwarding-rules create pscvertex \
    --global \
    --network=aiml-vpc \
    --address=psc-ip \
    --target-google-apis-bundle=all-apis

Перечислите настроенные конечные точки Private Service Connect.

Из Cloud Shell

gcloud compute forwarding-rules list  \
--filter target="(all-apis OR vpc-sc)" --global

Опишите настроенные конечные точки Private Service Connect.

Из Cloud Shell

gcloud compute forwarding-rules describe \
    pscvertex --global

7. Гибридная связь

В следующем разделе вы создадите облачный маршрутизатор, который позволит вам динамически обмениваться маршрутами между вашей виртуальной частной сетью (VPC) и соседней сетью с использованием протокола Border Gateway Protocol (BGP) .

Cloud Router может установить BGP-сессию через туннель Cloud VPN для соединения ваших сетей. Он автоматически изучает новые диапазоны IP-адресов подсетей и сообщает о них вашей партнерской сети.

В этом руководстве вы развернете VPN-соединение высокой доступности между aiml-vpc и on-prem-vpc .

Создайте шлюз HA VPN для aiml-vpc.

При создании каждого шлюза автоматически выделяются два внешних IPv4-адреса, по одному для каждого интерфейса шлюза.

Внутри Cloud Shell создайте шлюз HA VPN.

gcloud compute vpn-gateways create aiml-vpn-gw \
   --network=aiml-vpc\
   --region=us-central1

Создайте шлюз HA VPN для локальной VPC.

При создании каждого шлюза автоматически выделяются два внешних IPv4-адреса, по одному для каждого интерфейса шлюза. Запишите эти IP-адреса для дальнейшего использования на этапах настройки.

Внутри Cloud Shell создайте шлюз HA VPN.

gcloud compute vpn-gateways create on-prem-vpn-gw \
   --network=on-prem-vpc\
   --region=us-central1

Проверьте создание шлюза HA VPN.

В консоли перейдите в раздел HYBRID CONNECTIVITY → VPN → CLOUD VPN GATEWAYS и убедитесь, что IP-адреса шлюзов сгенерированы.

66312b1b53c233d7.png

Создайте облачный маршрутизатор для aiml-vpc.

Внутри Cloud Shell создайте Cloud Router, расположенный в каталоге us-central1.

gcloud compute routers create aiml-cr-us-central1 \
   --region=us-central1 \
   --network=aiml-vpc\
   --asn=65001

Создайте облачный маршрутизатор для локальной VPC.

Внутри Cloud Shell создайте Cloud Router, расположенный в каталоге us-central1.

gcloud compute routers create on-prem-cr-us-central1 \
   --region=us-central1 \
   --network=on-prem-vpc \
   --asn=65002

Создайте VPN-туннели для aiml-vpc

Вам потребуется создать два VPN-туннеля на каждом VPN-шлюзе высокой доступности.

Создать VPN-туннель0

Внутри Cloud Shell создайте туннель tunnel0:

gcloud compute vpn-tunnels create aiml-vpc-tunnel0 \
    --peer-gcp-gateway on-prem-vpn-gw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
    --router aiml-cr-us-central1 \
    --vpn-gateway aiml-vpn-gw \
    --interface 0

Создать VPN-туннель1

Внутри Cloud Shell создайте туннель 1:

gcloud compute vpn-tunnels create aiml-vpc-tunnel1 \
    --peer-gcp-gateway on-prem-vpn-gw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
    --router aiml-cr-us-central1 \
    --vpn-gateway aiml-vpn-gw \
    --interface 1

Создайте VPN-туннели для локальной VPC.

Вам потребуется создать два VPN-туннеля на каждом VPN-шлюзе высокой доступности.

Создать VPN-туннель0

Внутри Cloud Shell создайте туннель tunnel0:

gcloud compute vpn-tunnels create on-prem-tunnel0 \
    --peer-gcp-gateway aiml-vpn-gw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
    --router on-prem-cr-us-central1 \
    --vpn-gateway on-prem-vpn-gw \
    --interface 0

Создать VPN-туннель1

Внутри Cloud Shell создайте туннель 1:

gcloud compute vpn-tunnels create on-prem-tunnel1 \
    --peer-gcp-gateway aiml-vpn-gw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
    --router on-prem-cr-us-central1 \
    --vpn-gateway on-prem-vpn-gw \
    --interface 1

Проверка создания VPN-туннеля

В консоли перейдите в раздел HYBRID CONNECTIVITY → VPN → CLOUD VPN TUNNELS.

e8e13ebaed09f1.png

8. Установите BGP-соседей.

Создание сессий BGP

В этом разделе вы настраиваете интерфейсы Cloud Router и BGP-пиры.

Создайте BGP-интерфейс и установите пиринговое соединение для aiml-vpc.

Внутри Cloud Shell создайте интерфейс BGP:

gcloud compute routers add-interface aiml-cr-us-central1 \
    --interface-name if-tunnel0-to-onprem \
    --ip-address 169.254.1.1 \
    --mask-length 30 \
    --vpn-tunnel aiml-vpc-tunnel0 \
    --region us-central1

Внутри Cloud Shell создайте BGP-пир:

gcloud compute routers add-bgp-peer aiml-cr-us-central1 \
    --peer-name bgp-on-premises-tunnel0 \
    --interface if-tunnel1-to-onprem \
    --peer-ip-address 169.254.1.2 \
    --peer-asn 65002 \
    --region us-central1

Внутри Cloud Shell создайте интерфейс BGP:

gcloud compute routers add-interface aiml-cr-us-central1 \
    --interface-name if-tunnel1-to-onprem \
    --ip-address 169.254.2.1 \
    --mask-length 30 \
    --vpn-tunnel aiml-vpc-tunnel1 \
    --region us-central1

Внутри Cloud Shell создайте BGP-пир:

gcloud compute routers add-bgp-peer aiml-cr-us-central1 \
    --peer-name bgp-on-premises-tunnel1 \
    --interface if-tunnel2-to-onprem \
    --peer-ip-address 169.254.2.2 \
    --peer-asn 65002 \
    --region us-central1

Создайте BGP-интерфейс и настройте пиринг для локальной VPC.

Внутри Cloud Shell создайте интерфейс BGP:

gcloud compute routers add-interface on-prem-cr-us-central1 \
    --interface-name if-tunnel0-to-aiml-vpc\
    --ip-address 169.254.1.2 \
    --mask-length 30 \
    --vpn-tunnel on-prem-tunnel0 \
    --region us-central1

Внутри Cloud Shell создайте BGP-пир:

gcloud compute routers add-bgp-peer on-prem-cr-us-central1 \
    --peer-name bgp-aiml-vpc-tunnel0 \
    --interface if-tunnel1-to-aiml-vpc\
    --peer-ip-address 169.254.1.1 \
    --peer-asn 65001 \
    --region us-central1

Внутри Cloud Shell создайте интерфейс BGP:

gcloud compute routers add-interface on-prem-cr-us-central1 \
    --interface-name if-tunnel1-to-aiml-vpc\
    --ip-address 169.254.2.2 \
    --mask-length 30 \
    --vpn-tunnel on-prem-tunnel1 \
    --region us-central1

Внутри Cloud Shell создайте BGP-пир:

gcloud compute routers add-bgp-peer on-prem-cr-us-central1 \
    --peer-name bgp-aiml-vpc-tunnel1\
    --interface if-tunnel2-to-aiml-vpc\
    --peer-ip-address 169.254.2.1 \
    --peer-asn 65001 \
    --region us-central1

Для просмотра сведений о VPN-туннеле перейдите в раздел Hybrid CONNECTIVITY → VPN .

cb91b4476a88acd3.png

Проверка маршрутов, изученных aiml-vpc, через HA VPN

С помощью консоли перейдите в раздел Сеть VPC → Сети VPC → aiml-vpc → МАРШРУТЫ → РЕГИОН → US-CENTRAL1 → ВИД

Обратите внимание, что aiml-vpc изучил маршруты из nat-подсети и частной IP-подсети локальной VPC.

f407ed6e1a6233db.png

Убедитесь, что локальная VPC-система распознала подсеть рабочей среды через HA-VPN.

В консоли перейдите в раздел Сеть VPC → Сети VPC → Локальная VPC → Маршруты → Регион → US-CENTRAL1 → Просмотр

7957e5d898a9e7e0.png

9. Создание пользовательских рекламных объявлений маршрутов aiml-vpc

IP-адрес конечной точки Private Service Connect не объявляется автоматически облачным маршрутизатором aiml-cr-us-central1, поскольку подсеть не настроена в VPC.

Вместо этого вам потребуется создать пользовательское объявление маршрута от облачного маршрутизатора aiml-cr-us-central для IP-адреса конечной точки 100.100.10.10, которое будет передаваться в локальную среду по протоколу BGP в локальную VPC.

В консоли перейдите в раздел HYBRID CONNECTIVITY → CLOUD ROUTERS → aiml-cr-us-central1 , затем выберите EDIT.

c8fb02ed59a5b068.png

В разделе «Рекламируемые маршруты» выберите опцию «Создать пользовательские маршруты» , обновите поля в соответствии с приведенным ниже примером, выберите «ГОТОВО», а затем нажмите «СОХРАНИТЬ».

5996464e3aae0665.png

f799082ab2cd7e31.png

Проверка

Убедитесь, что локальная виртуальная сеть VPC получила IP-адрес конечной точки PSC через HA-VPN.

В консоли перейдите в раздел Сеть VPC → Сети VPC → Локальная VPC → Маршруты → Регион → US-CENTRAL1 → Просмотр

1b42673e6f940bf2.png

10. Создание пользовательских рекламных маршрутов в локальной VPC.

Облачный маршрутизатор on-prem-vpc по умолчанию объявляет все подсети, но требуется только частная IP-подсеть.

В следующем разделе обновите объявления маршрутов с облачного маршрутизатора on-prem-cr-us-central1.

В консоли перейдите в раздел HYBRID CONNECTIVITY → CLOUD ROUTERS → on-prem-cr-us-central1 , затем выберите EDIT.

bd96bde9550d516a.png

В разделе «Рекламируемые маршруты» выберите опцию «Создать пользовательские маршруты» , обновите поля в соответствии с приведенным ниже примером, выберите «ГОТОВО», а затем нажмите «СОХРАНИТЬ».

f8b61f669a9cfeef.png

Проверка

Убедитесь, что aiml-vpc получил маршрут private-ip-subnet от локальной виртуальной сети (on-prem-vpc).

С помощью консоли перейдите в раздел Сеть VPC → Сети VPC → aiml-vpc → МАРШРУТЫ → РЕГИОН → US-CENTRAL1 → ВИД

2b1a7a5f918e9f50.png

11. Создайте управляемую пользователем учетную запись службы (экземпляры GCE).

Для обеспечения точного управления API Vertex требуется управляемая пользователем учетная запись службы , которая будет применяться к экземплярам NAT и частного клиента. После создания учетную запись службы может быть изменена в соответствии с бизнес-требованиями. В данном руководстве управляемая пользователем учетная запись службы vertex-sa будет иметь следующие роли:

Перед продолжением необходимо API служебных учетных записей.

Внутри Cloud Shell создайте учетную запись службы.

gcloud iam service-accounts create gce-vertex-sa \
    --description="service account for vertex" \
    --display-name="gce-vertex-sa"

Внутри Cloud Shell обновите учетную запись службы, добавив ей роль администратора вычислительного экземпляра.

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:gce-vertex-sa@$projectid.iam.gserviceaccount.com" --role="roles/compute.instanceAdmin.v1"

Внутри Cloud Shell обновите учетную запись службы, присвоив ей роль «Пользователь Vertex AI».

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:gce-vertex-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"

12. Создайте управляемую пользователем учетную запись службы (блокнот).

В следующем разделе вы создадите управляемую пользователем учетную запись службы, которая будет связана с рабочей средой Vertex Workbench (блокнотом), используемой в этом руководстве.

В данном руководстве к учетной записи службы будут применены следующие роли:

Внутри Cloud Shell создайте учетную запись службы.

gcloud iam service-accounts create user-managed-notebook-sa \
    --display-name="user-managed-notebook-sa"

Внутри Cloud Shell обновите учетную запись службы, присвоив ей роль администратора хранилища.

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/storage.admin"

Внутри Cloud Shell обновите учетную запись службы, присвоив ей роль «Пользователь Vertex AI».

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"

Внутри Cloud Shell обновите учетную запись службы, присвоив ей роль администратора реестра артефактов.

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/artifactregistry.admin"

В Cloud Shell укажите учетную запись службы и запишите адрес электронной почты, который будет использоваться при создании управляемого пользователем блокнота.

gcloud iam service-accounts list

13. Созданы тестовые экземпляры.

В следующем разделе вы создадите тестовые экземпляры для проверки различных методов доступа к API Vertex, а именно:

  • Экземпляр nat-client, будет использовать Cloud NAT для разрешения имен Vertex AI и, следовательно, для доступа к конечной точке онлайн-прогнозирования через Интернет.
  • Экземпляр private-client будет использовать IP-адрес Private Service Connect 100.100.10.10 для доступа к конечной точке Online Prediction через HA-VPN.

Внутри Cloud Shell создайте экземпляр nat-client .

gcloud compute instances create nat-client \
    --zone=us-central1-a \
    --image-family=debian-11 \
    --image-project=debian-cloud \
    --subnet=nat-subnet \
    --service-account=vertex-sa@$projectid.iam.gserviceaccount.com \
    --scopes=https://www.googleapis.com/auth/cloud-platform \
    --no-address \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install tcpdump dnsutils -y"

Внутри Cloud Shell создайте экземпляр private-client .

gcloud compute instances create private-client \
    --zone=us-central1-a \
    --image-family=debian-11 \
    --image-project=debian-cloud \
    --subnet=private-ip-subnet \
    --service-account=vertex-sa@$projectid.iam.gserviceaccount.com \
    --scopes=https://www.googleapis.com/auth/cloud-platform \
    --no-address \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install tcpdump dnsutils -y"

Чтобы разрешить Identity-Aware Proxy (IAP) подключаться к вашим виртуальным машинам , создайте правило брандмауэра, которое:

  • Применяется ко всем экземплярам виртуальных машин, к которым вы хотите обеспечить доступ с помощью IAP.
  • Разрешает входящий трафик из диапазона IP-адресов 35.235.240.0/20. Этот диапазон содержит все IP-адреса, которые IAP использует для пересылки TCP-трафика.

Внутри Cloud Shell создайте правило брандмауэра IAP.

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

14. Создайте записную книжку, управляемую пользователем.

API блокнота

В следующем разделе создайте управляемый пользователем блокнот, который будет включать ранее созданную учетную запись службы user-managed-notebook-sa.

Внутри Cloud Shell создайте экземпляр частного клиента.

gcloud notebooks instances create workbench-tutorial \
      --vm-image-project=deeplearning-platform-release \
      --vm-image-family=common-cpu-notebooks \
      --machine-type=n1-standard-4 \
      --location=us-central1-a \
      --subnet-region=us-central1 \
      --subnet=workbench-subnet \
      --no-public-ip    --service-account=user-managed-notebook-sa@$projectid.iam.gserviceaccount.com

15. Развертывание модели и онлайн-прогнозирование.

В следующем разделе используйте предоставленный пример кода Vertex AI: Использование пользовательских процедур прогнозирования с помощью Sklearn для предварительной и постобработки данных для прогнозирования. Начните с раздела 7, поскольку вы уже создали ноутбук на предыдущем шаге. После развертывания модели вернитесь к руководству, чтобы начать следующий раздел.

ee68b7ba0cfd2746.png

16. Проверка доступа к API Vertex через Интернет.

В следующем разделе вы войдете в систему, nat-client, и проверите подключение к Vertex AI с помощью dig и tcpdump к домену us-central1-aiplatform.googleapis.com, используемому для разрешения API Vertex.

Войдите в nat-client, используя IAP в Cloud Shell, чтобы проверить подключение к API Vertex, выполнив команду dig по домену Vertex us-central1-aiplatform.googleapis.com.

gcloud compute ssh nat-client --project=$projectid --zone=us-central1-a --tunnel-through-iap

Провести раскопки.

dig us-central1-aiplatform.googleapis.com

Например, обратите внимание на публичные IP-адреса в ответе DNS.

user@nat-client:~$ dig us-central1-aiplatform.googleapis.com

; <<>> DiG 9.16.42-Debian <<>> us-central1-aiplatform.googleapis.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56761
;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;us-central1-aiplatform.googleapis.com. IN A

;; ANSWER SECTION:
us-central1-aiplatform.googleapis.com. 300 IN A 108.177.111.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.250.1.95
us-central1-aiplatform.googleapis.com. 300 IN A 108.177.121.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.250.103.95
us-central1-aiplatform.googleapis.com. 300 IN A 108.177.120.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.251.171.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.250.159.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.251.120.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.251.161.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.251.172.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.126.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.70.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.132.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.201.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.202.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.69.95

;; Query time: 4 msec
;; SERVER: 169.254.169.254#53(169.254.169.254)
;; WHEN: Thu Jun 29 01:35:57 UTC 2023
;; MSG SIZE  rcvd: 322

В операционной системе nat-client выполните команду tcpdump для проверки разрешения DNS при выполнении запроса curl к онлайн-прогнозу.

 sudo tcpdump -i any port 53 -n

Пример:

user@nat-client:~$ sudo tcpdump -i any port 53 -n 
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes

Откройте новый терминал Cloud Shell, выбрав значок "+". После открытия новой вкладки обновите переменную с именем проекта.

Внутри Cloud Shell обновите переменную с именем проекта.

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

Внутри Cloud Shell 2 выполните SSH-подключение к экземпляру nat-client.

gcloud compute ssh --zone "us-central1-a" "nat-client" --project "$projectid"

В следующем разделе вы создадите файл instances.json с помощью редактора VI sudo или nano и вставите в него строку данных, используемую для получения прогноза от развернутой модели.

В операционной системе nat-client создайте файл instances.json со следующей строкой данных:

{"instances": [
  [0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
  [0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}

Пример:

user@nat-client:$ more instances.json 
{"instances": [
  [0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
  [0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}

user@nat-client:$

Получите идентификатор конечной точки онлайн-прогнозирования в облачной консоли, который будет использоваться на последующих этапах.

Перейдите в VERTEX AI → ОНЛАЙН-ПРОГНОЗИРОВАНИЕ

237d413ccde1e95b.png

В операционной системе nat-client создайте следующие переменные:

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"

Пример:

ENDPOINT_ID="3328226095324463104"

В операционной системе nat-client выполните команду curl, чтобы получить ответ от модели.

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json

Например, обратите внимание на успешный прогноз.

user@nat-client$ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json
{
  "predictions": [
    "$479.0",
    "$586.0"
  ],
  "deployedModelId": "1949163636186415104",
  "model": "projects/234086459238/locations/us-central1/models/947543727654567936",
  "modelDisplayName": "diamonds-cpr",
  "modelVersionId": "1"
}

17. Проверка — Доступ к API Vertex через Интернет

Теперь, когда вы выполнили предсказание, давайте посмотрим на результаты TCPDUMP (терминал 1), которые указывают на то, что экземпляр nat-клиента (192.168.10.2) выполняет DNS-запрос к локальному DNS-серверу 169.254.169.254 для домена Vertex AI us-central1-aiplatform.googleapis.com . Результатом DNS-запроса являются публичные виртуальные IP-адреса (VIPS) для API Vertex, как указано ниже:

user@nat-client:~$ sudo tcpdump -i any port 53 -n
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
20:05:09.260937 ens4  Out IP 192.168.10.2.40782 > 169.254.169.254.53: 47190+ A? oauth2.googleapis.com. (39)
20:05:09.260946 ens4  Out IP 192.168.10.2.40782 > 169.254.169.254.53: 28075+ AAAA? oauth2.googleapis.com. (39)
20:05:09.263556 ens4  In  IP 169.254.169.254.53 > 192.168.10.2.40782: 28075 4/0/0 AAAA 2607:f8b0:4001:c34::5f, AAAA 2607:f8b0:4001:c54::5f, AAAA 2607:f8b0:4001:c16::5f, AAAA 2607:f8b0:4001:c17::5f (151)
20:05:09.265018 ens4  In  IP 169.254.169.254.53 > 192.168.10.2.40782: 47190 16/0/0 A 74.125.201.95, A 74.125.202.95, A 74.125.69.95, A 64.233.183.95, A 173.194.193.95, A 173.194.194.95, A 173.194.195.95, A 173.194.196.95, A 173.194.197.95, A 64.233.191.95, A 173.194.74.95, A 173.194.192.95, A 209.85.145.95, A 209.85.146.95, A 209.85.147.95, A 142.250.125.95 (295)
20:05:09.474478 ens4  Out IP 192.168.10.2.57356 > 169.254.169.254.53: 36008+ A? us-central1-aiplatform.googleapis.com. (55)
20:05:09.474488 ens4  Out IP 192.168.10.2.57356 > 169.254.169.254.53: 47020+ AAAA? us-central1-aiplatform.googleapis.com. (55)
20:05:09.477190 ens4  In  IP 169.254.169.254.53 > 192.168.10.2.57356: 36008 16/0/0 A 173.194.194.95, A 173.194.195.95, A 173.194.196.95, A 173.194.197.95, A 173.194.74.95, A 173.194.192.95, A 209.85.145.95, A 209.85.146.95, A 209.85.147.95, A 142.250.125.95, A 142.250.136.95, A 142.250.148.95, A 209.85.200.95, A 209.85.234.95, A 142.250.152.95, A 142.250.128.95 (311)
20:05:09.478607 ens4  In  IP 169.254.169.254.53 > 192.168.10.2.57356: 47020 4/0/0 AAAA 2607:f8b0:4001:c1b::5f, AAAA 2607:f8b0:4001:c0c::5f, AAAA 2607:f8b0:4001:c0e::5f, AAAA 2607:f8b0:4001:c1e::5f (167)

18. Обеспечьте приватный доступ к API Vertex.

В следующем разделе вы получите доступ к API Vertex, используя Private Service Connect через гибридную сеть (HA VPN), чтобы обеспечить конфиденциальный доступ к онлайн-прогнозированию. В примере, используемом в руководстве, вы обновите файл /etc/hosts в экземпляре частного клиента.

В локальной среде для тестирования целесообразно обновить файл /etc/hosts на одной или нескольких машинах, однако для крупномасштабных и производственных сред предпочтительнее создать новую зону переадресации, используя полное доменное имя конечной точки PSC.

Например, конечная точка psc, созданная в руководстве, называется pscvertex, что соответствует pscvertex.p.googleapis.com . При использовании этой конечной точки для Vertex добавьте полное доменное имя (FQDN) с названием сервиса, например, us-central1-aiplatform-pscvertex.p.googleapis.com .

Обновление локальной DNS с использованием конечной точки PSC также требует рефакторинга локальных приложений для вызова FDQN, например, us-central1-aiplatform-pscvertex.p.googleapis.com , вместо собственной общедоступной конечной точки us-central1-aiplatform.googleapis.com .

Клиенты, которые могут быть настроены на использование пользовательской конечной точки, могут использовать DNS-имена p.googleapis.com для отправки запросов к этой конечной точке.

Для получения информации о настройке использования пользовательских конечных точек обратитесь к документации вашего клиента или клиентской библиотеки. Например:

Откройте новый терминал Cloud Shell, выбрав значок "+". После открытия новой вкладки обновите переменную с именем проекта.

Из Cloud Shell.

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

Войдите в частный клиент, используя IAP, в новой оболочке Cloud Shell, чтобы проверить подключение к API Vertex, выполнив команду dig по домену Vertex us-central1-aiplatform.googleapis.com.

В Cloud Shell войдите в экземпляр частной клиентской операционной системы.

gcloud compute ssh private-client --project=$projectid --zone=us-central1-a --tunnel-through-iap

Провести раскопки.

dig us-central1-aiplatform.googleapis.com

Например, обратите внимание на публичные IP-адреса, полученные на основе ответа DNS.

user@private-client:~$ dig us-central1-aiplatform.googleapis.com

; <<>> DiG 9.16.42-Debian <<>> us-central1-aiplatform.googleapis.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33311
;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;us-central1-aiplatform.googleapis.com. IN A

;; ANSWER SECTION:
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.132.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.201.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.202.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.69.95
us-central1-aiplatform.googleapis.com. 300 IN A 64.233.182.95
us-central1-aiplatform.googleapis.com. 300 IN A 64.233.183.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.193.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.194.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.195.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.196.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.197.95
us-central1-aiplatform.googleapis.com. 300 IN A 64.233.191.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.74.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.192.95
us-central1-aiplatform.googleapis.com. 300 IN A 209.85.145.95
us-central1-aiplatform.googleapis.com. 300 IN A 209.85.146.95

;; Query time: 4 msec
;; SERVER: 169.254.169.254#53(169.254.169.254)
;; WHEN: Sun Jul 02 20:5

Обновите файл /etc/hosts экземпляра частного клиента с помощью sudo VI editor или nano, чтобы создать запись с полным доменным именем Vertext AI us-central1-aiplatform.googleapis.com , указывающую на конечную точку PSC 100.100.10.10; дальнейшие изменения не требуются.

Пример:

user@private-client:~$ more /etc/hosts
127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

100.100.10.10 us-central1-aiplatform.googleapis.com
192.168.20.2 private-client.c.$projectid.internal private-client  # Added by Google
169.254.169.254 metadata.google.internal  # Added by Google

С клиентской ОС выполните команду PING к конечной точке API Vertex.

ping us-central1-aiplatform.googleapis.com

Например, команда PING возвращает IP-адрес конечной точки PSC, но ответа не ожидается.

user@private-client:~$ ping us-central1-aiplatform.googleapis.com
PING us-central1-aiplatform.googleapis.com (100.100.10.10) 56(84) bytes of data.

В операционной системе частного клиента выполните команду tcpdump для проверки разрешения DNS и пути передачи данных по IP-адресу до конечной точки PSC при выполнении команды curl к онлайн-прогнозу.

 sudo tcpdump -i any port 53 -n or host 100.100.10.10

Откройте четвертый терминал Cloud Shell, выбрав кнопку «+». После открытия новой вкладки обновите переменную с именем проекта.

Внутри Cloud Shell обновите переменную с именем проекта.

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

Внутри Cloud Shell 4 выполните SSH-подключение к экземпляру частного клиента.

gcloud compute ssh --zone "us-central1-a" "private-client" --project "$projectid"

В следующем разделе вы создадите файл instances.json с помощью редактора VI sudo или nano и вставите в него строку данных, используемую для получения прогноза от развернутой модели.

В операционной системе частного клиента создайте файл instances.json со следующей строкой данных:

{"instances": [
  [0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
  [0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}

Пример:

user@private-client:$ more instances.json 
{"instances": [
  [0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
  [0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}

user@private-client:$

В операционной системе частного клиента создайте следующие переменные:

gcloud config list project
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"

Пример:

ENDPOINT_ID="3328226095324463104"

В частной операционной системе Cloud Shell 4 выполните команду curl, чтобы получить ответ от модели.

curl -v -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json

19. Валидация — Закрытый доступ к API Vertex

Обратите внимание, что в частной клиентской ОС в Cloud Shell 4 для доступа к API Vertex использовался IP-адрес конечной точки PSC (100.100.10.10).

user@private-client$ curl -v -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json
Note: Unnecessary use of -X or --request, POST is already inferred.
*   Trying 100.100.10.10:443...
* Connected to us-central1-aiplatform.googleapis.com (100.100.10.10) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: CN=upload.video.google.com
*  start date: May 29 08:21:36 2023 GMT
*  expire date: Aug 21 08:21:35 2023 GMT
*  subjectAltName: host "us-central1-aiplatform.googleapis.com" matched cert's "*.googleapis.com"
*  issuer: C=US; O=Google Trust Services LLC; CN=GTS CA 1C3
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x55f2ab65c2c0)
> POST /v1/projects/$projectid/locations/us-central1/endpoints/3328226095324463104:predict HTTP/2
> Host: us-central1-aiplatform.googleapis.com
> user-agent: curl/7.74.0
> accept: */*
> authorization: Bearer ya29.a0AbVbY6NdCbIJYj0mQROeq-xYgQCw534TTtjRc1kBAEOimKCFxb3gqgD5AvhfefJatSNr33eW1YJirfQVMptFoqfjRoB-i8zEJJ_GGCVqhsVnpSOjK0hzJQSuo2YGjIiSe1o1zdo7lWmh1Px-vLe8FImieGkrQ1hqVaa6aCgYKAXgSARESFQFWKvPlUQ_FuKB2hrDJRyFDjupL1g0171
> content-type: application/json
> content-length: 154
> 
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
* We are completely uploaded and fine
< HTTP/2 200 
< content-type: application/json; charset=UTF-8
< x-vertex-ai-internal-prediction-backend: harpoon
< date: Mon, 03 Jul 2023 22:13:35 GMT
< vary: X-Origin
< vary: Referer
< vary: Origin,Accept-Encoding
< server: scaffolding on HTTPServer2
< cache-control: private
< x-xss-protection: 0
< x-frame-options: SAMEORIGIN
< x-content-type-options: nosniff
< accept-ranges: none
< 
{
  "predictions": [
    "$479.0",
    "$586.0"
  ],
  "deployedModelId": "1949163636186415104",
  "model": "projects/234086459238/locations/us-central1/models/947543727654567936",
  "modelDisplayName": "diamonds-cpr",
  "modelVersionId": "1"
}
* Connection #0 to host us-central1-aiplatform.googleapis.com left intact

С помощью терминала TCPDUMP в Cloud Shell 3 мы можем убедиться, что DNS-запрос к us-central1-aiplatform.googleapis.com не был выполнен, поскольку приоритет имел файл /etc/hosts, хотя в пути передачи данных использовался IP-адрес PSC 100.100.10.10.

user@private-client:~$ sudo tcpdump -i any port 53 -n or host 100.100.10.10
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
22:13:35.507625 ens4  Out IP 192.168.20.2.37004 > 169.254.169.254.53: 58585+ A? oauth2.googleapis.com. (39)
22:13:35.507631 ens4  Out IP 192.168.20.2.37004 > 169.254.169.254.53: 15580+ AAAA? oauth2.googleapis.com. (39)
22:13:35.511796 ens4  In  IP 169.254.169.254.53 > 192.168.20.2.37004: 58585 16/0/0 A 142.251.6.95, A 108.177.112.95, A 74.125.124.95, A 172.217.212.95, A 172.217.214.95, A 172.253.114.95, A 172.253.119.95, A 108.177.111.95, A 142.250.1.95, A 108.177.121.95, A 142.250.103.95, A 108.177.120.95, A 142.251.171.95, A 142.250.159.95, A 142.251.120.95, A 142.251.161.95 (295)
22:13:35.512002 ens4  In  IP 169.254.169.254.53 > 192.168.20.2.37004: 15580 4/0/0 AAAA 2607:f8b0:4001:c2b::5f, AAAA 2607:f8b0:4001:c18::5f, AAAA 2607:f8b0:4001:c5f::5f, AAAA 2607:f8b0:4001:c58::5f (151)
22:13:35.722145 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [S], seq 1951267724, win 65320, options [mss 1420,sackOK,TS val 1371205990 ecr 0,nop,wscale 7], length 0
22:13:35.730727 ens4  In  IP 100.100.10.10.443 > 192.168.20.2.47304: Flags [S.], seq 3198878726, ack 1951267725, win 65535, options [mss 1366,sackOK,TS val 67847676 ecr 1371205990,nop,wscale 8], length 0
22:13:35.730760 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [.], ack 1, win 511, options [nop,nop,TS val 1371205999 ecr 67847676], length 0
22:13:35.738339 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 1:518, ack 1, win 511, options [nop,nop,TS val 1371206006 ecr 67847676], length 517
22:13:35.739922 ens4  In  IP 100.100.10.10.443 > 192.168.20.2.47304: Flags [.], ack 518, win 261, options [nop,nop,TS val 67847688 ecr 1371206006], length 0
22:13:35.740860 ens4  In  IP 100.100.10.10.443 > 192.168.20.2.47304: Flags [.], seq 1:2709, ack 518, win 261, options [nop,nop,TS val 67847689 ecr 1371206006], length 2708
22:13:35.740863 ens4  In  IP 100.100.10.10.443 > 192.168.20.2.47304: Flags [P.], seq 2709:4699, ack 518, win 261, options [nop,nop,TS val 67847689 ecr 1371206006], length 1990
22:13:35.740874 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [.], ack 2709, win 497, options [nop,nop,TS val 1371206009 ecr 67847689], length 0
22:13:35.740886 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [.], ack 4699, win 485, options [nop,nop,TS val 1371206009 ecr 67847689], length 0
22:13:35.742709 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 518:598, ack 4699, win 501, options [nop,nop,TS val 1371206011 ecr 67847689], length 80
22:13:35.743996 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 598:644, ack 4699, win 501, options [nop,nop,TS val 1371206012 ecr 67847689], length 46
22:13:35.744011 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 644:693, ack 4699, win 501, options [nop,nop,TS val 1371206012 ecr 67847689], length 49
22:13:35.744082 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 693:728, ack 4699, win 501, options [nop,nop,TS val 1371206012 ecr 67847689], length 35
22:13:35.744165 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 728:1069, ack 4699, win 501, options [nop,nop,TS val 1371206012 ecr 67847689], length 341

Вы успешно подтвердили подключение к онлайн-прогнозированию через общедоступную точку доступа в Интернете, а также через частную сеть с использованием гибридной сети и Private Service Connect (googleapis). Выйдите из операционной системы и вернитесь в командную строку Cloud Shell.

20. Уборка

В Cloud Shell удалите компоненты учебного пособия.

gcloud compute forwarding-rules delete pscvertex --global --quiet

gcloud compute instances delete workbench-tutorial --zone=us-central1-a --quiet 

gcloud compute addresses delete psc-ip --global --quiet

gcloud compute networks subnets delete workbench-subnet --region=us-central1 --quiet 

gcloud compute vpn-tunnels delete aiml-vpc-tunnel0 aiml-vpc-tunnel1 on-prem-tunnel0 on-prem-tunnel1 --region=us-central1 --quiet

gcloud compute vpn-gateways delete aiml-vpn-gw on-prem-vpn-gw --region=us-central1 --quiet 

gcloud compute routers delete aiml-cr-us-central1 cloud-router-us-central1-aiml-nat --region=us-central1 --quiet 

gcloud compute routers delete cloud-router-us-central1-on-prem-nat on-prem-cr-us-central1 --region=us-central1 --quiet

gcloud compute instances delete nat-client private-client --zone=us-central1-a --quiet

gcloud compute firewall-rules delete ssh-iap-on-prem-vpc --quiet

gcloud compute networks subnets delete nat-subnet  private-ip-subnet --region=us-central1 --quiet

gcloud compute networks delete on-prem-vpc --quiet

gcloud compute networks delete aiml-vpc --quiet

Удалить компоненты вершин

Чтобы удалить образ контейнера, перейдите в реестр артефактов, выберите созданный вами репозиторий и нажмите «Удалить».

616a3108bc2e48c8.png

Чтобы удалить сегмент хранилища, воспользуйтесь меню навигации в консоли Cloud Console, перейдите в раздел «Хранилище», выберите свой сегмент и нажмите «Удалить».

eddd1f9fdfaede8.png

Удалите модель с конечной точки. Перейдите в Vertex AI → Онлайн-прогнозирование → Выберите diamonds-cpr_endpoint → Удалить модель с конечной точки → Удалить

bc95f092d21d4698.png

Удалите модель. Перейдите в Vertex AI → Реестр моделей → Удалить модель.

ec4afff091e11606.png

Удалите конечную точку онлайн-прогнозирования. Перейдите в VertexAI → Онлайн-прогнозирование → Выберите diamonds-cpr_endpoint → Удалить конечную точку

7453760299bdfb9a.png

21. Поздравляем!

Поздравляем, вы успешно настроили и проверили подключение к Online Prediction как через Интернет, так и через частную сеть Private Service Connect и гибридную сеть.

Вы создали nat-client и private-client и использовали TCPDUMP для проверки IP-адресов, используемых для доступа к API Vertex. Кроме того, вы узнали о Private Service Connect (googleapis) и о том, как его можно использовать для изоляции локальных и многооблачных приложений с помощью конечной точки PSC клиента.

Cosmopup считает, что обучающие материалы — это здорово!!

e6d3675ca7c6911f.jpeg

Что дальше?

Посмотрите эти обучающие материалы...

Дополнительная литература и видеоматериалы

Справочная документация