Vertex AI একটি নিরাপদ ব্যবহারকারী-পরিচালিত নোটবুক তৈরি করে

১. ভূমিকা

Vertex AI Workbench-এর ব্যবহারকারী-পরিচালিত নোটবুক ইনস্ট্যান্সগুলো আপনাকে ডিপ লার্নিং ভার্চুয়াল মেশিন (VM) ইনস্ট্যান্স তৈরি ও পরিচালনা করতে দেয়, যেগুলো JupyterLab-এর সাথে আগে থেকেই প্যাকেজ করা থাকে।

ব্যবহারকারী-পরিচালিত নোটবুক ইনস্ট্যান্সগুলিতে আগে থেকেই ডিপ লার্নিং প্যাকেজের একটি স্যুট ইনস্টল করা থাকে, যার মধ্যে TensorFlow এবং PyTorch ফ্রেমওয়ার্কের জন্য সমর্থন অন্তর্ভুক্ত। আপনি শুধুমাত্র সিপিইউ-ভিত্তিক অথবা জিপিইউ-সক্ষম ইনস্ট্যান্স কনফিগার করতে পারেন।

আপনি যা তৈরি করবেন

এই টিউটোরিয়ালে নেটওয়ার্কিং ও সিকিউরিটির সেরা অনুশীলনগুলোর উপর ভিত্তি করে একটি সুরক্ষিত ব্যবহারকারী-পরিচালিত নোটবুক স্থাপন করার প্রক্রিয়া বর্ণনা করা হয়েছে। এর সাথে নিম্নলিখিত ধাপগুলো জড়িত:

  1. একটি VPC তৈরি করুন
  2. একটি ক্লাউড রাউটার এবং ক্লাউড NAT তৈরি করুন
  3. যথাযথ নিরাপত্তা সেটিংস দিয়ে নোটবুক ইনস্ট্যান্সটি কনফিগার করুন।

এই টিউটোরিয়ালটিতে প্রতিটি ধাপের জন্য বিস্তারিত নির্দেশাবলী দেওয়া হয়েছে। এতে ব্যবহারকারী-পরিচালিত নোটবুক সুরক্ষিত করার জন্য কিছু টিপস এবং সেরা অনুশীলনও অন্তর্ভুক্ত রয়েছে। চিত্র ১ হলো একটি স্বতন্ত্র ভিপিসি (Standalone VPC) ব্যবহার করে স্থাপনার একটি দৃষ্টান্ত।

চিত্র ১

2292244ba0b11f71.png

আপনি যা শিখবেন

  • আপনার প্রতিষ্ঠানের জন্য শেয়ার্ড নাকি স্ট্যান্ডঅ্যালোন ভিপিসি উপযুক্ত, তা কীভাবে নির্ধারণ করবেন
  • কীভাবে একটি স্বতন্ত্র VPC তৈরি করবেন
  • কীভাবে একটি ক্লাউড রাউটার এবং ক্লাউড NAT তৈরি করবেন
  • ব্যবহারকারী-পরিচালিত নোটবুক কীভাবে তৈরি করবেন
  • ব্যবহারকারী-পরিচালিত নোটবুক কীভাবে অ্যাক্সেস করবেন
  • ব্যবহারকারী-পরিচালিত নোটবুকের স্বাস্থ্য কীভাবে নিরীক্ষণ করবেন
  • একটি ইনস্ট্যান্স শিডিউল কীভাবে তৈরি এবং প্রয়োগ করবেন

আপনার যা যা লাগবে

  • গুগল ক্লাউড প্রজেক্ট

IAM অনুমতি

২. ভিপিসি নেটওয়ার্ক

আপনি একটি ভিপিসি নেটওয়ার্ককে একটি ফিজিক্যাল নেটওয়ার্কের মতোই ভাবতে পারেন, তবে পার্থক্য হলো এটি গুগল ক্লাউডের মধ্যে ভার্চুয়ালাইজড থাকে। একটি ভিপিসি নেটওয়ার্ক হলো একটি গ্লোবাল রিসোর্স যা আঞ্চলিক সাবনেট নিয়ে গঠিত। গুগল ক্লাউডে ভিপিসি নেটওয়ার্কগুলো একে অপরের থেকে যৌক্তিকভাবে বিচ্ছিন্ন থাকে।

স্বতন্ত্র ভিপিসি

চিত্র ২ হলো একটি স্বতন্ত্র গ্লোবাল ভিপিসি-র উদাহরণ, যা ইউজার ম্যানেজড নোটবুককে নিরাপদে ইন্টারনেটে সংযোগ স্থাপন করতে দেওয়ার জন্য ব্যবহৃত হয় এবং এতে ক্লাউড রাউটার ও ক্লাউড ন্যাট-এর পাশাপাশি একটি আঞ্চলিক সাবনেট (us-central1) রয়েছে।

চিত্র ২

2292244ba0b11f71.png

শেয়ার্ড ভিপিসি

শেয়ার্ড ভিপিসি আপনাকে একটি হোস্ট প্রজেক্টের ভিপিসি নেটওয়ার্ক থেকে একই সংস্থার সার্ভিস প্রজেক্টগুলিতে সাবনেট রপ্তানি করার সুযোগ দেয়। হোস্ট প্রজেক্টে এমন নেটওয়ার্কিং রিসোর্স থাকে যা সার্ভিস প্রজেক্টের সাথে শেয়ার করা হয়, যেমন সাবনেট, ক্লাউড ন্যাট এবং ফায়ারওয়াল নিয়ম। সার্ভিস প্রজেক্টে অ্যাপ্লিকেশন-স্তরের রিসোর্স থাকে যা হোস্ট প্রজেক্টের নেটওয়ার্কিং রিসোর্স ব্যবহার করে।

চিত্র ৩ হলো একটি গ্লোবাল শেয়ার্ড ভিপিসি-র দৃষ্টান্ত, যেখানে নেটওয়ার্কিং ও নিরাপত্তা পরিকাঠামো হোস্ট প্রজেক্টে এবং ওয়ার্কলোডগুলো সার্ভিস প্রজেক্টে স্থাপন করা হয়।

চিত্র ৩

1354a9323c8e5787.png

স্বতন্ত্র বনাম শেয়ার্ড ভিপিসি

অনেক সাধারণ ব্যবহারের ক্ষেত্রে একটিমাত্র ভিপিসি নেটওয়ার্কই যথেষ্ট, কারণ এটি আরও জটিল বিকল্পগুলোর তুলনায় তৈরি করা, রক্ষণাবেক্ষণ করা এবং বোঝা সহজ। একাধিক দল রয়েছে এমন সংস্থাগুলোর জন্য শেয়ার্ড ভিপিসি একটি কার্যকর উপায়, কারণ এটি তাদেরকে সার্ভিস প্রজেক্ট ব্যবহারের মাধ্যমে একটিমাত্র ভিপিসি নেটওয়ার্কের স্থাপত্যগত সরলতাকে একাধিক কর্মদলের মধ্যে প্রসারিত করার সুযোগ দেয়।

টিউটোরিয়ালে ব্যবহৃত VPC সেরা অনুশীলন

  • নোটবুকটি অ্যাক্সেস করার জন্য ক্লাউড NAT সক্রিয় করুন।
  • সাবনেট তৈরি করার সময় প্রাইভেট গুগল অ্যাক্সেস চালু করুন।
  • অনাকাঙ্ক্ষিত ট্র্যাফিক কমাতে সুনির্দিষ্ট ফায়ারওয়াল নিয়ম তৈরি করুন, যেমন—0.0.0.0/0 টিসিপি ব্যবহার না করে এর পরিবর্তে সুনির্দিষ্ট সাবনেট বা হোস্টের আইপি অ্যাড্রেস নির্ধারণ করুন।
  • ইনগ্রেস রুলের পরিধি আরও গভীর করতে ফায়ারওয়াল পলিসি ব্যবহার করুন, যেমন—ভৌগোলিক অবস্থান, থ্রেট ইন্টেলিজেন্স তালিকা, উৎস ডোমেইন নাম ইত্যাদি।

৩. নোটবুক ব্যবহারের সেরা অনুশীলন

আপনার ইনস্ট্যান্সগুলির আকার সঠিক করুন

  • অব্যবহৃত ইনস্ট্যান্সগুলি বন্ধ করুন এবং/অথবা মুছে ফেলুন
  • ছোট প্রাথমিক ইনস্ট্যান্স ব্যবহার করুন এবং ছোট নমুনা ডেটা দিয়ে পুনরাবৃত্তি করুন।
  • প্রয়োজন অনুযায়ী ইনস্ট্যান্সের সংখ্যা বাড়ান।
  • ছোট ডেটাসেট নিয়ে পরীক্ষা করুন

সঠিক মেশিনের ধরণ নির্বাচন করুন

  • খরচ অপ্টিমাইজ করা ভিএম
  • খরচ কমাতে হার্ডওয়্যার রিসোর্সের আরও ভালো ব্যবহার করুন।
  • N1 এর তুলনায় ৩১% পর্যন্ত সাশ্রয়
  • ১ বা ৩ বছরের চুক্তিতে অতিরিক্ত সাশ্রয় (২০-৫০%)
  • মেশিনের আকার বাড়ানো বা জিপিইউ যোগ করা কর্মক্ষমতা বাড়াতে এবং মেমরির সীমাবদ্ধতাজনিত ত্রুটি কাটিয়ে উঠতে সাহায্য করতে পারে।

আপনার ইনস্ট্যান্সগুলো বন্ধ করার জন্য সময়সূচী নির্ধারণ করুন।

  • নিষ্ক্রিয় থাকলে ইনস্ট্যান্সগুলি বন্ধ করে দিন (শুধুমাত্র ডিস্ক স্টোরেজের জন্য অর্থ প্রদান করুন)
  • নির্দিষ্ট সময়ে নোটবুক ভিএম ইনস্ট্যান্সগুলোকে স্বয়ংক্রিয়ভাবে বন্ধ ও চালু করার জন্য সময়সূচী নির্ধারণ করুন।

নোটবুকের স্বাস্থ্যগত অবস্থা নিরীক্ষণ করুন

নিরাপত্তা সংক্রান্ত বিবেচনা

ব্যবহারকারী-পরিচালিত নোটবুক তৈরি করার সময় নিম্নলিখিত নিরাপত্তা সংক্রান্ত বিষয়গুলো বিবেচনা করার পরামর্শ দেওয়া হচ্ছে:

  • নোটবুক অ্যাক্সেসের জন্য 'শুধুমাত্র একক ব্যবহারকারী' বিকল্পটি নির্বাচন করুন। যদি নির্দিষ্ট ব্যবহারকারী ইনস্ট্যান্সটির নির্মাতা না হন, তবে আপনাকে অবশ্যই ইনস্ট্যান্সটির সার্ভিস অ্যাকাউন্টে নির্দিষ্ট ব্যবহারকারীকে সার্ভিস অ্যাকাউন্ট ইউজার রোল (roles/iam.serviceAccountUser) প্রদান করতে হবে।
  • নিম্নলিখিত বিকল্পগুলি নিষ্ক্রিয় করুন:
  • রুট অ্যাক্সেস
  • nbconvert
  • JupyterLab UI থেকে ফাইল ডাউনলোড করা হচ্ছে
  • ব্যবহারকারী-পরিচালিত নোটবুকে বাহ্যিক আইপি ঠিকানা বরাদ্দ করার পরিবর্তে ক্লাউড ন্যাট (Cloud NAT) ব্যবহার করা হবে।
  • নিম্নলিখিত গণনা বিকল্পগুলি নির্বাচন করুন:
  • সুরক্ষিত বুট
  • ভার্চুয়াল বিশ্বস্ত প্ল্যাটফর্ম মডিউল (vTPM)
  • অখণ্ডতা পর্যবেক্ষণ

৪. শুরু করার আগে

টিউটোরিয়ালটি সমর্থন করার জন্য প্রজেক্টটি আপডেট করুন।

এই টিউটোরিয়ালটিতে ক্লাউড শেলে gcloud কনফিগারেশন বাস্তবায়নে সাহায্য করার জন্য $variables ব্যবহার করা হয়েছে।

ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:

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

৫. ভিপিসি সেটআপ

স্বতন্ত্র VPC তৈরি করুন

ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:

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

ব্যবহারকারী-পরিচালিত নোটবুক সাবনেট তৈরি করুন

ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:

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

ক্লাউড রাউটার এবং NAT কনফিগারেশন

টিউটোরিয়ালে নোটবুক সফটওয়্যার প্যাকেজ ডাউনলোডের জন্য ক্লাউড ন্যাট (Cloud NAT) ব্যবহার করা হয়, কারণ ব্যবহারকারী-পরিচালিত নোটবুক ইনস্ট্যান্সটির কোনো বাহ্যিক আইপি অ্যাড্রেস থাকে না। ক্লাউড ন্যাট ইগ্রেস ন্যাট (egress NAT) সুবিধাও প্রদান করে, যার অর্থ হলো ইন্টারনেট হোস্টগুলোকে ব্যবহারকারী-পরিচালিত নোটবুকের সাথে যোগাযোগ শুরু করার অনুমতি দেওয়া হয় না, যা এটিকে আরও সুরক্ষিত করে তোলে।

ক্লাউড শেলের ভিতরে আঞ্চলিক ক্লাউড রাউটারটি তৈরি করুন।

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

ক্লাউড শেলের ভিতরে আঞ্চলিক ক্লাউড ন্যাট গেটওয়ে তৈরি করুন।

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

৬. একটি স্টোরেজ বাকেট তৈরি করুন

স্টোরেজ বাকেট নিরাপদ ফাইল আপলোড/পুনরুদ্ধারের সুবিধা দেয়, এই টিউটোরিয়ালে ক্লাউড স্টোরেজে একটি পোস্ট স্টার্টআপ স্ক্রিপ্ট থাকবে যা ব্যবহারকারী-পরিচালিত নোটবুকগুলিতে জেনারেটিভ এআই প্যাকেজ ইনস্টল করবে।

একটি ক্লাউড স্টোরেজ বাকেট তৈরি করুন এবং BUCKET_NAME-এর জায়গায় আপনার পছন্দের একটি বিশ্বব্যাপী অনন্য নাম দিন।

ক্লাউড শেলের ভিতরে একটি স্বতন্ত্র স্টোরেজ বাকেট তৈরি করুন।

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

ল্যাব চলাকালীন সময়ের জন্য 'BUCKET_NAME' সংরক্ষণ করুন।

BUCKET_NAME=YOUR BUCKET NAME
echo $BUCKET_NAME

৭. একটি পোস্ট স্টার্টআপ স্ক্রিপ্ট তৈরি করুন

জেনারেটিভ এআই প্যাকেজগুলো ডাউনলোড সক্ষম করতে, ক্লাউড শেলে vi বা nano এডিটর ব্যবহার করে একটি পোস্ট-স্টার্টআপ স্ক্রিপ্ট তৈরি করুন এবং এটিকে 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

৮. একটি পরিষেবা অ্যাকাউন্ট তৈরি করুন

ব্যবহারকারী-পরিচালিত নোটবুকের উপর সূক্ষ্ম নিয়ন্ত্রণ প্রদানের জন্য একটি সার্ভিস অ্যাকাউন্ট প্রয়োজন। একবার তৈরি হয়ে গেলে, ব্যবসায়িক প্রয়োজনীয়তার উপর ভিত্তি করে সার্ভিস অ্যাকাউন্টের অনুমতিগুলো পরিবর্তন করা যেতে পারে। এই টিউটোরিয়ালে, সার্ভিস অ্যাকাউন্টটিতে নিম্নলিখিত নিয়মগুলো প্রয়োগ করা হবে:

এগিয়ে যাওয়ার আগে আপনাকে অবশ্যই সার্ভিস অ্যাকাউন্ট এপিআই (Service Account API) হবে।

ক্লাউড শেলের ভিতরে সার্ভিস অ্যাকাউন্টটি তৈরি করুন।

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

ক্লাউড শেলের ভিতরে, স্টোরেজ অবজেক্ট ভিউয়ার রোল সহ সার্ভিস অ্যাকাউন্টটি আপডেট করুন।

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 User রোলটি দিয়ে সার্ভিস অ্যাকাউন্টটি আপডেট করুন।

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

ক্লাউড শেলের ভিতরে, সার্ভিস অ্যাকাউন্টটি তালিকাভুক্ত করুন এবং ব্যবহারকারী-পরিচালিত নোটবুক তৈরি করার সময় যে ইমেল ঠিকানাটি ব্যবহার করা হবে তা নোট করে রাখুন।

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

৯. একটি সুরক্ষিত ব্যবহারকারী-পরিচালিত নোটবুক তৈরি করুন।

ব্যবহারকারী-পরিচালিত নোটবুক ইনস্ট্যান্স হলো একটি ডিপ লার্নিং ভার্চুয়াল মেশিন ইনস্ট্যান্স, যেখানে সর্বশেষ মেশিন লার্নিং এবং ডেটা সায়েন্স লাইব্রেরিগুলো আগে থেকেই ইনস্টল করা থাকে। আপনি ঐচ্ছিকভাবে হার্ডওয়্যার অ্যাক্সিলারেশনের জন্য এনভিডিয়া জিপিইউ অন্তর্ভুক্ত করতে পারেন।

ভোক্তা এপিআই সক্ষম করুন

নোটবুক এপিআই

ব্যবহারকারী-পরিচালিত নোটবুক তৈরি করুন

  1. ওয়ার্কবেঞ্চে যান
  2. ব্যবহারকারী-পরিচালিত নোটবুক নির্বাচন করুন, এবং তারপর নোটবুক তৈরি করুন নির্বাচন করুন। ব্যবহারকারী-পরিচালিত নোটবুক তৈরি করুন পৃষ্ঠাটি খুলবে।
  3. যদি আগে থেকে কোনো নোটবুক স্থাপন করা থাকে, তাহলে ব্যবহারকারী-পরিচালিত নোটবুক → নতুন নোটবুক → কাস্টমাইজ নির্বাচন করুন।
  4. 'Create a user-managed notebook' পেজের 'Details' সেকশনে, আপনার নতুন ইনস্ট্যান্সটির জন্য নিম্নলিখিত তথ্য প্রদান করুন:
  • নাম: আপনার নতুন ইনস্ট্যান্সটির জন্য একটি নাম দিন।
  • অঞ্চল এবং জোন: এই টিউটোরিয়ালে us-central1 অঞ্চল এবং us-central1-a জোন ব্যবহার করা হবে।

চালিয়ে যান নির্বাচন করুন

  1. পরিবেশ বিভাগে নিম্নলিখিত তথ্যগুলো প্রদান করুন:
  • অপারেটিং সিস্টেম: আপনি যে অপারেটিং সিস্টেমটি ব্যবহার করতে চান তা নির্বাচন করুন।
  • আপনি যে পরিবেশটি ব্যবহার করতে চান তা নির্বাচন করুন।
  • সংস্করণ: আপনি যে সংস্করণটি ব্যবহার করতে চান তা নির্বাচন করুন।
  • ইনস্ট্যান্স চালু হওয়ার পর চালানোর জন্য স্ক্রিপ্ট ( ঐচ্ছিক, পূর্বে তৈরি করা জেনারেটিভ এআই স্ক্রিপ্টটি ব্যবহার করুন) ব্রাউজ থেকে একটি স্ক্রিপ্ট নির্বাচন করুন।
  • মেটাডেটা: ঐচ্ছিক: ইনস্ট্যান্সটির জন্য নিজস্ব মেটাডেটা কী প্রদান করুন।

চালিয়ে যান নির্বাচন করুন

  1. মেশিনের ধরন অংশে নিম্নলিখিত তথ্যগুলো প্রদান করুন:
  • মেশিনের ধরন: আপনার নতুন ইনস্ট্যান্সের জন্য সিপিইউ-এর সংখ্যা এবং র‍্যামের পরিমাণ নির্বাচন করুন। আপনার নির্বাচিত প্রতিটি মেশিনের ধরনের জন্য ভার্টেক্স এআই ওয়ার্কবেঞ্চ মাসিক খরচের আনুমানিক হিসাব প্রদান করে।
  • জিপিইউ-এর ধরন: আপনার নতুন ইনস্ট্যান্সের জন্য জিপিইউ-এর ধরন এবং জিপিইউ-এর সংখ্যা নির্বাচন করুন। বিভিন্ন জিপিইউ সম্পর্কে তথ্যের জন্য, Compute Engine-এ জিপিইউ দেখুন।
  • “আমার জন্য স্বয়ংক্রিয়ভাবে এনভিডিয়া জিপিইউ ড্রাইভার ইনস্টল করুন” চেকবক্সটি নির্বাচন করুন।

শিল্ডেড ভিএম

  • সিকিউর বুট চালু করুন
  • vTPM চালু করুন
  • ইন্টিগ্রিটি মনিটরিং চালু করুন

চালিয়ে যান নির্বাচন করুন

  1. ডিস্ক বিভাগে নিম্নলিখিত তথ্যগুলো প্রদান করুন:
  • ডিস্ক: ঐচ্ছিক: ডিফল্ট বুট বা ডেটা ডিস্ক সেটিংস পরিবর্তন করতে, আপনার পছন্দের বুট ডিস্কের ধরন, বুট ডিস্কের আকার (জিবি-তে), ডেটা ডিস্কের ধরন এবং ডেটা ডিস্কের আকার (জিবি-তে) নির্বাচন করুন। ডিস্কের প্রকারভেদ সম্পর্কে আরও তথ্যের জন্য, স্টোরেজ অপশন দেখুন।
  • ট্র্যাশে মুছুন: ঐচ্ছিক: অপারেটিং সিস্টেমের ডিফল্ট ট্র্যাশ আচরণ ব্যবহার করতে এই চেকবক্সটি নির্বাচন করুন। আপনি যদি ডিফল্ট ট্র্যাশ আচরণ ব্যবহার করেন, তাহলে JupyterLab ইউজার ইন্টারফেস ব্যবহার করে মুছে ফেলা ফাইলগুলি পুনরুদ্ধারযোগ্য, কিন্তু এই মুছে ফেলা ফাইলগুলি ডিস্কের জায়গা ব্যবহার করে।
  • ব্যাকআপ: ঐচ্ছিক: আপনার ইনস্ট্যান্সের ডেটা ডিস্কের সাথে একটি ক্লাউড স্টোরেজ লোকেশন সিঙ্ক করতে, 'ব্রাউজ' নির্বাচন করুন এবং ক্লাউড স্টোরেজ লোকেশনটি নির্দিষ্ট করুন। স্টোরেজের খরচ সম্পর্কে জানতে, 'ক্লাউড স্টোরেজ প্রাইসিং' দেখুন।
  • এনক্রিপশন: গুগল-পরিচালিত এনক্রিপশন কী

চালিয়ে যান নির্বাচন করুন

  1. নেটওয়ার্কিং বিভাগে নিম্নলিখিত তথ্যগুলো প্রদান করুন:
  • নেটওয়ার্কিং: এই প্রোজেক্টের নেটওয়ার্ক অথবা আমার সাথে শেয়ার করা নেটওয়ার্ক-এর মধ্যে যেকোনো একটি নির্বাচন করুন। আপনি যদি হোস্ট প্রোজেক্টে একটি শেয়ার্ড ভিপিসি (Shared VPC ) ব্যবহার করেন, তবে আপনাকে অবশ্যই সার্ভিস প্রোজেক্ট থেকে নোটবুকস সার্ভিস এজেন্টকে কম্পিউট নেটওয়ার্ক ইউজার রোল (roles/compute.networkUser) প্রদান করতে হবে।
  • নেটওয়ার্ক ফিল্ডে, আপনার পছন্দের নেটওয়ার্কটি নির্বাচন করুন। এই টিউটোরিয়ালে securevertex-vpc নেটওয়ার্কটি ব্যবহার করা হয়েছে। আপনি একটি VPC নেটওয়ার্কও নির্বাচন করতে পারেন, তবে শর্ত হলো নেটওয়ার্কটিতে প্রাইভেট গুগল অ্যাক্সেস সক্রিয় থাকতে হবে অথবা এটি ইন্টারনেট অ্যাক্সেস করতে সক্ষম হতে হবে। সাবনেটওয়ার্ক ফিল্ডে, আপনার পছন্দের সাবনেটওয়ার্কটি নির্বাচন করুন; এই টিউটোরিয়ালে securevertex-subnet-a সাবনেটওয়ার্কটি ব্যবহার করা হয়েছে।
  • বাহ্যিক আইপি ঠিকানা বরাদ্দ করার বিকল্পটি বাতিল করুন।
  • প্রক্সি অ্যাক্সেসের অনুমতি নির্বাচন করুন

চালিয়ে যান নির্বাচন করুন

81bb7dbe31fbf587.png

  1. IAM এবং নিরাপত্তা বিভাগে নিম্নলিখিত তথ্যগুলো প্রদান করুন:
  • ‘Single user’ নির্বাচন করুন এবং তারপরে, ‘User email’ ফিল্ডে, যে ইউজার অ্যাকাউন্টটিকে আপনি অ্যাক্সেস দিতে চান সেটি লিখুন। যদি নির্দিষ্ট ইউজারটি ইনস্ট্যান্সটির নির্মাতা না হন, তবে আপনাকে অবশ্যই ইনস্ট্যান্সটির সার্ভিস অ্যাকাউন্টে নির্দিষ্ট ইউজারকে ‘ Service Account User’ রোলটি (roles/iam.serviceAccountUser) প্রদান করতে হবে।
  • গুগল ক্লাউড এপিআই কল করার জন্য ভিএম-এ ডিফল্ট কম্পিউট ইঞ্জিন পরিষেবা অ্যাকাউন্ট ব্যবহার করার বিকল্পটি অনির্বাচিত করুন।
  • নতুন তৈরি করা সার্ভিস অ্যাকাউন্টের ইমেল ঠিকানাটি লিখুন, উদাহরণ: user-managed-notebook-sa@my-project-id.iam.gserviceaccount.com

নিরাপত্তা বিকল্প

  • ইনস্ট্যান্সটিতে রুট অ্যাক্সেস সক্ষম করার নির্বাচনটি বাতিল করুন।
  • nbconvert সক্ষম করা থেকে নির্বাচন বাতিল করুন।
  • JupyterLab UI থেকে ফাইল ডাউনলোড সক্ষম করার বিকল্পটি অনির্বাচিত করুন।
  • টার্মিনাল সক্রিয় করুন (প্রোডাকশন এনভায়রনমেন্টের জন্য অনির্বাচিত করুন)

চালিয়ে যান নির্বাচন করুন

e19f3cd05a2c1b7f.png

  1. সিস্টেম স্বাস্থ্য বিভাগে নিম্নলিখিত তথ্য প্রদান করুন।

পরিবেশের উন্নয়ন এবং সিস্টেমের স্বাস্থ্য

  • "Enable environment auto-upgrade" চেকবক্সটি নির্বাচন করুন।
  • আপনার নোটবুকটি সাপ্তাহিক নাকি মাসিক ভিত্তিতে আপগ্রেড করবেন, তা বেছে নিন।

সিস্টেম স্বাস্থ্য ও রিপোর্টিং-এ, নিম্নলিখিত চেকবক্সগুলি নির্বাচন করুন বা অনির্বাচিত করুন:

  • সিস্টেম স্বাস্থ্য প্রতিবেদন সক্রিয় করুন
  • ক্লাউড মনিটরিং-এ কাস্টম মেট্রিক্স রিপোর্ট করুন
  • ক্লাউড মনিটরিং এজেন্ট ইনস্টল করুন

তৈরি নির্বাচন করুন।

১০. বৈধতা যাচাই

ভার্টেক্স এআই ওয়ার্কবেঞ্চ আপনার নির্দিষ্ট করা প্রোপার্টিগুলোর উপর ভিত্তি করে একটি ইউজার-ম্যানেজড নোটবুক ইনস্ট্যান্স তৈরি করে এবং স্বয়ংক্রিয়ভাবে ইনস্ট্যান্সটি চালু করে। ইনস্ট্যান্সটি ব্যবহারের জন্য প্রস্তুত হলে, ভার্টেক্স এআই ওয়ার্কবেঞ্চ একটি ওপেন জুপিটারল্যাব লিঙ্ক সক্রিয় করে, যা ব্যবহারকারীকে নোটবুকটিতে অ্যাক্সেস দেয়।

১১. পর্যবেক্ষণযোগ্যতা

মনিটরিং-এর মাধ্যমে সিস্টেম এবং অ্যাপ্লিকেশন মেট্রিক্স নিরীক্ষণ করুন।

যেসব ইউজার-ম্যানেজড নোটবুক ইনস্ট্যান্সে মনিটরিং ইনস্টল করা আছে, সেগুলোর ক্ষেত্রে আপনি গুগল ক্লাউড কনসোল ব্যবহার করে আপনার সিস্টেম ও অ্যাপ্লিকেশন মেট্রিক্স নিরীক্ষণ করতে পারেন:

  1. গুগল ক্লাউড কনসোলে, ব্যবহারকারী-পরিচালিত নোটবুক পৃষ্ঠায় যান।
  2. যে ইনস্ট্যান্সটির সিস্টেম ও অ্যাপ্লিকেশন মেট্রিক্স দেখতে চান, সেটির নামে ক্লিক করুন।
  3. নোটবুকের বিবরণ পৃষ্ঠায়, মনিটরিং ট্যাবে ক্লিক করুন। আপনার ইনস্ট্যান্সের সিস্টেম এবং অ্যাপ্লিকেশন মেট্রিকগুলো পর্যালোচনা করুন।

১২. একটি নোটবুক সময়সূচী তৈরি করুন

ইনস্ট্যান্স শিডিউল আপনাকে ভার্চুয়াল মেশিন (VM) ইনস্ট্যান্স স্বয়ংক্রিয়ভাবে চালু এবং বন্ধ করতে দেয়। আপনার VM ইনস্ট্যান্সের ডেপ্লয়মেন্ট স্বয়ংক্রিয় করতে ইনস্ট্যান্স শিডিউল ব্যবহার করলে তা আপনাকে খরচ কমাতে এবং VM ইনস্ট্যান্সগুলোকে আরও দক্ষতার সাথে পরিচালনা করতে সাহায্য করতে পারে। আপনি পুনরাবৃত্তিমূলক এবং এককালীন উভয় ধরনের ওয়ার্কলোডের জন্যই ইনস্ট্যান্স শিডিউল ব্যবহার করতে পারেন। উদাহরণস্বরূপ, শুধুমাত্র কর্মঘণ্টার মধ্যে VM ইনস্ট্যান্স চালানোর জন্য অথবা কোনো এককালীন ইভেন্টের জন্য সক্ষমতা সরবরাহ করতে ইনস্ট্যান্স শিডিউল ব্যবহার করুন।

ইনস্ট্যান্স শিডিউল ব্যবহার করতে, স্টার্ট এবং স্টপ আচরণ বিস্তারিতভাবে উল্লেখ করে একটি রিসোর্স পলিসি তৈরি করুন এবং তারপর সেই পলিসিটি এক বা একাধিক ভিএম ইনস্ট্যান্সের সাথে সংযুক্ত করুন।

এই টিউটোরিয়ালটি আপনাকে দেখাবে কীভাবে একটি ইনস্ট্যান্স শিডিউল তৈরি করতে হয়, যা আপনার নোটবুকটিকে সকাল ৭টায় চালু করবে এবং সন্ধ্যা ৬টায় বন্ধ করে দেবে।

ইনস্ট্যান্স শিডিউল তৈরি করার জন্য আপনার compute.instances.start এবং compute.instances.stop পারমিশন প্রয়োজন হবে, এজন্য অ্যাডমিনিস্ট্রেটর কর্তৃক আপনাকে প্রদত্ত একটি কাস্টম রোল তৈরি করার পরামর্শ দেওয়া হয়।

একবার তৈরি হয়ে গেলে, কাস্টম রোলটি আপনার প্রোজেক্টের ডিফল্ট Compute Engine সার্ভিস অ্যাকাউন্টে বরাদ্দ করা হবে, যা ইনস্ট্যান্স শিডিউলকে আপনার নোটবুকটি চালু এবং বন্ধ করার অনুমতি দেবে।

একটি কাস্টম ভূমিকা তৈরি করুন

ক্লাউড শেলের ভিতরে, VmScheduler নামে একটি কাস্টম রোল তৈরি করুন এবং প্রয়োজনীয় অনুমতিগুলো অন্তর্ভুক্ত করুন।

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

ক্লাউড শেল থেকে কাস্টম রোলটি বর্ণনা করুন।

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

ক্লাউড শেলে বর্তমান প্রজেক্ট নম্বরটি শনাক্ত করুন।

gcloud projects list --filter=$projectid

ক্লাউড শেলে প্রজেক্ট নম্বরটি একটি ভেরিয়েবল হিসেবে সংরক্ষণ করুন।

project_number=your_project_number
echo $project_number

ক্লাউড শেলে, ডিফল্ট কম্পিউট সার্ভিস অ্যাকাউন্টটিকে VM_Scheduler কাস্টম রোল দিয়ে আপডেট করুন।

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

ইনস্ট্যান্স শিডিউল তৈরি করুন

ক্লাউড শেলে স্টার্ট এবং স্টপ শিডিউল তৈরি করুন।

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

ক্লাউড শেলে আপনার নোটবুকের নামটি সংরক্ষণ করুন।

gcloud compute instances list
notebook_vm=your_notebookvm_name
echo $notebook_vm

আপনি একটি ইনস্ট্যান্স শিডিউলকে এমন যেকোনো বিদ্যমান ভিএম ইনস্ট্যান্সের সাথে সংযুক্ত করতে পারেন, যা ইনস্ট্যান্স শিডিউলটির মতোই একই অঞ্চলে অবস্থিত।

ক্লাউড শেলে, আপনার নোটবুকের সাথে শিডিউলটি সংযুক্ত করুন।

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

১৩. পরিষ্কার করা

কনসোল থেকে ব্যবহারকারী-পরিচালিত নোটবুকটি মুছতে, Vertex AI → Workbench-এ যান, নোটবুকটি নির্বাচন করে মুছে ফেলুন।

ক্লাউড শেল থেকে VPC কম্পোনেন্টগুলো ডিলিট করুন।

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 

১৪. অভিনন্দন

চমৎকার! আপনি পরিচালিত নোটবুকের জন্য নিরাপত্তা জোরদার করার সর্বোত্তম পদ্ধতি ব্যবহার করে একটি কাস্টম স্ট্যান্ডঅ্যালোন ভিপিসি তৈরি করার মাধ্যমে এবং ব্যয় অপ্টিমাইজ করার জন্য একটি ইনস্ট্যান্স শিডিউল বাস্তবায়ন করে সফলভাবে একটি সুরক্ষিত ব্যবহারকারী-পরিচালিত নোটবুক কনফিগার ও যাচাই করেছেন।

এরপর কী?

এই টিউটোরিয়ালগুলো দেখে নিন...

আরও পড়ুন ও ভিডিও

রেফারেন্স নথি