Vertex AI की मदद से, एक ऐसी नोटबुक बनाई जा सकती है जिसे उपयोगकर्ता मैनेज कर सकते हैं और जिसे सुरक्षित रखना होता है

1. परिचय

Vertex AI Workbench के उपयोगकर्ता की मदद से मैनेज किए जा रहे notebook के इंस्टेंस की मदद से, डीप लर्निंग वर्चुअल मशीन (वीएम) इंस्टेंस बनाए और मैनेज किए जा सकते हैं. ये इंस्टेंस, JupyterLab के साथ पहले से इंस्टॉल होते हैं.

उपयोगकर्ता के मैनेज किए गए नोटबुक इंस्टेंस में, डीप लर्निंग पैकेज का एक सुइट पहले से इंस्टॉल होता है. इसमें TensorFlow और PyTorch फ़्रेमवर्क के लिए सहायता भी शामिल है. सिर्फ़ सीपीयू या जीपीयू की सुविधा वाले इंस्टेंस को कॉन्फ़िगर किया जा सकता है.

आपको क्या बनाने को मिलेगा

इस ट्यूटोरियल में, नेटवर्किंग और सुरक्षा के सबसे सही तरीकों के आधार पर, उपयोगकर्ता के मैनेज किए गए सुरक्षित नोटबुक को डिप्लॉय करने की प्रोसेस के बारे में बताया गया है. इसके लिए, यह तरीका अपनाएं:

  1. वीपीसी बनाना
  2. Cloud Router और Cloud NAT बनाना
  3. नोटबुक इंस्टेंस को सुरक्षा से जुड़ी सही सेटिंग के साथ कॉन्फ़िगर करें

इस ट्यूटोरियल में, हर चरण के बारे में पूरी जानकारी दी गई है. इसमें, उपयोगकर्ता के मैनेज किए गए नोटबुक को सुरक्षित रखने के लिए सुझाव और सबसे सही तरीके भी शामिल हैं. पहली इमेज में, स्टैंडअलोन वीपीसी का इस्तेमाल करके डिप्लॉयमेंट करने का तरीका दिखाया गया है.

इमेज 1

2292244ba0b11f71.png

आपको क्या सीखने को मिलेगा

  • यह तय करना कि शेयर किया गया वीपीसी या स्टैंडअलोन वीपीसी, आपके संगठन के लिए सही है या नहीं
  • स्टैंडअलोन वीपीसी बनाने का तरीका
  • Cloud Router और Cloud NAT बनाने का तरीका
  • उपयोगकर्ता के मैनेज किए गए नोटबुक बनाने का तरीका
  • उपयोगकर्ता के मैनेज किए गए नोटबुक को ऐक्सेस करने का तरीका
  • उपयोगकर्ता के मैनेज की गई नोटबुक की परफ़ॉर्मेंस को मॉनिटर करने का तरीका
  • इंस्टेंस शेड्यूल बनाने और लागू करने का तरीका

आपको किन चीज़ों की ज़रूरत होगी

  • Google Cloud प्रोजेक्ट

IAM अनुमतियां

2. VPC नेटवर्क

वीपीएन नेटवर्क को उसी तरह से समझा जा सकता है जिस तरह से किसी फ़िज़िकल नेटवर्क को समझा जाता है. हालांकि, यह Google Cloud में वर्चुअलाइज़ किया जाता है. वीपीसी नेटवर्क एक ग्लोबल संसाधन है, जिसमें रीजनल सबनेट होते हैं. Google Cloud में वीपीसी नेटवर्क, लॉजिकल तौर पर एक-दूसरे से अलग होते हैं.

स्टैंडअलोन वीपीसी

दूसरी इमेज में, स्टैंडअलोन ग्लोबल वीपीसी का उदाहरण दिखाया गया है. इसमें Cloud Router और Cloud NAT के साथ-साथ, एक रीजनल सबनेट (us-central1) भी शामिल है. इनका इस्तेमाल, उपयोगकर्ता के मैनेज किए गए नोटबुक को इंटरनेट से सुरक्षित तरीके से कनेक्ट करने की अनुमति देने के लिए किया जाता है.

इमेज 2

2292244ba0b11f71.png

शेयर किया गया वीपीसी

शेयर किए गए VPC की मदद से, होस्ट प्रोजेक्ट में मौजूद VPC नेटवर्क से सबनेट को, एक ही संगठन के सेवा प्रोजेक्ट में एक्सपोर्ट किया जा सकता है. होस्ट प्रोजेक्ट में नेटवर्किंग के ऐसे संसाधन होते हैं जिन्हें सर्विस प्रोजेक्ट के साथ शेयर किया जाता है. जैसे, सबनेट, क्लाउड नेट, और फ़ायरवॉल के नियम. सेवा प्रोजेक्ट में ऐप्लिकेशन-लेवल के ऐसे संसाधन होते हैं जो होस्ट प्रोजेक्ट में नेटवर्किंग संसाधनों का इस्तेमाल करते हैं.

तीसरी इमेज में, ग्लोबल शेयर किए गए वीपीसी का उदाहरण दिखाया गया है. इसमें नेटवर्किंग और सुरक्षा से जुड़ा इंफ़्रास्ट्रक्चर, होस्ट प्रोजेक्ट में डिप्लॉय किया जाता है. वहीं, वर्कलोड को सर्विस प्रोजेक्ट में डिप्लॉय किया जाता है.

इमेज 3

1354a9323c8e5787.png

स्टैंडअलोन बनाम शेयर किया गया वीपीसी

कई सामान्य इस्तेमाल के मामलों के लिए, एक वीपीसी नेटवर्क काफ़ी होता है. ऐसा इसलिए, क्योंकि इसे बनाना, बनाए रखना, और समझना, ज़्यादा जटिल विकल्पों की तुलना में आसान होता है. शेयर किया गया वीपीसी, कई टीमों वाले संगठनों के लिए एक असरदार टूल है. इसकी मदद से, वे सर्विस प्रोजेक्ट का इस्तेमाल करके, एक वीपीसी नेटवर्क के आर्किटेक्चर को कई वर्किंग ग्रुप तक बढ़ा सकते हैं.

ट्यूटोरियल में इस्तेमाल किया गया वीपीसी का सबसे सही तरीका

  • नोटबुक को ऐक्सेस करने के लिए, Cloud NAT चालू करें.
  • सबनेट बनाते समय, प्राइवेट Google ऐक्सेस चालू करें.
  • अनचाहे ट्रैफ़िक को कम करने के लिए, फ़ायरवॉल के नियमों को लागू करें. उदाहरण के लिए, 0.0.0.0/0 टीसीपी का इस्तेमाल न करें. इसके बजाय, सटीक सबनेट या होस्ट के आईपी पतों को तय करें.
  • इनग्रेस नियमों के दायरे को बढ़ाने के लिए, फ़ायरवॉल की नीतियों का इस्तेमाल करें.जैसे, भौगोलिक जगहें, खतरे की जानकारी देने वाली सूचियां, सोर्स डोमेन के नाम वगैरह.

3. नोटबुक इस्तेमाल करने के सबसे सही तरीके

अपने इंस्टेंस का सही साइज़ तय करना

  • इस्तेमाल नहीं किए जा रहे इंस्टेंस को बंद करना और/या मिटाना
  • शुरुआती इंस्टेंस के लिए छोटे साइज़ का इस्तेमाल करें और छोटे सैंपल डेटा के साथ दोहराएं
  • ज़रूरत के हिसाब से इंस्टेंस बढ़ाना
  • छोटे डेटासेट के साथ एक्सपेरिमेंट करना

सही मशीन टाइप चुनना

  • लागत के हिसाब से ऑप्टिमाइज़ की गई वर्चुअल मशीनें
  • लागत कम करने के लिए, हार्डवेयर संसाधनों का बेहतर तरीके से इस्तेमाल करना
  • N1 की तुलना में 31% तक की बचत
  • एक या तीन साल के लिए सदस्यता लेने पर, अतिरिक्त बचत (20 से 50%)
  • मशीन का साइज़ बढ़ाने या जीपीयू जोड़ने से, परफ़ॉर्मेंस को बेहतर बनाने और मेमोरी की सीमाओं से जुड़ी गड़बड़ियों को ठीक करने में मदद मिल सकती है

शटडाउन के लिए अपने इंस्टेंस शेड्यूल करना

  • जब इंस्टेंस का इस्तेमाल न हो रहा हो, तब उन्हें बंद कर दें. इससे आपको सिर्फ़ डिस्क स्टोरेज के लिए पैसे चुकाने होंगे
  • नोटबुक वीएम इंस्टेंस को किसी तय समय पर अपने-आप बंद और चालू होने के लिए शेड्यूल करना

नोटबुक के स्टेटस की निगरानी करना

सुरक्षा से जुड़ी ज़रूरी बातें

मैनेज की जा रही नोटबुक बनाते समय, सुरक्षा से जुड़ी इन बातों का ध्यान रखना ज़रूरी है:

  • "सिर्फ़ एक उपयोगकर्ता" के लिए notebook के ऐक्सेस का विकल्प चुनें. अगर आपने जिस उपयोगकर्ता को इंस्टेंस का ऐक्सेस दिया है उसने इंस्टेंस नहीं बनाया है, तो आपको उसे इंस्टेंस के सेवा खाते के लिए सेवा खाते के उपयोगकर्ता की भूमिका (roles/iam.serviceAccountUser) देनी होगी.
  • इन विकल्पों को बंद करें:
  • रूट ऐक्सेस
  • nbconvert
  • JupyterLab यूज़र इंटरफ़ेस (यूआई) से फ़ाइल डाउनलोड करना
  • उपयोगकर्ता के मैनेज किए गए नोटबुक को बाहरी आईपी पता असाइन करने के बजाय, Cloud NAT का इस्तेमाल किया जाएगा.
  • नीचे दिए गए कंप्यूट विकल्प चुनें:
  • सिक्योर बूट प्रोटोकॉल
  • वर्चुअल भरोसेमंद प्लैटफ़ॉर्म मॉड्यूल (वीटीपीएम)
  • इंटेग्रिटी मॉनिटरिंग

4. शुरू करने से पहले

ट्यूटोरियल के साथ काम करने के लिए प्रोजेक्ट को अपडेट करना

इस ट्यूटोरियल में, Cloud Shell में gcloud कॉन्फ़िगरेशन लागू करने में मदद के लिए, $variables का इस्तेमाल किया गया है.

Cloud Shell में, यह तरीका अपनाएं:

gcloud config list project
gcloud config set project [your-project-name]
projectid=your-project-name
echo $projectid

5. वीपीसी सेटअप करना

स्टैंडअलोन वीपीसी बनाना

Cloud Shell में, यह तरीका अपनाएं:

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

उपयोगकर्ता के मैनेज किए गए नोटबुक सबनेट बनाना

Cloud Shell में, यह तरीका अपनाएं:

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

क्लाउड राऊटर और एनएटी कॉन्फ़िगरेशन

नोटबुक सॉफ़्टवेयर पैकेज डाउनलोड करने के लिए, ट्यूटोरियल में Cloud NAT का इस्तेमाल किया जाता है. ऐसा इसलिए, क्योंकि उपयोगकर्ता के मैनेज किए गए नोटबुक इंस्टेंस में कोई बाहरी आईपी पता नहीं होता है. Cloud NAT, इग्रेस NAT की सुविधाएं भी देता है. इसका मतलब है कि इंटरनेट होस्ट को उपयोगकर्ता के मैनेज किए गए नोटबुक से कम्यूनिकेट करने की अनुमति नहीं है. इससे यह ज़्यादा सुरक्षित हो जाता है.

Cloud Shell में, रीजनल क्लाउड राउटर बनाएं.

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

Cloud Shell में, रीजनल क्लाउड नेट गेटवे बनाएं.

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

6. स्टोरेज बकेट बनाना

स्टोरेज बकेट, फ़ाइल अपलोड/फिर से पाने की सुरक्षित सुविधा देते हैं. ट्यूटोरियल में, क्लाउड स्टोरेज में स्टार्टअप के बाद की स्क्रिप्ट शामिल होगी. इससे उपयोगकर्ता के मैनेज किए गए नोटबुक में जनरेटिव एआई पैकेज इंस्टॉल किए जा सकेंगे.

Cloud Storage बकेट बनाएं और BUCKET_NAME को ऐसे नाम से बदलें जो दुनिया भर में यूनीक हो.

Cloud Shell में, एक यूनीक स्टोरेज बकेट बनाएं.

gsutil mb -l us-central1 -b on gs://BUCKET_NAME

लैब की अवधि के लिए ‘BUCKET_NAME' को सेव करता है

BUCKET_NAME=YOUR BUCKET NAME
echo $BUCKET_NAME

7. स्टार्टअप स्क्रिप्ट बनाना

जनरेटिव एआई पैकेज डाउनलोड करने की सुविधा चालू करने के लिए, क्लाउड शेल में स्टार्टअप के बाद की स्क्रिप्ट बनाएं. इसके लिए, vi या nano editor का इस्तेमाल करें. इसके बाद, इसे poststartup.sh के तौर पर सेव करें.

#! /bin/bash
echo "Current user: id" >> /tmp/notebook_config.log 2>&1
echo "Changing dir to /home/jupyter" >> /tmp/notebook_config.log 2>&1
cd /home/jupyter
echo "Cloning generative-ai from github" >> /tmp/notebook_config.log 2>&1
su - jupyter -c "git clone https://github.com/GoogleCloudPlatform/generative-ai.git" >> /tmp/notebook_config.log 2>&1
echo "Current user: id" >> /tmp/notebook_config.log 2>&1
echo "Installing python packages" >> /tmp/notebook_config.log 2&1
su - jupyter -c "pip install --upgrade --no-warn-conflicts --no-warn-script-location --user \
     google-cloud-bigquery \
     google-cloud-pipeline-components \
     google-cloud-aiplatform \
     seaborn \
     kfp" >> /tmp/notebook_config.log 2>&1

उदाहरण:

vpc_admin@cloudshell$ more poststartup.sh 
#! /bin/bash
echo "Current user: id" >> /tmp/notebook_config.log 2>&1
echo "Changing dir to /home/jupyter" >> /tmp/notebook_config.log 2>&1
cd /home/jupyter
echo "Cloning generative-ai from github" >> /tmp/notebook_config.log 2>&1
su - jupyter -c "git clone https://github.com/GoogleCloudPlatform/generative-ai.git" >> /tmp/notebook_config.log 2>&1
echo "Current user: id" >> /tmp/notebook_config.log 2>&1
echo "Installing python packages" >> /tmp/notebook_config.log 2&1
su - jupyter -c "pip install --upgrade --no-warn-conflicts --no-warn-script-location --user \
     google-cloud-bigquery \
     google-cloud-pipeline-components \
     google-cloud-aiplatform \
     seaborn \
     kfp" >> /tmp/notebook_config.log 2>&1

gsutil का इस्तेमाल करके, क्लाउड शेल से स्टोरेज बकेट में पोस्ट स्टार्टअप स्क्रिप्ट अपलोड करें

gsutil cp poststartup.sh gs://$BUCKET_NAME

8. सेवा खाता बनाना

उपयोगकर्ता के मैनेज किए गए नोटबुक को बेहतर तरीके से कंट्रोल करने के लिए, सेवा खाता ज़रूरी है. जनरेट होने के बाद, सेवा खाते की अनुमतियों में कारोबार की ज़रूरतों के हिसाब से बदलाव किया जा सकता है. ट्यूटोरियल में, सेवा खाते पर ये नियम लागू होंगे:

आगे बढ़ने से पहले, आपको सेवा खाते के एपीआई को होगा.

Cloud Shell में, सेवा खाता बनाएं.

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

Cloud Shell में, सेवा खाते को Storage Object Viewer की भूमिका के साथ अपडेट करें

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

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 iam service-accounts list

उदाहरण:

$ gcloud iam service-accounts list
DISPLAY NAME: user-managed-notebook-sa
EMAIL: user-managed-notebook-sa@my-project-id.iam.gserviceaccount.com
DISABLED: False

9. उपयोगकर्ता के मैनेज किए गए सुरक्षित नोटबुक बनाना

उपयोगकर्ता के मैनेज किए गए नोटबुक्स इंस्टेंस, डीप लर्निंग वर्चुअल मशीन इंस्टेंस होते हैं. इनमें मशीन लर्निंग और डेटा साइंस की नई लाइब्रेरी पहले से इंस्टॉल होती हैं. हार्डवेयर से तेज़ी लाने की सुविधा के लिए, Nvidia जीपीयू को शामिल किया जा सकता है. हालांकि, ऐसा करना ज़रूरी नहीं है.

उपयोगकर्ता के एपीआई चालू करना

Notebooks API को

उपयोगकर्ता के मैनेज की गई नोटबुक बनाना

  1. Workbench पर जाएं
  2. उपयोगकर्ता के मैनेज की गई नोटबुक चुनें. इसके बाद, नोटबुक बनाएं को चुनें. 'उपयोगकर्ता के मैनेज की गई नोटबुक बनाएं' पेज खुलता है.
  3. अगर कोई मौजूदा नोटबुक डिप्लॉय की गई है, तो उपयोगकर्ता के मैनेज की गई नोटबुक → नई नोटबुक → पसंद के मुताबिक बनाएं चुनें
  4. 'उपयोगकर्ता के मैनेज किए गए नोटबुक बनाएं' पेज पर, 'जानकारी' सेक्शन में जाकर, अपने नए इंस्टेंस के लिए यह जानकारी दें:
  • नाम: अपने नए इंस्टेंस के लिए कोई नाम डालें.
  • क्षेत्र और ज़ोन: इस ट्यूटोरियल में, क्षेत्र us-central1 और ज़ोन us-central1-a का इस्तेमाल किया जाएगा

जारी रखें को चुनें

  1. Environment सेक्शन में, यह जानकारी दें:
  • ऑपरेटिंग सिस्टम: वह ऑपरेटिंग सिस्टम चुनें जिसका आपको इस्तेमाल करना है.
  • वह एनवायरमेंट चुनें जिसका आपको इस्तेमाल करना है.
  • वर्शन: वह वर्शन चुनें जिसका आपको इस्तेमाल करना है.
  • स्टार्टअप के बाद की स्क्रिप्ट (ज़रूरी नहीं, पहले बनाई गई जनरेटिव एआई स्क्रिप्ट का इस्तेमाल करें) इंस्टेंस शुरू होने के बाद चलाने के लिए कोई स्क्रिप्ट चुनने के लिए, 'ब्राउज़ करें' को चुनें.
  • मेटाडेटा: ज़रूरी नहीं: इंस्टेंस के लिए कस्टम मेटाडेटा कुंजियां दें.

जारी रखें को चुनें

  1. मशीन टाइप सेक्शन में, यह जानकारी दें:
  • मशीन टाइप: अपने नए इंस्टेंस के लिए, सीपीयू की संख्या और रैम की मात्रा चुनें. Vertex AI Workbench, आपके चुने गए हर मशीन टाइप के लिए, हर महीने के खर्च का अनुमान दिखाता है.
  • जीपीयू का टाइप: अपने नए इंस्टेंस के लिए, जीपीयू का टाइप और जीपीयू की संख्या चुनें. अलग-अलग जीपीयू के बारे में जानकारी पाने के लिए, Compute Engine पर जीपीयू लेख पढ़ें.
  • 'Install NVIDIA GPU driver automatically for me' चेकबॉक्स को चुनें.

Shielded VM

  • सिक्योर बूट की सुविधा चालू करना
  • vTPM चालू करना
  • इंटीग्रिटी मॉनिटरिंग की सुविधा चालू करना

जारी रखें को चुनें

  1. डिस्क सेक्शन में, यह जानकारी दें:
  • डिस्क: ज़रूरी नहीं: बूट या डेटा डिस्क की डिफ़ॉल्ट सेटिंग बदलने के लिए, बूट डिस्क का टाइप, बूट डिस्क का साइज़ (GB में), डेटा डिस्क का टाइप, और डेटा डिस्क का साइज़ (GB में) चुनें. डिस्क के टाइप के बारे में ज़्यादा जानने के लिए, स्टोरेज के विकल्प लेख पढ़ें.
  • ट्रैश में मिटाएं: ज़रूरी नहीं: ऑपरेटिंग सिस्टम के डिफ़ॉल्ट ट्रैश फ़ोल्डर का इस्तेमाल करने के लिए, इस चेकबॉक्स को चुनें. डिफ़ॉल्ट ट्रैश फ़ोल्डर का इस्तेमाल करने पर, JupyterLab के उपयोगकर्ता इंटरफ़ेस का इस्तेमाल करके मिटाई गई फ़ाइलों को वापस लाया जा सकता है. हालांकि, इन मिटाई गई फ़ाइलों के लिए डिस्क स्पेस का इस्तेमाल किया जाता है.
  • बैकअप: ज़रूरी नहीं: Cloud Storage की जगह को अपने इंस्टेंस के डेटा डिस्क के साथ सिंक करने के लिए, 'ब्राउज़ करें' को चुनें और Cloud Storage की जगह की जानकारी दें. स्टोरेज की लागत के बारे में जानने के लिए, Cloud Storage की कीमत देखें.
  • एन्क्रिप्शन: Google की ओर से मैनेज की जाने वाली एन्क्रिप्शन कुंजी

जारी रखें को चुनें

  1. नेटवर्किंग सेक्शन में, यह जानकारी दें:
  • नेटवर्किंग: इस प्रोजेक्ट में मौजूद नेटवर्क या मेरे साथ शेयर किए गए नेटवर्क में से कोई एक चुनें. अगर होस्ट प्रोजेक्ट में शेयर किए गए वीपीसी का इस्तेमाल किया जा रहा है, तो आपको सेवा प्रोजेक्ट से Notebooks सेवा एजेंट को Compute Network User की भूमिका (roles/compute.networkUser) भी देनी होगी.
  • नेटवर्क फ़ील्ड में, अपनी पसंद का नेटवर्क चुनें. इस ट्यूटोरियल में, securevertex-vpc नेटवर्क का इस्तेमाल किया जा रहा है. कोई वीपीसी नेटवर्क चुना जा सकता है. हालांकि, यह ज़रूरी है कि नेटवर्क में प्राइवेट Google ऐक्सेस की सुविधा चालू हो या वह इंटरनेट ऐक्सेस कर सकता हो. सबनेटवर्क फ़ील्ड में, वह सबनेटवर्क चुनें जिसका आपको इस्तेमाल करना है. ट्यूटोरियल में, securevertex-subnet-a सबनेटवर्क का इस्तेमाल किया गया है.
  • 'असाइन एक्सटर्नल आईपी पता' विकल्प से चुने हुए का निशान हटाएं
  • 'प्रॉक्सी ऐक्सेस की अनुमति दें' चुनें

जारी रखें को चुनें

81bb7dbe31fbf587.png

  1. IAM और सुरक्षा सेक्शन में जाकर, यह जानकारी दें:
  • एक उपयोगकर्ता चुनें. इसके बाद, उपयोगकर्ता के ईमेल फ़ील्ड में, वह उपयोगकर्ता खाता डालें जिसे आपको ऐक्सेस देना है. अगर आपने जिस उपयोगकर्ता को इंस्टेंस का ऐक्सेस दिया है उसने इंस्टेंस नहीं बनाया है, तो आपको उसे इंस्टेंस के सेवा खाते के लिए सेवा खाते के उपयोगकर्ता की भूमिका (roles/iam.serviceAccountUser) देनी होगी.
  • 'Google Cloud API को कॉल करने के लिए, VM पर Compute Engine के डिफ़ॉल्ट सेवा खाते का इस्तेमाल करें' विकल्प से चुने हुए का निशान हटाएं
  • नए बनाए गए सेवा खाते का ईमेल पता डालें. उदाहरण के लिए: user-managed-notebook-sa@my-project-id.iam.gserviceaccount.com

सुरक्षा से जुड़े विकल्प

  • 'इंस्टेंस के लिए रूट ऐक्सेस चालू करें' विकल्प से चुने हुए का निशान हटाएं
  • 'nbconvert चालू करें' से चुने हुए का निशान हटाएं
  • JupyterLab यूज़र इंटरफ़ेस (यूआई) से फ़ाइल डाउनलोड करने की सुविधा चालू करें को अनचेक करें
  • टर्मिनल चालू करें (प्रोडक्शन एनवायरमेंट के लिए, इसे चुनें)

जारी रखें को चुनें

e19f3cd05a2c1b7f.png

  1. सिस्टम की परफ़ॉर्मेंस सेक्शन में, यह जानकारी दें

सिस्टम को अपग्रेड करना और सिस्टम की परफ़ॉर्मेंस

  • 'अपने-आप अपग्रेड होने की सुविधा चालू करें' चेकबॉक्स को चुनें.
  • चुनें कि आपको अपनी नोटबुक को हर हफ़्ते अपग्रेड करना है या हर महीने.

सिस्टम की परफ़ॉर्मेंस और रिपोर्टिंग में जाकर, यहां दिए गए चेकबॉक्स को चुनें या उनसे चुने हुए का निशान हटाएं:

  • सिस्टम की परफ़ॉर्मेंस की रिपोर्ट जनरेट करने की सुविधा चालू करें
  • Cloud Monitoring को कस्टम मेट्रिक रिपोर्ट करना
  • Cloud Monitoring एजेंट इंस्टॉल करना

बनाएं को चुनें.

10. पुष्टि

Vertex AI Workbench, आपकी तय की गई प्रॉपर्टी के आधार पर, उपयोगकर्ता की मदद से मैनेज किए जा रहे Notebook का इंस्टेंस बनाता है. साथ ही, यह इंस्टेंस को अपने-आप शुरू कर देता है. जब इंस्टेंस इस्तेमाल के लिए तैयार हो जाता है, तब Vertex AI Workbench, JupyterLab खोलें लिंक को चालू कर देता है. इससे असली उपयोगकर्ता को नोटबुक का ऐक्सेस मिल जाता है.

11. जांचने की क्षमता

Monitoring की मदद से, सिस्टम और ऐप्लिकेशन की मेट्रिक मॉनिटर करना

जिन नोटबुक इंस्टेंस को उपयोगकर्ता मैनेज करते हैं और जिनमें मॉनिटरिंग की सुविधा इंस्टॉल है, उनमें Google Cloud Console का इस्तेमाल करके सिस्टम और ऐप्लिकेशन मेट्रिक को मॉनिटर किया जा सकता है:

  1. Google Cloud Console में, उपयोगकर्ता के मैनेज किए गए नोटबुक पेज पर जाएं.
  2. उस इंस्टेंस के नाम पर क्लिक करें जिसकी सिस्टम और ऐप्लिकेशन मेट्रिक देखनी हैं.
  3. नोटबुक की जानकारी पेज पर, मॉनिटरिंग टैब पर क्लिक करें. अपने इंस्टेंस के लिए सिस्टम और ऐप्लिकेशन मेट्रिक की समीक्षा करें.

12. नोटबुक का शेड्यूल बनाना

इंस्टेंस शेड्यूल की मदद से, वर्चुअल मशीन (वीएम) इंस्टेंस को अपने-आप शुरू और बंद किया जा सकता है. वीएम इंस्टेंस को अपने-आप डिप्लॉय करने के लिए इंस्टेंस शेड्यूल का इस्तेमाल करने से, लागत को ऑप्टिमाइज़ करने और वीएम इंस्टेंस को ज़्यादा बेहतर तरीके से मैनेज करने में मदद मिल सकती है. बार-बार होने वाले और एक बार होने वाले वर्कलोड, दोनों के लिए इंस्टेंस शेड्यूल का इस्तेमाल किया जा सकता है. उदाहरण के लिए, इंस्टेंस शेड्यूल का इस्तेमाल करके, वीएम इंस्टेंस को सिर्फ़ काम के घंटों के दौरान चलाया जा सकता है. इसके अलावा, इसका इस्तेमाल एक बार होने वाले इवेंट के लिए क्षमता उपलब्ध कराने के लिए भी किया जा सकता है.

इंस्टेंस शेड्यूल का इस्तेमाल करने के लिए, एक संसाधन नीति बनाएं. इसमें इंस्टेंस के शुरू और बंद होने के बारे में जानकारी दें. इसके बाद, इस नीति को एक या उससे ज़्यादा वीएम इंस्टेंस से अटैच करें.

इस ट्यूटोरियल में, इंस्टेंस शेड्यूल बनाने का तरीका बताया गया है. इससे आपकी नोटबुक सुबह 7 बजे चालू हो जाएगी और शाम 6 बजे बंद हो जाएगी.

इंस्टेंस शेड्यूल बनाने के लिए, आपके पास compute.instances.start और compute.instances.stop की अनुमति होनी चाहिए. इसलिए, एडमिन की ओर से बनाई गई कस्टम भूमिका का इस्तेमाल करने का सुझाव दिया जाता है.

कस्टम भूमिका बनाने के बाद, उसे आपके प्रोजेक्ट में Compute Engine के डिफ़ॉल्ट सेवा खाते को असाइन कर दिया जाएगा. इससे इंस्टेंस शेड्यूल, आपकी नोटबुक को शुरू और बंद कर सकेगा.

पसंद के मुताबिक भूमिका बनाना

Cloud Shell में, VmScheduler नाम की कस्टम भूमिका बनाएं और उसमें ज़रूरी अनुमतियां शामिल करें.

gcloud iam roles create Vm_Scheduler --project=$projectid \
    --title=vm-scheduler-notebooks \
    --permissions="compute.instances.start,compute.instances.stop" --stage=ga

Cloud Shell से कस्टम भूमिका के बारे में बताएं.

gcloud iam roles describe Vm_Scheduler --project=$projectid

उदाहरण:

$ gcloud iam roles describe Vm_Scheduler --project=$projectid
etag: BwX991B0_kg=
includedPermissions:
- compute.instances.start
- compute.instances.stop
name: projects/$projectid/roles/Vm_Scheduler
stage: GA
title: vm-scheduler-notebooks

डिफ़ॉल्ट सेवा खाता अपडेट करना

यहां दिए गए सेक्शन में, आपको डिफ़ॉल्ट सेवा खाते की पहचान करनी होगी और उसे अपडेट करना होगा. इसका फ़ॉर्मैट यह होता है: PROJECT_NUMBER-compute@developer.gserviceaccount.com

Cloud Shell में, मौजूदा प्रोजेक्ट नंबर का पता लगाएं.

gcloud projects list --filter=$projectid

Cloud Shell में, प्रोजेक्ट नंबर को वैरिएबल के तौर पर सेव करें.

project_number=your_project_number
echo $project_number

Cloud Shell में, डिफ़ॉल्ट कंप्यूट सेवा खाते को VM_Scheduler की कस्टम भूमिका के साथ अपडेट करें.

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:$project_number-compute@developer.gserviceaccount.com" --role="projects/$projectid/roles/Vm_Scheduler"

इंस्टेंस का शेड्यूल बनाना

Cloud Shell में, शुरू और बंद करने का शेड्यूल बनाएं.

gcloud compute resource-policies create instance-schedule optimize-notebooks \
    --region=us-central1 \
    --vm-start-schedule='0 7 * * *' \
    --vm-stop-schedule='0 18 * * *' \
        --timezone=America/Chicago

Cloud Shell में, अपनी नोटबुक का नाम सेव करें.

gcloud compute instances list
notebook_vm=your_notebookvm_name
echo $notebook_vm

इंस्टेंस शेड्यूल को किसी भी मौजूदा वीएम इंस्टेंस से अटैच किया जा सकता है. हालांकि, यह ज़रूरी है कि वीएम इंस्टेंस, इंस्टेंस शेड्यूल के साथ एक ही क्षेत्र में मौजूद हो.

Cloud Shell में, शेड्यूल को अपनी नोटबुक से जोड़ें.

gcloud compute instances add-resource-policies $notebook_vm \
--resource-policies=optimize-notebooks \
--zone=us-central1-a

13. व्यवस्थित करें

कंसोल से उपयोगकर्ता के मैनेज किए गए नोटबुक को मिटाएं. इसके लिए, Vertex AI → Workbench पर जाएं. इसके बाद, नोटबुक को चुनें और मिटाएं.

Cloud Shell से, वीपीसी कॉम्पोनेंट मिटाएं.

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

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

gcloud compute instances remove-resource-policies $notebook_vm \
--resource-policies=optimize-notebooks \
--zone=us-central1-a --quiet

gcloud compute resource-policies delete optimize-notebooks --region=us-central1 --quiet

gcloud compute instances delete $notebook_vm --zone=us-central1-a --quiet

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

gcloud iam service-accounts delete user-managed-notebook-sa@$projectid.iam.gserviceaccount.com --quiet 

gcloud projects remove-iam-policy-binding $projectid --member="serviceAccount:$project_number-compute@developer.gserviceaccount.com" --role="projects/$projectid/roles/Vm_Scheduler"

gcloud iam roles delete Vm_Scheduler --project=$projectid

gcloud compute networks delete securevertex-vpc --quiet 

14. बधाई हो

बहुत खूब! आपने मैनेज किए जा रहे नोटबुक्स के लिए, सुरक्षा को बेहतर बनाने के सबसे सही तरीकों का इस्तेमाल करके, कस्टम स्टैंडअलोन वीपीसी बनाया है. इससे, आपने उपयोगकर्ता के मैनेज किए जा रहे सुरक्षित नोटबुक्स को कॉन्फ़िगर और पुष्टि कर ली है. साथ ही, खर्च को ऑप्टिमाइज़ करने के लिए, इंस्टेंस शेड्यूल लागू किया है.

आगे क्या करना है?

इनमें से कुछ ट्यूटोरियल देखें...

ज़्यादा जानकारी और वीडियो

रेफ़रंस दस्तावेज़