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

1. Введение

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

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

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

24a07ba49a7bcb16.png

Что ты построишь

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

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

b545c808b366341a.png

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

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

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

Частный доступ к онлайн-прогнозу состоит из следующего:

  • Развертывание модели в конечной точке онлайн-прогнозирования aVertex в проекте.
  • Создайте конечную точку 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

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

Облачный 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 создайте региональный шлюз Cloud 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

Создайте on-prem-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

Создайте подсеть Private-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 используется в руководстве для загрузки пакетов программного обеспечения. Облачный NAT также предлагает возможности исходящего NAT, что означает, что интернет-хостам не разрешается инициировать связь с компьютером, что делает его более безопасным.

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

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

В Cloud Shell создайте региональный шлюз Cloud 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 будет объявлен из target-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) и одноранговой сетью с помощью протокола пограничного шлюза (BGP) .

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

В этом руководстве вы развернете HA 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 для on-prem-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

С помощью консоли перейдите в раздел ГИБРИДНОЕ ПОДКЛЮЧЕНИЕ → VPN → ОБЛАЧНЫЕ VPN-ШЛЮЗЫ и убедитесь, что 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 создайте туннель0:

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-туннели для on-prem-vpc.

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

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

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

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-туннеля

С помощью консоли перейдите в раздел ГИБРИДНОЕ ПОДКЛЮЧЕНИЕ → VPN → ОБЛАЧНЫЕ VPN-ТУННЕЛИ.

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 и пиринг для on-prem-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» , чтобы просмотреть сведения о VPN-туннеле.

cb91b4476a88acd3.png

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

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

Обратите внимание, что aiml-vpc изучил маршруты из подсети nat-subnet и Private-IP-подсети on-prem-vpc.

f407ed6e1a6233db.png

Убедитесь, что on-prem-vpc узнал подсеть рабочей среды через HA-VPN.

С помощью консоли перейдите к сети VPC → Сети VPC → on-prem-vpc → МАРШРУТЫ → РЕГИОН → US-CENTRAL1 → ПРОСМОТР.

7957e5d898a9e7e0.png

9. Создайте персонализированную рекламу маршрутов aiml-vpc.

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

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

В консоли перейдите в раздел «ГИБРИДНОЕ ПОДКЛЮЧЕНИЕ» → «ОБЛАЧНЫЕ МАРШРУТЫ» → «aiml-cr-us-central1» , затем выберите «РЕДАКТИРОВАТЬ».

c8fb02ed59a5b068.png

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

5996464e3aae0665.png

f799082ab2cd7e31.png

Валидация

Убедитесь, что on-prem-vpc узнал IP-адрес конечной точки PSC через HA-VPN.

С помощью консоли перейдите к сети VPC → Сети VPC → on-prem-vpc → МАРШРУТЫ → РЕГИОН → US-CENTRAL1 → ПРОСМОТР.

1b42673e6f940bf2.png

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

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

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

В консоли перейдите в раздел ГИБРИДНОЕ ПОДКЛЮЧЕНИЕ → ОБЛАЧНЫЕ МАРШРУТИЗАТОРЫ → on-prem-cr-us-central1 , затем выберите РЕДАКТИРОВАТЬ.

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 (Notebook), используемым в руководстве.

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

В 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 для доступа к конечной точке онлайн-прогнозирования через 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, чтобы проверить подключение к Vertex API, выполнив поиск по домену вершин 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 при выполнении завивки против онлайн-прогноза.

 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 два выполните подключение по ssh к экземпляру nat-client.

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

В следующем разделе вы создадите файл instances.json с помощью редактора sudo VI или 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:$

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

Перейдите в 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 -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. Проверка: доступ к Vertex API через Интернет.

Теперь, когда вы выполнили прогноз, давайте посмотрим на результаты TCPDUMP (терминал 1), которые указывают на то, что экземпляр nat-client (192.168.10.2) выполняет DNS-запрос к локальному DNS-серверу 169.254.169.254 для домена Vertex AI. 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 . При использовании конечной точки для вершины добавьте полное доменное имя со службой, например us-central1-aiplatform-pscvertex.p.googleapis. ком .

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

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

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

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

Из Клауд Шелл.

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

Войдите в частный клиент с помощью IAP в новой Cloud Shell, чтобы проверить подключение к Vertex API, выполнив поиск в домене вершин 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 или 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 при выполнении скручивания для онлайн-прогноза.

 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 четыре выполните ssh для экземпляра частного клиента.

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

В следующем разделе вы создадите файл instances.json с помощью редактора sudo VI или 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 -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. Валидация — частный доступ к Vertex API

Обратите внимание, что в операционной системе частного клиента в Cloud Shell 4 для доступа к Vertex API использовался 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/host имел приоритет, однако 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

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

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-клиент и частный клиент и использовали TCPDUMP для проверки IP-адресов, используемых для доступа к API-интерфейсам Vertex. Кроме того, вы узнали о Private Service Connect (googleapis) и о том, как его можно использовать для изоляции локальных и многооблачных приложений за счет использования конечной точки PSC клиента.

Cosmopup считает, что уроки — это здорово!!

e6d3675ca7c6911f.jpeg

Что дальше?

Посмотрите некоторые из этих уроков...

Дальнейшее чтение и видео

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