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

আপনি যা তৈরি করবেন
এই টিউটোরিয়ালে, আপনি মডেল গার্ডেন থেকে জেমা ৩ (Gemma 3) ডাউনলোড করবেন, যা ভার্টেক্স এআই অনলাইন ইনফারেন্স (Vertex AI Online Inference)-এ একটি প্রাইভেট এন্ডপয়েন্ট হিসেবে হোস্ট করা আছে এবং প্রাইভেট সার্ভিস কানেক্ট (Private Service Connect)-এর মাধ্যমে অ্যাক্সেসযোগ্য। আপনার এন্ড-টু-এন্ড সেটআপে অন্তর্ভুক্ত থাকবে:
- মডেল গার্ডেন মডেল: আপনি ভার্টেক্স এআই মডেল গার্ডেন থেকে জেমা ৩ নির্বাচন করবেন এবং এটিকে একটি প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্টে স্থাপন করবেন।
- প্রাইভেট সার্ভিস কানেক্ট: আপনি আপনার ভার্চুয়াল প্রাইভেট ক্লাউড (VPC)-এ একটি কনজিউমার এন্ডপয়েন্ট কনফিগার করবেন, যা আপনার নিজস্ব নেটওয়ার্কের মধ্যে একটি অভ্যন্তরীণ আইপি অ্যাড্রেস ব্যবহার করবে।
- ভার্টেক্স এআই-এর সাথে সুরক্ষিত সংযোগ: পিএসসি এন্ডপয়েন্টটি আপনার প্রাইভেট মডেল ডেপ্লয়মেন্টের জন্য ভার্টেক্স এআই দ্বারা স্বয়ংক্রিয়ভাবে তৈরি সার্ভিস অ্যাটাচমেন্টকে টার্গেট করবে। এটি একটি প্রাইভেট সংযোগ স্থাপন করে, যা নিশ্চিত করে যে আপনার ভিপিসি এবং মডেল সার্ভিং এন্ডপয়েন্টের মধ্যেকার ট্র্যাফিক পাবলিক ইন্টারনেটের মধ্য দিয়ে যায় না।
- আপনার VPC-এর মধ্যে ক্লায়েন্ট কনফিগারেশন: আপনি PSC এন্ডপয়েন্টের অভ্যন্তরীণ IP অ্যাড্রেস ব্যবহার করে ডেপ্লয় করা মডেলে ইনফারেন্স রিকোয়েস্ট পাঠানোর জন্য আপনার VPC-এর মধ্যে একটি ক্লায়েন্ট (যেমন, Compute Engine VM) সেট আপ করবেন।
- TLS এনক্রিপশন যাচাই করুন: আপনার VPC-এর মধ্যে থাকা ক্লায়েন্ট VM থেকে, আপনি PSC এন্ডপয়েন্টের অভ্যন্তরীণ IP অ্যাড্রেসে সংযোগ করার জন্য স্ট্যান্ডার্ড টুলস (openssl s_client) ব্যবহার করবেন। এই ধাপটি আপনাকে হ্যান্ডশেক বিবরণ এবং উপস্থাপিত সার্ভার সার্টিফিকেট পরীক্ষা করে নিশ্চিত করতে সাহায্য করবে যে Vertex AI পরিষেবার সাথে যোগাযোগের চ্যানেলটি প্রকৃতপক্ষে TLS ব্যবহার করে এনক্রিপ্ট করা হয়েছে।
সবশেষে, আপনার কাছে একটি মডেল গার্ডেন মডেলের কার্যকরী উদাহরণ থাকবে, যা ব্যক্তিগতভাবে পরিবেশিত হবে এবং শুধুমাত্র আপনার নির্ধারিত VPC নেটওয়ার্কের ভেতর থেকেই অ্যাক্সেসযোগ্য হবে।
আপনি যা শিখবেন
এই টিউটোরিয়ালে, আপনি শিখবেন কীভাবে ভার্টেক্স এআই মডেল গার্ডেন থেকে একটি মডেল ডেপ্লয় করতে হয় এবং প্রাইভেট সার্ভিস কানেক্ট (PSC) ব্যবহার করে সেটিকে আপনার ভার্চুয়াল প্রাইভেট ক্লাউড (VPC) থেকে নিরাপদে অ্যাক্সেসযোগ্য করে তুলতে হয়। এই পদ্ধতিটি আপনার VPC-এর ভেতরের অ্যাপ্লিকেশনগুলোকে (কনজিউমার) পাবলিক ইন্টারনেট ব্যবহার না করেই ব্যক্তিগতভাবে ভার্টেক্স এআই মডেল এন্ডপয়েন্টের (প্রডিউসার সার্ভিস) সাথে সংযোগ স্থাপন করতে দেয়।
বিশেষভাবে, আপনি শিখবেন:
- ভার্টেক্স এআই-এর জন্য পিএসসি বোঝা: কীভাবে পিএসসি ব্যক্তিগত এবং সুরক্ষিত কনজিউমার-টু-প্রডিউসার সংযোগ সক্ষম করে। আপনার ভিপিসি অভ্যন্তরীণ আইপি অ্যাড্রেস ব্যবহার করে ডেপ্লয় করা মডেল গার্ডেন মডেলটি অ্যাক্সেস করতে পারে।
- প্রাইভেট অ্যাক্সেস সহ একটি মডেল স্থাপন: আপনার মডেল গার্ডেন মডেলের জন্য কীভাবে একটি ভার্টেক্স এআই এন্ডপয়েন্ট কনফিগার করে সেটিকে PSC ব্যবহার করার মাধ্যমে একটি প্রাইভেট এন্ডপয়েন্টে পরিণত করবেন।
- সার্ভিস অ্যাটাচমেন্টের ভূমিকা: যখন আপনি একটি প্রাইভেট ভার্টেক্স এআই এন্ডপয়েন্টে কোনো মডেল ডেপ্লয় করেন, তখন গুগল ক্লাউড স্বয়ংক্রিয়ভাবে একটি গুগল-পরিচালিত টেন্যান্ট প্রোজেক্টে একটি সার্ভিস অ্যাটাচমেন্ট তৈরি করে। এই সার্ভিস অ্যাটাচমেন্টটি মডেল সার্ভিং সার্ভিসটিকে কনজিউমার নেটওয়ার্কের কাছে উন্মুক্ত করে।
- আপনার VPC-তে একটি PSC এন্ডপয়েন্ট তৈরি করা:
- আপনার ডেপ্লয় করা Vertex AI Endpoint-এর বিবরণ থেকে অনন্য Service Attachment URI কীভাবে পাবেন।
- আপনার VPC-তে নির্বাচিত সাবনেটের মধ্যে কীভাবে একটি অভ্যন্তরীণ আইপি অ্যাড্রেস রিজার্ভ করবেন।
- আপনার VPC-তে কীভাবে একটি ফরওয়ার্ডিং রুল তৈরি করবেন যা PSC এন্ডপয়েন্ট হিসেবে কাজ করে এবং Vertex AI সার্ভিস অ্যাটাচমেন্টকে টার্গেট করে। এই এন্ডপয়েন্টটি সংরক্ষিত অভ্যন্তরীণ IP-এর মাধ্যমে মডেলটিকে অ্যাক্সেসযোগ্য করে তোলে।
- ব্যক্তিগত সংযোগ স্থাপন: আপনার VPC-তে থাকা PSC এন্ডপয়েন্ট কীভাবে সার্ভিস অ্যাটাচমেন্টের সাথে সংযুক্ত হয়ে আপনার নেটওয়ার্ককে Vertex AI পরিষেবার সাথে নিরাপদে যুক্ত করে।
- ব্যক্তিগতভাবে ইনফারেন্স অনুরোধ পাঠানো: আপনার VPC-এর মধ্যে থাকা রিসোর্স (যেমন Compute Engine VM) থেকে PSC Endpoint-এর অভ্যন্তরীণ IP অ্যাড্রেসে কীভাবে প্রেডিকশন অনুরোধ পাঠাবেন।
- যাচাইকরণ: প্রাইভেট কানেকশনের মাধ্যমে আপনার VPC থেকে ডেপ্লয় করা মডেল গার্ডেন মডেলে আপনি সফলভাবে ইনফারেন্স রিকোয়েস্ট পাঠাতে পারছেন কি না, তা পরীক্ষা ও নিশ্চিত করার ধাপসমূহ।
- TLS এনক্রিপশন যাচাইকরণ: আপনার VPC ক্লায়েন্টের (যেমন, একটি Compute Engine VM) ভেতর থেকে টুল ব্যবহার করে কীভাবে PSC Endpoint-এর অভ্যন্তরীণ IP অ্যাড্রেসে TLS-এর মাধ্যমে সংযোগ স্থাপন করবেন।
এটি সম্পন্ন করার মাধ্যমে, আপনি মডেল গার্ডেন থেকে এমন মডেল হোস্ট করতে পারবেন যেগুলো শুধুমাত্র আপনার ব্যক্তিগত নেটওয়ার্ক পরিকাঠামো থেকেই অ্যাক্সেসযোগ্য হবে।
আপনার যা যা লাগবে
গুগল ক্লাউড প্রজেক্ট
আইএএম অনুমতি
- এআই প্ল্যাটফর্ম অ্যাডমিন (ভূমিকা/এমএল.অ্যাডমিন)
- কম্পিউট নেটওয়ার্ক অ্যাডমিন (roles/compute.networkAdmin)
- কম্পিউট ইনস্ট্যান্স অ্যাডমিন (roles/compute.instanceAdmin)
- কম্পিউট সিকিউরিটি অ্যাডমিন (roles/compute.securityAdmin)
- ডিএনএস প্রশাসক (ভূমিকা/ডিএনএস.অ্যাডমিন)
- IAP-সুরক্ষিত টানেল ব্যবহারকারী (roles/iap.tunnelResourceAccessor)
- লগিং অ্যাডমিন (roles/logging.admin)
- নোটবুক অ্যাডমিন (roles/notebooks.admin)
- প্রজেক্ট আইএএম অ্যাডমিন (roles/resourcemanager.projectIamAdmin)
- সার্ভিস অ্যাকাউন্ট অ্যাডমিন (roles/iam.serviceAccountAdmin)
- পরিষেবা ব্যবহার প্রশাসক (roles/serviceusage.serviceUsageAdmin)
২. শুরু করার আগে
টিউটোরিয়ালটি সমর্থন করার জন্য প্রজেক্টটি আপডেট করুন।
এই টিউটোরিয়ালটিতে ক্লাউড শেলে 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) অনুসন্ধান করে নির্বাচন করুন।

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

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

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

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

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

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

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

এন্ডপয়েন্ট আইডি পেতে এবং ভেরিয়েবলটি আপডেট করতে এন্ডপয়েন্টটি নির্বাচন করুন। দেখানো উদাহরণে, আইডিটি হলো 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 আইপি অ্যাড্রেসটি সংরক্ষিত আছে।

পূর্ববর্তী ধাপের 'মডেল স্থাপন' বিভাগে আপনার সংগ্রহ করা সার্ভিস অ্যাটাচমেন্ট ইউআরআই, টার্গেট-সার্ভিস-অ্যাটাচমেন্ট, উল্লেখ করে কনজিউমার এন্ডপয়েন্টটি তৈরি করুন।
ক্লাউড শেলের ভিতরে নেটওয়ার্ক সংযুক্তিটি বর্ণনা করুন।
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" স্ট্যাটাস দেখা যাচ্ছে কিনা তা যাচাই করুন।

৮. 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.

সার্টিফিকেটটি সিস্টেম ট্রাস্ট স্টোরে স্থানান্তর করুন।
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-এর সাথে যোগাযোগ করতে পারে। সমস্ত ট্র্যাফিক গুগলের নেটওয়ার্কের মধ্যেই থাকে এবং কখনোই পাবলিক ইন্টারনেটে চলাচল করে না।