1. परिचय
कंपनी की इमारत में मौजूद होस्ट, सार्वजनिक इंटरनेट के ज़रिए ऑनलाइन अनुमान तक पहुंच सकते हैं (पहला विकल्प) या अपनी कंपनी की इमारत से, Private Service Connect (PSC) के साथ Cloud VPN या Cloud Interconnect का इस्तेमाल करके (दूसरा विकल्प), एसएसएल/टीएलएस एन्क्रिप्शन की सुविधा देते हैं. इंटरकनेक्ट पर ऑनलाइन अनुमान के लिए हाइब्रिड कनेक्टिविटी, इंटरनेट की तुलना में ज़्यादा बेहतर है, इसलिए महत्वपूर्ण ऐप्लिकेशन के लिए इसका सुझाव दिया जाता है, जैसा कि चित्र 1 में दिखाया गया है.
इस ट्यूटोरियल में, हम दो VPC नेटवर्क के बीच निजी तौर पर ऑनलाइन अनुमान ऐक्सेस करने के लिए, ज़्यादा उपलब्धता वाले वीपीएन (HA VPN) का इस्तेमाल करने का तरीका बताएंगे. ये दोनों VPC नेटवर्क, मल्टी-क्लाउड और कंपनी की इमारत में निजी कनेक्टिविटी के आधार के तौर पर काम कर सकते हैं.
ध्यान दें कि Vertex ऑनलाइन अनुमान एक सार्वजनिक एंडपॉइंट है. इसलिए, आपको VPC सर्विस कंट्रोल (VPC-SC) का इस्तेमाल करके ऐक्सेस पर पाबंदी लगानी है, ताकि Vertex और अन्य Google API को ऐक्सेस देने या न देने के लिए, सुरक्षित पेरीमीटर बनाए जा सकें. इस ट्यूटोरियल में VPC-SC के बारे में जानकारी नहीं दी गई है. ज़्यादा जानकारी के लिए, VPC सर्विस कंट्रोल के साथ Vertex AI की सुविधा देखें
आपको क्या बनाना होगा
आपको कंपनी की इमारत में एनवायरमेंट दिखाने के लिए, on-prem-vpc
नाम का VPC नेटवर्क सेट अप करना होगा. आपके डिप्लॉयमेंट के लिए, on-prem-vpc
मौजूद नहीं होगा. इसके बजाय, कंपनी की इमारत में मौजूद डेटा सेंटर या क्लाउड सेवा देने वाली कंपनी की हाइब्रिड नेटवर्किंग का इस्तेमाल किया जाएगा.
यहां दी गई जानकारी के हिसाब से, Private Service Connect का एक बेहतर आर्किटेक्चर बनाया जा रहा है. यह Cloud NAT के ज़रिए सार्वजनिक तौर पर, PSC का इस्तेमाल करके और HA VPN के बजाय, PSC का निजी तौर पर इस्तेमाल करके, Private Service Connect के बारे में जानकारी देता है.
Google Cloud प्रोजेक्ट में ऑनलाइन अनुमान को डिप्लॉय करने के बाद, यहां दिए गए इस्तेमाल के उदाहरण एक्सप्लोर किए जाएंगे:
लोगों के लिए, ऑनलाइन दिखाए जाने वाले विज्ञापनों के सुझाव की सुविधा सार्वजनिक तौर पर उपलब्ध होती है. इसमें ये चीज़ें शामिल होती हैं:
- ऐसा GCE इंस्टेंस (नैट-क्लाइंट) बनाएं जो इग्रेस डेटा ट्रैफ़िक के लिए, NAT का इस्तेमाल करता हो
- मॉडल से अनुमान लगाने के लिए CURL का इस्तेमाल करें
- TCPDUMP का उपयोग करके इस बात की पुष्टि करें कि ऑनलाइन पूर्वानुमान को किसी सार्वजनिक वीआईपी के ज़रिए ऐक्सेस किया गया है
ऑनलाइन सुझावों के लिए निजी ऐक्सेस में ये शामिल हैं:
- प्रोजेक्ट में aVertex ऑनलाइन अनुमान एंडपॉइंट पर किसी मॉडल को डिप्लॉय करना
- optl-vpc में Private Service Connect (Googleapis) एंडपॉइंट बनाएं
- PSC आईपी पते को क्लाउड राऊटर पर, पसंद के मुताबिक विज्ञापन के तौर पर कंपनी की VPC में एक्सपोर्ट करें
- GCE (जीसीई) इंस्टेंस (निजी-क्लाइंट) बनाएं और PSC एंडपॉइंट आईपी की मदद से, वगैरह/होस्ट की फ़ाइल अपडेट करें
- मॉडल से अनुमान लगाने के लिए CURL का इस्तेमाल करें
- टीसीपीडीयूएमपी का इस्तेमाल करके इस बात की पुष्टि करें कि PSC एंडपॉइंट आईपी पते से ऑनलाइन अनुमान को ऐक्सेस किया गया है
आपको इनके बारे में जानकारी मिलेगी
- Private Service Connect एंडपॉइंट को सेट अप करने का तरीका
- Cloud राऊटर पर PSC एंडपॉइंट आईपी का विज्ञापन करने का तरीका
- सार्वजनिक और निजी, दोनों तरह के ऑनलाइन अनुमान के ऐक्सेस की पुष्टि करने के लिए, TCPDUMP का इस्तेमाल कैसे करें
आपको इन चीज़ों की ज़रूरत होगी
- Google Cloud प्रोजेक्ट
IAM अनुमतियां
2. शुरू करने से पहले
ट्यूटोरियल की मदद करने के लिए, प्रोजेक्ट अपडेट करना
यह ट्यूटोरियल, Cloud Shell में gcloud कॉन्फ़िगरेशन लागू करने में मदद करने के लिए $variables का इस्तेमाल करता है.
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. Target-vpc सेटअप
target-vpc बनाएं
Cloud Shell के अंदर, यह तरीका अपनाएं:
gcloud compute networks create aiml-vpc --project=$projectid --subnet-mode=custom
उपयोगकर्ता से मैनेज किया जाने वाला notebook सबनेट बनाएं
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
Cloud राऊटर और NAT का कॉन्फ़िगरेशन
Cloud NAT का इस्तेमाल, notebook सॉफ़्टवेयर पैकेज को डाउनलोड करने के ट्यूटोरियल में किया जाता है. ऐसा इसलिए होता है, क्योंकि उपयोगकर्ता की ओर से मैनेज किए जाने वाले notebook के इंस्टेंस में कोई बाहरी आईपी पता नहीं होता है. Cloud NAT, इग्रेस डेटा ट्रैफ़िक (एनएटी) की सुविधाएं भी देता है. इसका मतलब है कि इंटरनेट होस्ट, उपयोगकर्ता से मैनेज की जाने वाली नोटबुक के साथ कम्यूनिकेशन शुरू नहीं कर सकते. इससे नोटबुक ज़्यादा सुरक्षित होती है.
Cloud Shell में, रीजनल क्लाउड राऊटर बनाएं.
gcloud compute routers create cloud-router-us-central1-aiml-nat --network aiml-vpc --region us-central1
Cloud Shell के अंदर, रीजनल क्लाउड नैट गेटवे बनाएं.
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. कंपनी की इमारत में वीपीसी सेटअप करने की
ऑन-प्रीम-वीपीसी बनाना
Cloud Shell के अंदर, यह तरीका अपनाएं:
gcloud compute networks create on-prem-vpc --project=$projectid --subnet-mode=custom
नैट-सबनेट बनाना
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-subnet बनाना
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
Cloud राऊटर और NAT का कॉन्फ़िगरेशन
ट्यूटोरियल में Cloud NAT का इस्तेमाल, सॉफ़्टवेयर पैकेज डाउनलोड करने के लिए किया जाता है. Cloud NAT, इग्रेस डेटा एनएटी की सुविधाएं भी देता है. इसका मतलब है कि इंटरनेट होस्ट, कंप्यूट की मदद से कम्यूनिकेशन नहीं कर सकते. इससे डेटा ज़्यादा सुरक्षित हो जाता है.
Cloud Shell में, रीजनल क्लाउड राऊटर बनाएं.
gcloud compute routers create cloud-router-us-central1-on-prem-nat --network on-prem-vpc --region us-central1
Cloud Shell के अंदर, रीजनल क्लाउड नैट गेटवे बनाएं.
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) एंडपॉइंट बनाया जाएगा. इसका इस्तेमाल कंपनी की ऑन-प्रीम-वीपीसी से Vertex API को ऐक्सेस करने के लिए किया जाएगा. अगले चरण में, पीएससी आईपी पते 100.100.10.10 का विज्ञापन, customl-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. हाइब्रिड कनेक्टिविटी
नीचे दिए गए सेक्शन में, एक क्लाउड राऊटर बनाया जाएगा. इसकी मदद से, बॉर्डर गेटवे प्रोटोकॉल (बीजीपी) का इस्तेमाल करके, अपने वर्चुअल प्राइवेट क्लाउड (वीपीसी) और मिलते-जुलते ऐप्लिकेशन के नेटवर्क के बीच, डाइनैमिक तरीके से रूट शेयर करने की सुविधा मिलेगी.
Cloud राऊटर में आपके नेटवर्क को कनेक्ट करने के लिए, Cloud VPN टनल पर बीजीपी सेशन सेट अप किया जा सकता है. यह नए सबनेट आईपी पते की रेंज को अपने-आप पहचानकर, आपके मिलते-जुलते ऐप्लिकेशन को उनके बारे में बताता है.
ट्यूटोरियल में एचए वीपीएन को aiml-vpc और on-prem-vpc के बीच डिप्लॉय करें.
aiml-vpc के लिए एचए वीपीएन गेटवे बनाएं
हर गेटवे बन जाने पर, दो बाहरी IPv4 पते अपने-आप असाइन हो जाते हैं. इसका मतलब है कि हर गेटवे इंटरफ़ेस के लिए एक पता.
Cloud Shell के अंदर HA VPN गेटवे बनाएं
gcloud compute vpn-gateways create aiml-vpn-gw \
--network=aiml-vpc\
--region=us-central1
on-prem-vpc के लिए एचए वीपीएन गेटवे बनाएं
हर गेटवे बन जाने पर, दो बाहरी IPv4 पते अपने-आप असाइन हो जाते हैं. इसका मतलब है कि हर गेटवे इंटरफ़ेस के लिए एक पता. इन आईपी पतों को नोट कर लें, ताकि इन्हें बाद में कॉन्फ़िगरेशन के चरणों में इस्तेमाल किया जा सके.
Cloud Shell के अंदर, HA VPN गेटवे बनाएं.
gcloud compute vpn-gateways create on-prem-vpn-gw \
--network=on-prem-vpc\
--region=us-central1
एचए वीपीएन गेटवे की पुष्टि करना
कंसोल का इस्तेमाल करके, HYBRID CONNECTIVITY → VPN → इसकी Cloud VPN GATEWAYS पर जाएं और पुष्टि करें कि गेटवे आईपी जनरेट हुए हैं.
local-vpc के लिए क्लाउड राऊटर बनाएं
Cloud Shell के अंदर, us-central1 में मौजूद Cloud राऊटर बनाएं
gcloud compute routers create aiml-cr-us-central1 \
--region=us-central1 \
--network=aiml-vpc\
--asn=65001
कंपनी की इमारत के लिए क्लाउड राऊटर बनाएं
Cloud Shell के अंदर, us-central1 में मौजूद Cloud राऊटर बनाएं
gcloud compute routers create on-prem-cr-us-central1 \
--region=us-central1 \
--network=on-prem-vpc \
--asn=65002
target-vpc के लिए वीपीएन टनल बनाना
आपको हर एचए वीपीएन गेटवे पर दो वीपीएन टनल बनाने होंगे.
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
वीपीएन टनल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 टनल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
वीपीएन टनल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
वीपीएन टनल बनाने की पुष्टि करें
कंसोल का इस्तेमाल करके, HYBRID CONNECTIVITY → VPN → इसकी आवाज़ के साथ वीपीएन इस्तेमाल करने वाले टूल पर जाएं.
8. BGP के आस-पास के लोगों को तैयार करें
बीजीपी सेशन बनाना
इस सेक्शन में, Cloud Router इंटरफ़ेस और BGP पीयर को कॉन्फ़िगर किया जाता है.
BGP इंटरफ़ेस बनाना और टारगेट-वीपीसी के लिए पीयर करना
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 इंटरफ़ेस बनाएं और कंपनी की इमारत के लिए पीयरिंग करें
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
वीपीएन टनल की जानकारी देखने के लिए, हाइब्रिड कनेक्टिविटी → वीपीएन पर जाएं.
एचए वीपीएन पर,्मल-vpc के सीखे गए रास्तों की पुष्टि करें
कंसोल का इस्तेमाल करके, VPC नेटवर्क → VPC नेटवर्क → audience-vpc→ ROUTES → region → US-CENTRAL1 → VIEW पर जाएं
देखें कि टारगेट-वीपीसी ने on-prem-vpc nat-subnet और private-ip-subnet से रूट सीखे हैं या नहीं
पुष्टि करें कि HA-वीपीएन की तुलना में कंपनी की इमारत-Vpc ने वर्कबेंच-सबनेट को सीख लिया है
कंसोल का इस्तेमाल करके, VPC नेटवर्क → VPC नेटवर्क → on-prem-vpc → ROUTES → region → US-CENTRAL1 → देखें पर जाएं
9. कस्टम रूट विज्ञापन customl-vpc बनाएं
Private Service Connect एंडपॉइंट आईपी का विज्ञापन,्मl-cr-us-central1 क्लाउड राऊटर से अपने-आप नहीं दिखाया जाता. ऐसा इसलिए, क्योंकि सबनेट को VPC में कॉन्फ़िगर नहीं किया गया है.
इसके बजाय, आपको एंडपॉइंट आईपी पते 100.100.10.10 के लिए टारगेट-cr-us-central क्लाउड राऊटर से पसंद के मुताबिक रूट विज्ञापन बनाना होगा. इसका विज्ञापन बीजीपी की जगह, कंपनी की इमारत में मौजूद एनवायरमेंट में दिखाया जाएगा.
कंसोल से HYBRID CONNECTIVITY → इसकी Cloud ROUTERS → मीटरएल-cr-us-central1 पर जाएं, फिर EDIT. चुनें
विज्ञापन वाले रूट सेक्शन में, कस्टम रूट बनाएं विकल्प चुनें. इसके बाद, नीचे दिए गए उदाहरण के आधार पर फ़ील्ड अपडेट करें. इसके बाद, हो गया चुनें और सेव करें पर क्लिक करें.
पुष्टि करना
पुष्टि करें कि on-prem-vpc ने HA-वीपीएन के बजाय PSC एंडपॉइंट आईपी पते को सीख लिया है
कंसोल का इस्तेमाल करके, VPC नेटवर्क → VPC नेटवर्क → on-prem-vpc → ROUTES → region → US-CENTRAL1 → देखें पर जाएं
10. कंपनी की इमारत में कस्टम रूट के विज्ञापन बनाएं
on-prem-vpc क्लाउड राऊटर, डिफ़ॉल्ट रूप से सभी सबनेट के विज्ञापन दिखाता है. हालांकि, सिर्फ़ private-ip-subnet की ज़रूरत होती है.
नीचे दिए गए सेक्शन में, on-prem-cr-us-central1 क्लाउड राऊटर से रूट के विज्ञापनों को अपडेट करें.
कंसोल से, HYBRID कनेक्टिविटी → क्लाउड रूटिंग → on-prem-cr-us-central1 पर जाएं. इसके बाद, बदलाव करें को चुनें.
विज्ञापन वाले रूट सेक्शन में, कस्टम रूट बनाएं विकल्प चुनें. इसके बाद, नीचे दिए गए उदाहरण के आधार पर फ़ील्ड अपडेट करें. इसके बाद, हो गया चुनें और सेव करें पर क्लिक करें.
पुष्टि करना
पुष्टि करें कि onel-vpc ने on-prem-vpc से private-ip-subnet रूट को सीख लिया है.
कंसोल का इस्तेमाल करके, VPC नेटवर्क → VPC नेटवर्क → मतलबl-vpc → ROUTES → region → US-CENTRAL1 → VIEW पर जाएं
11. उपयोगकर्ता की ओर से मैनेज किया जाने वाला सेवा खाता बनाना (GCE इंस्टेंस)
Vertex API को बेहतर तरीके से कंट्रोल करने के लिए, उपयोगकर्ता की ओर से मैनेज किए जाने वाले सेवा खाते की ज़रूरत होती है. इस खाते को Nat और निजी क्लाइंट इंस्टेंस पर लागू किया जाएगा. जनरेट होने के बाद, सेवा खाते की अनुमतियों में, कारोबार की ज़रूरी शर्तों के आधार पर बदलाव किया जा सकता है. ट्यूटोरियल में, उपयोगकर्ता की ओर से मैनेज किए जाने वाले सेवा खाते, Verex-sa में ये भूमिकाएं लागू होंगी:
आगे बढ़ने से पहले, आपको सेवा खाता एपीआई को करना होगा.
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 User की भूमिका के साथ अपडेट करें
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 User की भूमिका के साथ अपडेट करें.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"
Cloud Shell में, सेवा खाते को Artifact Registry के एडमिन की भूमिका के साथ अपडेट करें.
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. टेस्ट के इंस्टेंस बनाए गए
नीचे दिए गए सेक्शन में, Vertex API तक पहुंचने के अलग-अलग तरीकों की पुष्टि करने के लिए, टेस्ट इंस्टेंस बनाए जाएंगे. खास तौर पर:
- उदाहरण के लिए,
nat-client,
, Vertex AI की समस्या को हल करने के लिए Cloud NAT का इस्तेमाल करेगा. इसलिए, इंटरनेट पर ऑनलाइन अनुमान एंडपॉइंट को ऐक्सेस किया जाएगा private-client
, HA-वीपीएन पर ऑनलाइन अनुमान एंडपॉइंट को ऐक्सेस करने के लिए, Private Service Connect आईपी 100.100.10.10 का इस्तेमाल करेगा.
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"
पहचान-जागरूक प्रॉक्सी (आईएपी) को अपने वीएम इंस्टेंस से कनेक्ट करने की अनुमति देने के लिए, फ़ायरवॉल का नियम बनाएं. यह नियम:
- यह उन सभी वीएम इंस्टेंस पर लागू होता है जिन्हें आपको आईएपी का इस्तेमाल करके ऐक्सेस करना है.
- आईपी रेंज 35.235.240.0/20 से, इन्ग्रेस डेटा ट्रैफ़िक की अनुमति देता है. इस रेंज में वे सभी आईपी पते शामिल होते हैं जिनका इस्तेमाल आईएपी, टीसीपी फ़ॉरवर्ड करने के लिए करता है.
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. उपयोगकर्ता की ओर से मैनेज की जाने वाली नोटबुक बनाएं
नीचे दिए गए सेक्शन में, उपयोगकर्ता के ज़रिए मैनेज की जाने वाली नोटबुक बनाएं. इसमें पहले बनाए गए सेवा खाते, 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 से शुरू करें, क्योंकि आपने पिछले चरण में नोटबुक बना ली है. मॉडल लागू होने के बाद, अगला सेक्शन शुरू करने के लिए ट्यूटोरियल पर वापस जाएं.
16. इंटरनेट पर Vertex API के ऐक्सेस की पुष्टि करें
नीचे दिए गए सेक्शन में, Vertex API का इस्तेमाल करने के लिए इस्तेमाल किए जाने वाले डोमेन us-central1-aiplatform.googleapis.com के साथ Dig और tcpdump का इस्तेमाल करके, इंस्टेंस नैट-क्लाइंट में लॉग इन करके और Vertex AI के साथ कनेक्टिविटी की पुष्टि करने के बारे में बताया गया है.
वर्टेक्स डोमेन us-central1-aiplatform.googleapis.com की जांच करके Vertex API से कनेक्टिविटी की पुष्टि करने के लिए Cloud Shell में IAP का इस्तेमाल करके nat-क्लाइंट में लॉग इन करें
gcloud compute ssh nat-client --project=$projectid --zone=us-central1-a --tunnel-through-iap
खुदाई का काम पूरा करें.
dig us-central1-aiplatform.googleapis.com
उदाहरण के लिए, डीएनएस रिस्पॉन्स में सार्वजनिक आईपी नोट करें.
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-क्लाइंट ओएस से, डीएनएस रिज़ॉल्यूशन की पुष्टि करने के लिए tcpdump को एक्ज़ीक्यूट करें.
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 शेल दो के अंदर, nat-क्लाइंट इंस्टेंस के लिए ssh इस्तेमाल करें.
gcloud compute ssh --zone "us-central1-a" "nat-client" --project "$projectid"
नीचे दिए गए सेक्शन में, sudo VI एडिटर या नैनो का इस्तेमाल करके example.json फ़ाइल बनाई जाएगी. इसके बाद, डिप्लॉय किए गए मॉडल से अनुमान लगाने के लिए इस्तेमाल की गई डेटा स्ट्रिंग को शामिल किया जाएगा.
nat-client OS से, नीचे दी गई डेटा स्ट्रिंग की मदद से 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 → ऑनलाइन पूर्वानुमान पर जाएं
नेट-क्लाइंट ओएस से, ये वैरिएबल बनाएं:
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"
नैट-क्लाइंट ओएस से, मॉडल से रिस्पॉन्स पाने के लिए कर्ल करें.
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 का इंटरनेट ऐक्सेस
आपने अनुमान को लागू कर लिया है, तो अब टीसीपीडीयूएमपी के नतीजों (टर्मिनल 1) पर नज़र डालते हैं. इनसे पता चलता है कि नैट-क्लाइंट इंस्टेंस (192.168.10.2), Vertex AI डोमेन us-central1-ai.googleapis.com के लिए स्थानीय डीएनएस सर्वर 169.254.169.254 पर डीएनएस क्वेरी किस तरह परफ़ॉर्म कर रहा है us-central1-ai.googleapis.com डीएनएस क्वेरी के नतीजे, Vertex API के लिए सार्वजनिक वर्चुअल आईपी पते (वीआईपीएस) हैं, जिनके बारे में नीचे बताया गया है:
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. Vertex API का निजी ऐक्सेस चालू करें
नीचे दिए गए सेक्शन में, ऑनलाइन अनुमान तक निजी तौर पर पहुंचने के लिए, हाइब्रिड नेटवर्किंग (HA VPN) पर Private Service Connect का इस्तेमाल करके, Vertex API को ऐक्सेस किया जाएगा. ट्यूटोरियल में इस्तेमाल किए गए उदाहरण में, आपको Private-client के इंस्टेंस में, /etc/hosts फ़ाइल को अपडेट करना होगा.
आपकी कंपनी की इमारत में, जांच के लिए एक या एक से ज़्यादा मशीन /etc/hosts फ़ाइल को अपडेट करना सही होता है. हालांकि, बड़े पैमाने पर और प्रोडक्शन एनवायरमेंट में पीएससी एंडपॉइंट एफ़क्यूडीएन का इस्तेमाल करके नया फ़ॉरवर्ड ज़ोन बनाना बेहतर होता है.
उदाहरण के तौर पर, ट्यूटोरियल में बनाए गए psc एंडपॉइंट को pscversionex कहा जाता है. इसका मतलब है pscvertex.p.googleapis.com. जब वर्टेक्स के एंडपॉइंट का इस्तेमाल करने पर, FQDN को us-central1-aiplatform-pscvertex.p.googleapis.com जैसी सेवा के साथ जोड़ा जाता है.
पीएससी एंडपॉइंट की मदद से, कंपनी की इमारत में डीएनएस को अपडेट करने के लिए, लोकल ऐप्लिकेशन की रीफ़ैक्टरिंग को भी ज़रूरी है, ताकि नेटिव पब्लिक एंडपॉइंट us-central1-aiplatform.googleapis.com के बजाय, एफ़डीक्यूएन को us-central1-aiplatform-pscvertex.p.googleapis.com को कॉल किया जा सके.
जिन क्लाइंट को कस्टम एंडपॉइंट का इस्तेमाल करने के लिए कॉन्फ़िगर किया जा सकता है वे एंडपॉइंट को अनुरोध भेजने के लिए p.googleapis.com के डीएनएस का इस्तेमाल कर सकते हैं.
अपनी क्लाइंट या क्लाइंट लाइब्रेरी का दस्तावेज़ देखें, ताकि आपको कस्टम एंडपॉइंट का इस्तेमाल करने के लिए, इसे कॉन्फ़िगर करने की जानकारी मिल सके. उदाहरण के लिए:
- Python: आप google-api-core पैकेज में क्लाइंट ऑप्शन क्लास में api_endpoint कॉन्फ़िगर कर सकते हैं.
- जाएं: एपीआई पैकेज में क्लाइंट के लिए विकल्पों के पैकेज में जाकर, WithEndpoint को कॉन्फ़िगर किया जा सकता है.
- gcloud: आप api_endpoint_overrides कॉन्फ़िगर कर सकते हैं
"+" को चुनकर, नया Cloud Shell टर्मिनल खोलें. नया टैब खुलने के बाद, प्रोजेक्ट के नाम का वैरिएबल अपडेट करें.
Cloud Shell से.
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
नए Cloud Shell में IAP का इस्तेमाल करके प्राइवेट क्लाइंट में लॉग इन करें. इससे 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
उदाहरण के लिए, डीएनएस रिस्पॉन्स के आधार पर सार्वजनिक आईपी नोट करें.
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
सूडो VI एडिटर या नैनो का इस्तेमाल करके प्राइवेट-क्लाइंट इंस्टेंस /etc/hosts को अपडेट करें, ताकि पीएससी एंडपॉइंट 100.100.10.10 को पॉइंट करने वाले Vertext AI FQDN us-central1-aiplatform.googleapis.com का रिकॉर्ड बनाया जा सके. आगे कोई बदलाव करने की ज़रूरत नहीं है.
उदाहरण:
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
निजी-क्लाइंट ओएस से, Vertex API एंडपॉइंट तक पिंग करें.
ping us-central1-aiplatform.googleapis.com
उदाहरण के लिए, PING 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 को एक्ज़ीक्यूट करें.
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 चौथे के अंदर, Private-client के इंस्टेंस के लिए ssh इस्तेमाल करें.
gcloud compute ssh --zone "us-central1-a" "private-client" --project "$projectid"
नीचे दिए गए सेक्शन में, sudo VI एडिटर या नैनो का इस्तेमाल करके इंस्टेंस.json फ़ाइल बनाई जाएगी. साथ ही, डिप्लॉय किए गए मॉडल से अनुमान लगाने के लिए इस्तेमाल की गई डेटा स्ट्रिंग भी डाली जाएगी.
निजी-क्लाइंट OS से, नीचे दी गई डेटा स्ट्रिंग की मदद से 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 को ऐक्सेस करने के लिए 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
Cloud Shell तीन के टीसीपीडीयूएमपी टर्मिनल से, हम पुष्टि कर सकते हैं कि us-central1-aiplatform.googleapis.com पर डीएनएस लुकअप नहीं हुआ है. ऐसा इसलिए है, क्योंकि डेटा पाथ में /etc/host फ़ाइल को प्राथमिकता दी गई थी और फिर भी 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
Vertex कॉम्पोनेंट मिटाएं
कंटेनर इमेज को मिटाने के लिए, Artifact Registry पर जाएं. इसके बाद, आपने जो डेटा स्टोर किया है उसे चुनें और मिटाएं को चुनें
अपने Cloud Console में नेविगेशन मेन्यू का इस्तेमाल करके, स्टोरेज बकेट मिटाने के लिए स्टोरेज पर जाएं. इसके बाद, अपनी बकेट चुनें और मिटाएं पर क्लिक करें:
एंडपॉइंट से मॉडल को डिप्लॉय न करें. Vertex AI पर नेविगेट करें → ऑनलाइन अनुमान →डायमंड-cpr_endpoint → एंडपॉइंट से मॉडल को डिप्लॉय न करें → डिप्लॉय न करें
मॉडल हटाएं. Vertex AI → Model Registry → मॉडल मिटाएं पर जाएं
ऑनलाइन अनुमानित एंडपॉइंट को मिटाएं. VertexAI पर जाएं → ऑनलाइन अनुमान →डायमंड-cpr_endpoint चुनें → एंडपॉइंट मिटाएं
21. बधाई हो
बधाई हो, आपने निजी तौर पर Private Service Connect और हाइब्रिड नेटवर्किंग की मदद से, इंटरनेट का इस्तेमाल करके ऑनलाइन अनुमान से कनेक्ट होने की पुष्टि कर ली है और पुष्टि कर ली है.
आपने नैट-क्लाइंट और प्राइवेट-क्लाइंट दोनों बनाए हैं. साथ ही, Vertex API तक पहुंचने के लिए इस्तेमाल किए गए आईपी पतों की पुष्टि करने के लिए, TCPDUMP का इस्तेमाल किया है. इसके अलावा, आपने Private Service Connect (googleapis) के बारे में जाना. साथ ही, यह भी सीखा कि ग्राहक के PSC एंडपॉइंट का इस्तेमाल करके, कंपनी की इमारत और मल्टी-क्लाउड ऐप्लिकेशन को आइसोलेट करने के लिए, इसका इस्तेमाल कैसे किया जा सकता है.
Cosmopup को लगता है कि ट्यूटोरियल शानदार हैं!!
आगे क्या होगा?
इनमें से कुछ ट्यूटोरियल देखें...
- Google API के लिए Private Service Connect
- Vertex AI, उपयोगकर्ता की मदद से मैनेज की जाने वाली एक सुरक्षित नोटबुक बनाता है
आगे पढ़ें और वीडियो
- Private Service Connect के बारे में खास जानकारी
- प्राइवेट सर्विस कनेक्ट क्या है?
- एमएल मॉडल से अनुमान लगाने का तरीका
- Vertex AI क्या है?