ভার্টেক্স এআই-এর মাধ্যমে নিরাপদ অনলাইন ভবিষ্যদ্বাণীর জন্য TLS ব্যবহার করা

১. ভূমিকা

ভার্টেক্স এআই মডেল গার্ডেন থেকে ডেপ্লয় করা মডেলগুলির জন্য অত্যন্ত সুরক্ষিত ও ব্যক্তিগত অ্যাক্সেস প্রতিষ্ঠা করতে প্রাইভেট সার্ভিস কানেক্ট (PSC) ব্যবহার করুন। একটি পাবলিক এন্ডপয়েন্ট উন্মুক্ত করার পরিবর্তে, এই পদ্ধতিটি আপনাকে আপনার মডেলটিকে একটি ব্যক্তিগত ভার্টেক্স এআই এন্ডপয়েন্টে ডেপ্লয় করার সুযোগ দেয়, যা শুধুমাত্র আপনার ভার্চুয়াল প্রাইভেট ক্লাউড (VPC)-এর মধ্যেই অ্যাক্সেসযোগ্য।

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

গুরুত্বপূর্ণভাবে, আপনার VPC এবং প্রাইভেট Vertex AI এন্ডপয়েন্টের মধ্যেকার সমস্ত নেটওয়ার্ক ট্র্যাফিক গুগলের নিজস্ব নেটওয়ার্কেই থাকে, যা এটিকে পাবলিক ইন্টারনেট থেকে সম্পূর্ণ বিচ্ছিন্ন রাখে। এছাড়াও, এই প্রাইভেট সংযোগটি TLS এনক্রিপশন ব্যবহার করে ট্রানজিটের সময় সুরক্ষিত থাকে। এই এন্ড-টু-এন্ড এনক্রিপশন আপনার প্রেডিকশন রিকোয়েস্ট এবং মডেল রেসপন্সকে সুরক্ষিত রাখে, যা ডেটার গোপনীয়তা এবং অখণ্ডতা বৃদ্ধি করে। PSC-এর মাধ্যমে নেটওয়ার্ক আইসোলেশন এবং TLS এনক্রিপশনের সমন্বয় আপনার অনলাইন প্রেডিকশনের জন্য একটি অত্যন্ত সুরক্ষিত পরিবেশ প্রদান করে, যা ল্যাটেন্সি কমায় এবং আপনার নিরাপত্তা ব্যবস্থাকে উল্লেখযোগ্যভাবে শক্তিশালী করে।

8bdac2f2d3dd88c9.png

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

এই টিউটোরিয়ালে, আপনি মডেল গার্ডেন থেকে জেমা ৩ (Gemma 3) ডাউনলোড করবেন, যা ভার্টেক্স এআই অনলাইন ইনফারেন্স (Vertex AI Online Inference)-এ একটি প্রাইভেট এন্ডপয়েন্ট হিসেবে হোস্ট করা আছে এবং প্রাইভেট সার্ভিস কানেক্ট (Private Service Connect)-এর মাধ্যমে অ্যাক্সেসযোগ্য। আপনার এন্ড-টু-এন্ড সেটআপে অন্তর্ভুক্ত থাকবে:

  1. মডেল গার্ডেন মডেল: আপনি ভার্টেক্স এআই মডেল গার্ডেন থেকে জেমা ৩ নির্বাচন করবেন এবং এটিকে একটি প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্টে স্থাপন করবেন।
  2. প্রাইভেট সার্ভিস কানেক্ট: আপনি আপনার ভার্চুয়াল প্রাইভেট ক্লাউড (VPC)-এ একটি কনজিউমার এন্ডপয়েন্ট কনফিগার করবেন, যা আপনার নিজস্ব নেটওয়ার্কের মধ্যে একটি অভ্যন্তরীণ আইপি অ্যাড্রেস ব্যবহার করবে।
  3. ভার্টেক্স এআই-এর সাথে সুরক্ষিত সংযোগ: পিএসসি এন্ডপয়েন্টটি আপনার প্রাইভেট মডেল ডেপ্লয়মেন্টের জন্য ভার্টেক্স এআই দ্বারা স্বয়ংক্রিয়ভাবে তৈরি সার্ভিস অ্যাটাচমেন্টকে টার্গেট করবে। এটি একটি প্রাইভেট সংযোগ স্থাপন করে, যা নিশ্চিত করে যে আপনার ভিপিসি এবং মডেল সার্ভিং এন্ডপয়েন্টের মধ্যেকার ট্র্যাফিক পাবলিক ইন্টারনেটের মধ্য দিয়ে যায় না।
  4. আপনার VPC-এর মধ্যে ক্লায়েন্ট কনফিগারেশন: আপনি PSC এন্ডপয়েন্টের অভ্যন্তরীণ IP অ্যাড্রেস ব্যবহার করে ডেপ্লয় করা মডেলে ইনফারেন্স রিকোয়েস্ট পাঠানোর জন্য আপনার VPC-এর মধ্যে একটি ক্লায়েন্ট (যেমন, Compute Engine VM) সেট আপ করবেন।
  5. TLS এনক্রিপশন যাচাই করুন: আপনার VPC-এর মধ্যে থাকা ক্লায়েন্ট VM থেকে, আপনি PSC এন্ডপয়েন্টের অভ্যন্তরীণ IP অ্যাড্রেসে সংযোগ করার জন্য স্ট্যান্ডার্ড টুলস (openssl s_client) ব্যবহার করবেন। এই ধাপটি আপনাকে হ্যান্ডশেক বিবরণ এবং উপস্থাপিত সার্ভার সার্টিফিকেট পরীক্ষা করে নিশ্চিত করতে সাহায্য করবে যে Vertex AI পরিষেবার সাথে যোগাযোগের চ্যানেলটি প্রকৃতপক্ষে TLS ব্যবহার করে এনক্রিপ্ট করা হয়েছে।

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

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

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

বিশেষভাবে, আপনি শিখবেন:

  1. ভার্টেক্স এআই-এর জন্য পিএসসি বোঝা: কীভাবে পিএসসি ব্যক্তিগত এবং সুরক্ষিত কনজিউমার-টু-প্রডিউসার সংযোগ সক্ষম করে। আপনার ভিপিসি অভ্যন্তরীণ আইপি অ্যাড্রেস ব্যবহার করে ডেপ্লয় করা মডেল গার্ডেন মডেলটি অ্যাক্সেস করতে পারে।
  2. প্রাইভেট অ্যাক্সেস সহ একটি মডেল স্থাপন: আপনার মডেল গার্ডেন মডেলের জন্য কীভাবে একটি ভার্টেক্স এআই এন্ডপয়েন্ট কনফিগার করে সেটিকে PSC ব্যবহার করার মাধ্যমে একটি প্রাইভেট এন্ডপয়েন্টে পরিণত করবেন।
  3. সার্ভিস অ্যাটাচমেন্টের ভূমিকা: যখন আপনি একটি প্রাইভেট ভার্টেক্স এআই এন্ডপয়েন্টে কোনো মডেল ডেপ্লয় করেন, তখন গুগল ক্লাউড স্বয়ংক্রিয়ভাবে একটি গুগল-পরিচালিত টেন্যান্ট প্রোজেক্টে একটি সার্ভিস অ্যাটাচমেন্ট তৈরি করে। এই সার্ভিস অ্যাটাচমেন্টটি মডেল সার্ভিং সার্ভিসটিকে কনজিউমার নেটওয়ার্কের কাছে উন্মুক্ত করে।
  4. আপনার VPC-তে একটি PSC এন্ডপয়েন্ট তৈরি করা:
  • আপনার ডেপ্লয় করা Vertex AI Endpoint-এর বিবরণ থেকে অনন্য Service Attachment URI কীভাবে পাবেন।
  • আপনার VPC-তে নির্বাচিত সাবনেটের মধ্যে কীভাবে একটি অভ্যন্তরীণ আইপি অ্যাড্রেস রিজার্ভ করবেন।
  • আপনার VPC-তে কীভাবে একটি ফরওয়ার্ডিং রুল তৈরি করবেন যা PSC এন্ডপয়েন্ট হিসেবে কাজ করে এবং Vertex AI সার্ভিস অ্যাটাচমেন্টকে টার্গেট করে। এই এন্ডপয়েন্টটি সংরক্ষিত অভ্যন্তরীণ IP-এর মাধ্যমে মডেলটিকে অ্যাক্সেসযোগ্য করে তোলে।
  1. ব্যক্তিগত সংযোগ স্থাপন: আপনার VPC-তে থাকা PSC এন্ডপয়েন্ট কীভাবে সার্ভিস অ্যাটাচমেন্টের সাথে সংযুক্ত হয়ে আপনার নেটওয়ার্ককে Vertex AI পরিষেবার সাথে নিরাপদে যুক্ত করে।
  2. ব্যক্তিগতভাবে ইনফারেন্স অনুরোধ পাঠানো: আপনার VPC-এর মধ্যে থাকা রিসোর্স (যেমন Compute Engine VM) থেকে PSC Endpoint-এর অভ্যন্তরীণ IP অ্যাড্রেসে কীভাবে প্রেডিকশন অনুরোধ পাঠাবেন।
  3. যাচাইকরণ: প্রাইভেট কানেকশনের মাধ্যমে আপনার VPC থেকে ডেপ্লয় করা মডেল গার্ডেন মডেলে আপনি সফলভাবে ইনফারেন্স রিকোয়েস্ট পাঠাতে পারছেন কি না, তা পরীক্ষা ও নিশ্চিত করার ধাপসমূহ।
  4. TLS এনক্রিপশন যাচাইকরণ: আপনার VPC ক্লায়েন্টের (যেমন, একটি Compute Engine VM) ভেতর থেকে টুল ব্যবহার করে কীভাবে PSC Endpoint-এর অভ্যন্তরীণ IP অ্যাড্রেসে TLS-এর মাধ্যমে সংযোগ স্থাপন করবেন।

এটি সম্পন্ন করার মাধ্যমে, আপনি মডেল গার্ডেন থেকে এমন মডেল হোস্ট করতে পারবেন যেগুলো শুধুমাত্র আপনার ব্যক্তিগত নেটওয়ার্ক পরিকাঠামো থেকেই অ্যাক্সেসযোগ্য হবে।

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

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

আইএএম অনুমতি

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

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

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

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

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

এপিআই সক্ষমকরণ

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

gcloud services enable "compute.googleapis.com"
gcloud services enable "aiplatform.googleapis.com"
gcloud services enable "serviceusage.googleapis.com"
gcloud services enable dns.googleapis.com

৩. মডেল স্থাপন করুন

মডেল গার্ডেন থেকে আপনার মডেলটি স্থাপন করতে নিচের ধাপগুলো অনুসরণ করুন।

গুগল ক্লাউড কনসোলে, মডেল গার্ডেন-এ যান এবং জেমা ৩ (Gemma 3) অনুসন্ধান করে নির্বাচন করুন।

47c724030a846b25.png

Deploy model-এ ক্লিক করুন এবং Vertex AI নির্বাচন করুন।

a9a9f4aef7e52356.png

Deployment Settings সেকশনের নীচে Edit Settings নির্বাচন করুন।

d5b449d2893ddf2f.png

Deploy on Vertex AI প্যানে, Endpoint Access-কে Private Service Connect হিসেবে কনফিগার করা আছে কিনা তা নিশ্চিত করুন, তারপর আপনার প্রজেক্টটি নির্বাচন করুন।

c679aa90c3638e31.png

অন্যান্য বিকল্পগুলির জন্য সমস্ত ডিফল্ট অপরিবর্তিত রাখুন, তারপর নীচে থাকা 'Deploy' নির্বাচন করুন এবং ডেপ্লয়মেন্টের অবস্থা জানতে আপনার নোটিফিকেশনগুলি দেখুন।

d5eab71cbb43e2fe.png

Garden মডেলে, us-central1 অঞ্চলটি নির্বাচন করুন, যা Gemma 3 মডেল এবং এন্ডপয়েন্ট সরবরাহ করে। মডেল স্থাপন করতে প্রায় ৫ মিনিট সময় লাগে।

fce9d5c9152255f1.png

৩০ মিনিটের মধ্যে কাজটি সম্পন্ন হলে এন্ডপয়েন্টটি "সক্রিয়" অবস্থায় পরিবর্তিত হবে।

d6cc741415213e1a.png

এন্ডপয়েন্টটি নির্বাচন করে এন্ডপয়েন্ট আইডিটি সংগ্রহ করুন এবং লিখে রাখুন।

87d1756fa534619d.png

এন্ডপয়েন্ট আইডি পেতে এবং ভেরিয়েবলটি আপডেট করতে এন্ডপয়েন্টটি নির্বাচন করুন। দেখানো উদাহরণে, আইডিটি হলো 1934769929467199488।

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

endpointID=<Enter_Your_Endpoint_ID>
region=us-central1

প্রাইভেট সার্ভিস কানেক্ট সার্ভিস অ্যাটাচমেন্ট ইউআরআই (Private Service Connect Service Attachment URI) পেতে নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করুন। একটি পিএসসি কনজিউমার এন্ডপয়েন্ট (PSC consumer endpoint) স্থাপন করার সময় কনজিউমার এই ইউআরআই স্ট্রিংটি ব্যবহার করে।

ক্লাউড শেলের ভিতরে, Endpoint ID/Region ভেরিয়েবলটি ব্যবহার করুন, তারপর নিম্নলিখিত কমান্ডটি দিন:

gcloud ai endpoints describe $endpointID --region=$region  | grep -i serviceAttachment:

নীচে একটি উদাহরণ দেওয়া হল:

user@cloudshell:$ gcloud ai endpoints describe 1934769929467199488 --region=us-central1 | grep -i serviceAttachment:

Using endpoint [https://us-central1-aiplatform.googleapis.com/]
    serviceAttachment: projects/o9457b320a852208e-tp/regions/us-central1/serviceAttachments/gkedpm-52065579567eaf39bfe24f25f7981d

serviceAttachment-এর পরের বিষয়বস্তুগুলো "Service_attachment" নামের একটি ভেরিয়েবলে কপি করুন, পরবর্তীতে PSC কানেকশন তৈরি করার সময় আপনার এটি প্রয়োজন হবে।

user@cloudshell:$ Service_attachment=<Enter_Your_ServiceAttachment>

৪. গ্রাহক সেটআপ

কনজিউমার ভিপিসি তৈরি করুন

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

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

কনজিউমার ভিএম সাবনেট তৈরি করুন

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

gcloud compute networks subnets create consumer-vm-subnet --project=$projectid --range=192.168.1.0/24 --network=consumer-vpc --region=$region --enable-private-ip-google-access

PSC এন্ডপয়েন্ট সাবনেট তৈরি করতে, ক্লাউড শেলের ভিতরে নিম্নলিখিতগুলি সম্পাদন করুন:

gcloud compute networks subnets create pscendpoint-subnet --project=$projectid --range=10.10.10.0/28 --network=consumer-vpc --region=$region

৫. আইএপি সক্রিয় করুন

আপনার VM ইনস্ট্যান্সগুলিতে IAP-কে সংযোগ করার অনুমতি দিতে, এমন একটি ফায়ারওয়াল নিয়ম তৈরি করুন যা:

  • এটি সেই সমস্ত VM ইনস্ট্যান্সের ক্ষেত্রে প্রযোজ্য, যেগুলোকে আপনি IAP ব্যবহার করে অ্যাক্সেসযোগ্য করতে চান।
  • 35.235.240.0/20 আইপি রেঞ্জ থেকে ইনগ্রেস ট্র্যাফিকের অনুমতি দেয়। এই রেঞ্জে সেই সমস্ত আইপি অ্যাড্রেস রয়েছে যা IAP টিসিপি ফরওয়ার্ডিংয়ের জন্য ব্যবহার করে।

ক্লাউড শেলের ভিতরে IAP ফায়ারওয়াল নিয়মটি তৈরি করুন।

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

৬. কনজিউমার ভিএম ইনস্ট্যান্স তৈরি করুন

ক্লাউড শেলের ভিতরে, কনজিউমার ভিএম ইনস্ট্যান্স, consumer-vm তৈরি করুন।

gcloud compute instances create consumer-vm \
    --project=$projectid \
    --machine-type=e2-micro \
    --image-family debian-11 \
    --no-address \
    --shielded-secure-boot \
    --image-project debian-cloud \
    --zone us-central1-a \
    --subnet=consumer-vm-subnet 

৭. ব্যক্তিগত সার্ভিস কানেক্ট এন্ডপয়েন্ট

কনজিউমার তাদের ভিপিসি-র মধ্যে একটি অভ্যন্তরীণ আইপি অ্যাড্রেস ব্যবহার করে একটি কনজিউমার এন্ডপয়েন্ট (ফরওয়ার্ডিং রুল) তৈরি করে। এই পিএসসি এন্ডপয়েন্টটি প্রডিউসারের সার্ভিস অ্যাটাচমেন্টকে টার্গেট করে। কনজিউমার ভিপিসি বা হাইব্রিড নেটওয়ার্কের ক্লায়েন্টরা প্রডিউসারের সার্ভিসে পৌঁছানোর জন্য এই অভ্যন্তরীণ আইপি অ্যাড্রেসে ট্র্যাফিক পাঠাতে পারে।

কনজিউমার এন্ডপয়েন্টের জন্য একটি আইপি অ্যাড্রেস রিজার্ভ করুন।

ক্লাউড শেলের ভিতরে ফরওয়ার্ডিং নিয়মটি তৈরি করুন।

gcloud compute addresses create psc-address \
    --project=$projectid \
    --region=$region \
    --subnet=pscendpoint-subnet \
    --addresses=10.10.10.6

আইপি অ্যাড্রেসটি সংরক্ষিত আছে কিনা তা যাচাই করুন।

ক্লাউড শেলের ভিতরে, সংরক্ষিত আইপি অ্যাড্রেসটি তালিকাভুক্ত করুন।

gcloud compute addresses list 

আপনি দেখবেন যে 10.10.10.6 আইপি অ্যাড্রেসটি সংরক্ষিত আছে।

3029e97ddc9c192d.png

পূর্ববর্তী ধাপের 'মডেল স্থাপন' বিভাগে আপনার সংগ্রহ করা সার্ভিস অ্যাটাচমেন্ট ইউআরআই, টার্গেট-সার্ভিস-অ্যাটাচমেন্ট, উল্লেখ করে কনজিউমার এন্ডপয়েন্টটি তৈরি করুন।

ক্লাউড শেলের ভিতরে নেটওয়ার্ক সংযুক্তিটি বর্ণনা করুন।

 gcloud compute forwarding-rules create psc-consumer-ep \
    --network=consumer-vpc \
    --address=psc-address \
    --region=$region \
    --target-service-attachment=$Service_attachment \
    --project=$projectid

যাচাই করুন যে পরিষেবা সংযুক্তিটি এন্ডপয়েন্টটি গ্রহণ করে।

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

gcloud compute forwarding-rules describe psc-consumer-ep \
    --project=$projectid \
    --region=$region

প্রতিক্রিয়ায়, pscConnectionStatus ফিল্ডে একটি "ACCEPTED" স্ট্যাটাস দেখা যাচ্ছে কিনা তা যাচাই করুন।

e1debc2bdb6a1a44.png

৮. TLS-এর মাধ্যমে Vertex HTTPS এন্ডপয়েন্টে সংযোগ করার জন্য সেট আপ করুন।

একটি ডিএনএস প্রাইভেট জোন তৈরি করুন, যাতে আইপি অ্যাড্রেস উল্লেখ করার প্রয়োজন ছাড়াই অনলাইন ইনফারেন্স পেতে পারেন।

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

DNS_NAME_SUFFIX="prediction.p.vertexai.goog."  

gcloud dns managed-zones create vertex \
--project=$projectid \
--dns-name=$DNS_NAME_SUFFIX \
--networks=consumer-vpc \
--visibility=private \
--description="A DNS zone for Vertex AI endpoints using Private Service Connect."

ডোমেইনটিকে পিএসসি আইপি অ্যাড্রেসের সাথে ম্যাপ করার জন্য একটি A রেকর্ড তৈরি করুন।

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

gcloud dns record-sets create "*.prediction.p.vertexai.goog." \
  --zone=vertex \
  --type=A \
  --ttl=300 \
  --rrdatas="10.10.10.6"

NAT ইনস্ট্যান্সের পূর্বশর্ত হিসেবে একটি ক্লাউড রাউটার ইনস্ট্যান্স তৈরি করুন।

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

gcloud compute routers create consumer-cr \
--region=$region --network=consumer-vpc \
--asn=65001 

openssl এবং dnsutils প্যাকেজগুলো ডাউনলোড করতে ব্যবহৃত ক্লাউড NAT ইনস্ট্যান্স তৈরি করুন।

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

gcloud compute routers nats create consumer-nat-gw \
  --router=consumer-cr \
  --region=$region \
  --nat-all-subnet-ip-ranges \
  --auto-allocate-nat-external-ips 

ssh (কনসোল)-এর মাধ্যমে কনজিউমার ভিএম-এ সংযোগ করুন। ক্লাউড শেল-এর ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:

gcloud compute ssh --zone "us-central1-a" "consumer-vm" --tunnel-through-iap --project "$projectid"

নিচের প্যাকেজগুলো আপডেট করুন, open-ssl এবং DNS ইউটিলিটিগুলো ইনস্টল করুন।

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

sudo apt update 
sudo apt install openssl
sudo apt-get install -y dnsutils

পরবর্তী ধাপে আপনার প্রজেক্ট নম্বরটি প্রয়োজন হবে। আপনার প্রজেক্ট নম্বরটি পেতে, ক্লাউড শেল থেকে নিম্নলিখিত কমান্ডটি চালান এবং এটিকে একটি ভেরিয়েবলে রাখুন:

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

gcloud projects describe $projectid --format="value(projectNumber)"
Example Output: 549538389202
projectNumber=549538389202

পরবর্তী কয়েকটি ধাপে আপনার আরও কয়েকটি ভেরিয়েবল সংজ্ঞায়িত করার প্রয়োজন হবে। প্রথমে ক্লাউড শেল থেকে এই ভেরিয়েবলগুলো ( ENDPOINT_ID , REGION , VERTEX_AI_PROJECT_ID ) সংগ্রহ করে নিন এবং তারপর ভিএম-এ (VM) একই ভেরিয়েবলগুলো তৈরি করুন।

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

echo $projectNumber
echo $projectid 
echo $region
echo $endpointID

নিচে আউটপুটের উদাহরণ দেওয়া হলো:

549538389202
test4-473419
Us-central1
1934769929467199s

আপনার কনজিউমার ভিএম-এ এই ভেরিয়েবলগুলো যোগ করুন - উদাহরণ নিচে দেওয়া হলো:

projectNumber=1934769929467199488  
projectid=test4-473419
region=us-central1
endpointID=1934769929467199488

আপনার ভিএম-এর হোম ডিরেক্টরি থেকে নিম্নলিখিত কমান্ডটি চালিয়ে ভার্টেক্স এআই সার্টিফিকেটটি ডাউনলোড করুন। এই কমান্ডটি vertex_certificate.crt নামের একটি ফাইল তৈরি করবে।

sudo openssl s_client -showcerts -connect $endpointID-$region-$projectNumber.prediction.p.vertexai.goog:443 </dev/null | openssl x509 -outform pem -out vertex_certificate.crt

Output should look like below, error is expected.

2f2899141dde1af2.png

সার্টিফিকেটটি সিস্টেম ট্রাস্ট স্টোরে স্থানান্তর করুন।

sudo mv vertex_certificate.crt /usr/local/share/ca-certificates

সার্টিফিকেট ম্যানেজার আপডেট করুন।

sudo update-ca-certificates

আপডেট হয়ে গেলে এটি দেখতে এইরকম হবে।

user@linux-vm:~$ sudo update-ca-certificates

Updating certificates in /etc/ssl/certs...

1 added, 0 removed; done.

Running hooks in /etc/ca-certificates/update.d...

Done.

৯. কনজিউমার ভিএম থেকে চূড়ান্ত পরীক্ষা

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

gcloud auth application-default login
--scopes=https://www.googleapis.com/auth/cloud-platform 

কনজিউমার ভিএম-এ আপনার জেমিনি মডেলের প্রেডিকশন পরীক্ষা করতে, "১ পাউন্ড পালক নাকি পাথরের ওজন বেশি?" এই প্রম্পটটি সহ নিম্নলিখিত কার্ল কমান্ডটি চালান।

curl -v -X POST -H "Authorization: Bearer $(gcloud auth application-default print-access-token)"   -H "Content-Type: application/json" https://$endpointID-$region-$projectNumber.prediction.p.vertexai.goog/v1/projects/$projectid/locations/$region/endpoints/$endpointID/chat/completions   -d '{"model": "google/gemma-3-12b-it", "messages": [{"role": "user","content": "What weighs more 1 pound of feathers or rocks?"}] }'

চূড়ান্ত ফলাফল - সফল!!!

আউটপুটের একেবারে নিচে আপনি জেমা ৩-এর প্রেডিকশন দেখতে পাবেন, যা প্রমাণ করে যে আপনি PSC এন্ডপয়েন্টের মাধ্যমে ব্যক্তিগতভাবে API এন্ডপয়েন্টটিতে অ্যাক্সেস করতে সক্ষম হয়েছেন।

 Connection #0 to host 10.10.10.6 left intact
{"id":"chatcmpl-9e941821-65b3-44e4-876c-37d81baf62e0","object":"chat.completion","created":1759009221,"model":"google/gemma-3-12b-it","choices":[{"index":0,"message":{"role":"assistant","reasoning_content":null,"content":"This is a classic trick question! They weigh the same. One pound is one pound, regardless of the material. 😊\n\n\n\n","tool_calls":[]},"logprobs":null,"finish_reason":"stop","stop_reason":106}],"usage":{"prompt_tokens":20,"total_tokens":46,"completion_tokens":26,"prompt_tokens_details":null},"prompt_logprobs":null

১০. পরিষ্কার করুন

ক্লাউড শেল থেকে টিউটোরিয়াল উপাদানগুলো মুছে ফেলুন।

Get Deployed Model ID first with this command, you will need it to delete the Endpoint ID:

gcloud ai endpoints describe $endpointID \
  --region=$region \
  --project=$projectid \
  --format="table[no-heading](deployedModels.id)"

Example Output: 7389140900875599872

Put it in a Variable:

deployedModelID=7389140900875599872

Run following Commands:

gcloud ai endpoints undeploy-model $endpointID --deployed-model-id=$deployedModelID --region=$region --quiet

gcloud ai endpoints delete $endpointID --project=$projectid --region=$region --quiet

Run Following command to get $MODEL_ID to delete Model:

gcloud ai models list --project=$projectid --region=$region

Example Output:

Using endpoint [https://us-central1-aiplatform.googleapis.com/]
MODEL_ID: gemma-3-12b-it-1768409471942
DISPLAY_NAME: gemma-3-12b-it-1768409471942

Put MODEL_ID value in a variable:

MODEL_ID=gemma-3-12b-it-1768409471942

Run the follow command to delete Model:

gcloud ai models delete $MODEL_ID --project=$projectid --region=$region --quiet

Clean up rest of the lab:
gcloud compute instances delete consumer-vm --zone=us-central1-a --quiet

gcloud compute forwarding-rules delete psc-consumer-ep --region=$region --project=$projectid --quiet

gcloud compute addresses delete psc-address --region=$region --project=$projectid --quiet

gcloud compute networks subnets delete pscendpoint-subnet consumer-vm-subnet --region=$region --quiet

gcloud compute firewall-rules delete ssh-iap-consumer --project=$projectid

gcloud compute routers delete consumer-cr --region=$region

gcloud compute networks delete consumer-vpc --project=$projectid --quiet

১১. অভিনন্দন

অভিনন্দন, আপনি Vertex AI থেকে প্রাপ্ত এবং VM-এর ট্রাস্ট স্টোরে স্থাপন করা একটি সেলফ-সাইন্ড সার্টিফিকেট ব্যবহার করে একটি প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্টের মাধ্যমে Vertex AI Prediction-এ হোস্ট করা Gemma 3 API-এর ব্যক্তিগত অ্যাক্সেস সফলভাবে কনফিগার এবং ভ্যালিডেট করেছেন।

আপনি গ্রাহক পরিকাঠামো তৈরি করেছেন, যার মধ্যে রয়েছে একটি অভ্যন্তরীণ আইপি ঠিকানা সংরক্ষণ করা, আপনার ভিপিসি-র (VPC) মধ্যে একটি প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট (একটি ফরওয়ার্ডিং নিয়ম) কনফিগার করা এবং *prediction.p.vertexai.goog স্ব-স্বাক্ষরিত সার্টিফিকেটটির সাথে মেলানোর জন্য প্রাইভেট ডিএনএস (DNS)। এই এন্ডপয়েন্টটি আপনার ডেপ্লয় করা জেমা ৩ (Gemma 3) মডেলের সাথে যুক্ত সার্ভিস অ্যাটাচমেন্টকে টার্গেট করে ভার্টেক্স এআই (Vertex AI) সার্ভিসের সাথে নিরাপদে সংযোগ স্থাপন করে।

এই সেটআপটি নিশ্চিত করে যে, VPC বা সংযুক্ত নেটওয়ার্কের মধ্যে থাকা আপনার অ্যাপ্লিকেশনগুলি সার্টিফিকেট ব্যবহার করে একটি অভ্যন্তরীণ আইপি অ্যাড্রেসের মাধ্যমে ব্যক্তিগতভাবে Gemma 3 API-এর সাথে যোগাযোগ করতে পারে। সমস্ত ট্র্যাফিক গুগলের নেটওয়ার্কের মধ্যেই থাকে এবং কখনোই পাবলিক ইন্টারনেটে চলাচল করে না।

এরপর কী?

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

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