1. ভূমিকা
একটি প্রাইভেট সার্ভিস কানেক্ট ইন্টারফেস হল একটি রিসোর্স যা একটি প্রযোজক ভার্চুয়াল প্রাইভেট ক্লাউড (ভিপিসি) নেটওয়ার্ককে একটি ভোক্তা ভিপিসি নেটওয়ার্কের বিভিন্ন গন্তব্যে সংযোগ শুরু করতে দেয়। প্রযোজক এবং ভোক্তা নেটওয়ার্ক বিভিন্ন প্রকল্প এবং সংস্থায় হতে পারে।
যদি একটি নেটওয়ার্ক সংযুক্তি একটি ব্যক্তিগত পরিষেবা সংযোগ ইন্টারফেস থেকে একটি সংযোগ গ্রহণ করে, Google ক্লাউড ইন্টারফেসটিকে একটি ভোক্তা সাবনেট থেকে একটি IP ঠিকানা বরাদ্দ করে যা নেটওয়ার্ক সংযুক্তি দ্বারা নির্দিষ্ট করা হয়েছে৷ ভোক্তা এবং প্রযোজক নেটওয়ার্ক সংযুক্ত থাকে এবং অভ্যন্তরীণ আইপি ঠিকানা ব্যবহার করে যোগাযোগ করতে পারে।
একটি নেটওয়ার্ক সংযুক্তি এবং একটি প্রাইভেট সার্ভিস কানেক্ট ইন্টারফেসের মধ্যে একটি সংযোগ একটি প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট এবং একটি পরিষেবা সংযুক্তির মধ্যে সংযোগের অনুরূপ, তবে এর দুটি মূল পার্থক্য রয়েছে:
- একটি নেটওয়ার্ক সংযুক্তি একটি প্রযোজক নেটওয়ার্ককে একটি ভোক্তা নেটওয়ার্কের সাথে সংযোগ শুরু করতে দেয় (পরিচালিত পরিষেবা বহির্গমন), যখন একটি এন্ডপয়েন্ট একটি ভোক্তা নেটওয়ার্ককে একটি প্রযোজক নেটওয়ার্কের সাথে সংযোগ শুরু করতে দেয় (পরিচালিত পরিষেবা প্রবেশ)।
- একটি ব্যক্তিগত পরিষেবা সংযোগ ইন্টারফেস সংযোগ ট্রানজিটিভ। এর মানে হল যে একটি প্রযোজক নেটওয়ার্ক ভোক্তা নেটওয়ার্কের সাথে সংযুক্ত অন্যান্য নেটওয়ার্কগুলির সাথে যোগাযোগ করতে পারে।
ভার্টেক্স এআই পিএসসি-ইন্টারফেস পৌঁছানোর যোগ্যতা বিবেচনা
- PSC-ইন্টারফেস RFC1918 ঠিকানা ব্লকের মধ্যে VPC বা অন-প্রিমেসিস ভিত্তিক গন্তব্যে ট্র্যাফিক রুট করতে সক্ষম।
- PSC-ইন্টারফেস লক্ষ্য করে নন rfc-1918 অ্যাড্রেস ব্লকের জন্য ভোক্তার ভিপিসিতে rfc-1918 অ্যাড্রেস সহ একটি সুস্পষ্ট প্রক্সি মোতায়েন করা প্রয়োজন। ভার্টেক্স এআই ডিপ্লয়মেন্টের মধ্যে, প্রক্সিকে অবশ্যই টার্গেট এন্ডপয়েন্টের একটি FQDN সহ সংজ্ঞায়িত করতে হবে। চিত্র 1 দেখুন যা নিম্নলিখিত নন rfc-1918 CIDR-তে রাউটিং সহজতর করার জন্য গ্রাহকদের VPC-তে কনফিগার করা স্পষ্ট প্রক্সি উপস্থাপন করে:
[১] ২৪০.০.০.০/৪
[২] 203.0.113.0/2
[3]10.10.20.0/28 কোনো প্রক্সির প্রয়োজন নেই, rfc1918 রেঞ্জের মধ্যে পড়ে৷
- আপনি যখন শুধুমাত্র একটি PSC ইন্টারফেস দিয়ে আপনার স্থাপনা কনফিগার করেন, তখন এটি তার ডিফল্ট ইন্টারনেট অ্যাক্সেস বজায় রাখে। এই আউটবাউন্ড ট্রাফিক নিরাপদ, Google-পরিচালিত ভাড়াটে নেটওয়ার্ক থেকে সরাসরি প্রস্থান করে।
ভার্টেক্স এআই পিএসসি-ইন্টারফেস ভিপিসি-এসসি বিবেচনা
- যখন আপনার প্রোজেক্ট একটি VPC সার্ভিস কন্ট্রোলস পরিধির অংশ হয়, তখন Google-পরিচালিত ভাড়াটেদের ডিফল্ট ইন্টারনেট অ্যাক্সেস পেরিমিটার দ্বারা ব্লক করা হয় যাতে ডেটা অপসারণ রোধ করা যায়।
- এই পরিস্থিতিতে সর্বজনীন ইন্টারনেটে স্থাপনার অ্যাক্সেসের অনুমতি দেওয়ার জন্য, আপনাকে অবশ্যই একটি নিরাপদ প্রস্থান পথ কনফিগার করতে হবে যা আপনার VPC এর মাধ্যমে ট্র্যাফিককে রুট করে। এটি অর্জনের প্রস্তাবিত উপায় হল আপনার VPC পরিধির ভিতরে একটি RFC1918 ঠিকানা সহ একটি প্রক্সি সার্ভার সেট আপ করা এবং প্রক্সি VM-কে ইন্টারনেট অ্যাক্সেস করার অনুমতি দেওয়ার জন্য একটি Cloud NAT গেটওয়ে তৈরি করা৷
অতিরিক্ত তথ্যের জন্য, নিম্নলিখিত সংস্থানগুলি পড়ুন:
Vertex AI সংস্থানগুলির জন্য একটি ব্যক্তিগত পরিষেবা সংযোগ ইন্টারফেস সেট আপ করুন | গুগল ক্লাউড
আপনি কি নির্মাণ করবেন
এই টিউটোরিয়ালে, আপনি প্রাইভেট সার্ভিস কানেক্ট (PSC) ইন্টারফেসের সাথে একটি বিস্তৃত ভার্টেক্স এআই পাইপলাইন স্থাপনা তৈরি করতে যাচ্ছেন যাতে প্রযোজক থেকে ভোক্তার গণনায় সংযোগের অনুমতি দেওয়া যায়, যেমনটি চিত্র 1-এ অ rfc-1928 এন্ডপয়েন্টকে লক্ষ্য করে দেখানো হয়েছে।
চিত্র 2
ভার্টেক্স এআই ট্রেনিং হোস্টিং টেন্যান্ট প্রোজেক্টে ভোক্তাদের ভিএম সমাধান করার জন্য আপনি কনজিউমার ভিপিসি লিভারেজিং ডিএনএস পিয়ারিং-এ একটি একক পিএসসি-নেটওয়ার্ক-অ্যাটাচমেন্ট তৈরি করবেন যার ফলে নিম্নলিখিত ব্যবহারের ক্ষেত্রে হবে:
- Vertex AI পাইপলাইন স্থাপন করুন এবং একটি প্রক্সি VM কনফিগার করে একটি সুস্পষ্ট প্রক্সি হিসাবে কাজ করুন, এটিকে ক্লাস E সাবনেটে একটি VM-এর বিরুদ্ধে একটি wget সম্পাদন করার অনুমতি দেয়।
আপনি কি শিখবেন
- কিভাবে একটি নেটওয়ার্ক সংযুক্তি তৈরি করতে হয়
- কিভাবে একজন প্রযোজক একটি PSC ইন্টারফেস তৈরি করতে একটি নেটওয়ার্ক সংযুক্তি ব্যবহার করতে পারেন
- ডিএনএস পিয়ারিং ব্যবহার করে কীভাবে প্রযোজক থেকে ভোক্তার সাথে যোগাযোগ স্থাপন করবেন
- Vertex AI পাইপলাইন থেকে নন-rfc1918 আইপি অ্যাড্রেস স্পেসের সাথে কীভাবে যোগাযোগ স্থাপন করবেন
আপনি কি প্রয়োজন হবে
গুগল ক্লাউড প্রকল্প
আইএএম অনুমতি
- কম্পিউট নেটওয়ার্ক অ্যাডমিন (roles/compute.networkAdmin)
- কম্পিউট ইনস্ট্যান্স অ্যাডমিন (roles/compute.instanceAdmin)
- কম্পিউট সিকিউরিটি অ্যাডমিন (roles/compute.securityAdmin)
- DNS প্রশাসক (roles/dns.admin)
- IAP-সুরক্ষিত টানেল ব্যবহারকারী (roles/iap.tunnelResourceAccessor)
- লগিং অ্যাডমিন (roles/logging.admin)
- নোটবুক অ্যাডমিন (roles/notebooks.admin)
- প্রজেক্ট IAM অ্যাডমিন (roles/resourcemanager.projectIamAdmin)
- সার্ভিস অ্যাকাউন্ট অ্যাডমিন (roles/iam.serviceAccountAdmin)
- পরিষেবা ব্যবহার অ্যাডমিন (roles/serviceusage.serviceUsageAdmin)
2. আপনি শুরু করার আগে
টিউটোরিয়াল সমর্থন করার জন্য প্রকল্পটি আপডেট করুন
এই টিউটোরিয়ালটি ক্লাউড শেল-এ gcloud কনফিগারেশন বাস্তবায়নে সহায়তা করার জন্য $variables ব্যবহার করে।
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
API সক্ষমতা
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud services enable "compute.googleapis.com"
gcloud services enable "aiplatform.googleapis.com"
gcloud services enable "dns.googleapis.com"
gcloud services enable "notebooks.googleapis.com"
gcloud services enable "storage.googleapis.com"
gcloud services enable "cloudresourcemanager.googleapis.com"
gcloud services enable "artifactregistry.googleapis.com"
gcloud services enable "cloudbuild.googleapis.com"
3. ভোক্তা সেটআপ
কনজিউমার ভিপিসি তৈরি করুন
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute networks create consumer-vpc --project=$projectid --subnet-mode=custom
ভোক্তা সাবনেট তৈরি করুন
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute networks subnets create class-e-subnet --project=$projectid --range=240.0.0.0/4 --network=consumer-vpc --region=us-central1
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute networks subnets create rfc1918-subnet1 --project=$projectid --range=10.10.10.0/28 --network=consumer-vpc --region=us-central1
প্রাইভেট সার্ভিস কানেক্ট নেটওয়ার্ক অ্যাটাচমেন্ট সাবনেট তৈরি করুন
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute networks subnets create intf-subnet --project=$projectid --range=192.168.10.0/28 --network=consumer-vpc --region=us-central1
ক্লাউড রাউটার এবং NAT কনফিগারেশন
এই টিউটোরিয়ালে, ক্লাউড NAT প্রক্সি VM-এর জন্য ইন্টারনেট অ্যাক্সেস প্রদান করতে ব্যবহৃত হয়, যার কোনো পাবলিক আইপি ঠিকানা নেই। ক্লাউড NAT শুধুমাত্র ব্যক্তিগত আইপি ঠিকানা সহ VM-এর জন্য ইন্টারনেটের সাথে সংযোগ করা সম্ভব করে তোলে, তাদের সফ্টওয়্যার প্যাকেজ ইনস্টল করার মতো কাজগুলি সম্পাদন করার অনুমতি দেয়।
ক্লাউড শেলের ভিতরে, ক্লাউড রাউটার তৈরি করুন।
gcloud compute routers create cloud-router-for-nat --network consumer-vpc --region us-central1
ক্লাউড শেলের ভিতরে, NAT গেটওয়ে তৈরি করুন।
gcloud compute routers nats create cloud-nat-us-central1 --router=cloud-router-for-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1 --enable-logging --log-filter=ALL
4. IAP সক্ষম করুন৷
IAP কে আপনার VM দৃষ্টান্তের সাথে সংযোগ করার অনুমতি দিতে, একটি ফায়ারওয়াল নিয়ম তৈরি করুন যা:
- আপনি IAP ব্যবহার করে অ্যাক্সেসযোগ্য হতে চান এমন সমস্ত VM দৃষ্টান্তগুলিতে প্রযোজ্য।
- IP পরিসর 35.235.240.0/20 থেকে ট্র্যাফিক প্রবেশের অনুমতি দেয়। এই পরিসরে সমস্ত আইপি ঠিকানা রয়েছে যা IAP TCP ফরওয়ার্ডিংয়ের জন্য ব্যবহার করে।
ক্লাউড শেলের ভিতরে, IAP ফায়ারওয়াল নিয়ম তৈরি করুন।
gcloud compute firewall-rules create ssh-iap-consumer \
--network consumer-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
5. ভোক্তা VM দৃষ্টান্ত তৈরি করুন
ক্লাউড শেলের ভিতরে, ভোক্তা vm উদাহরণ, ক্লাস-ই-ভিএম তৈরি করুন।
gcloud compute instances create class-e-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=class-e-subnet \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install tcpdump
sudo apt-get install apache2 -y
sudo service apache2 restart
echo 'Class-e server !!' | tee /var/www/html/index.html
EOF"
ক্লাউড শেলের মধ্যে, ভোক্তা VM দৃষ্টান্ত তৈরি করুন, প্রক্সি-ভিএম, যা Vertex AI পাইপলাইনের জন্য স্পষ্ট প্রক্সি হিসাবে কাজ করবে। আমরা HTTP ট্র্যাফিক প্রক্সি করার জন্য অ্যাপ্লিকেশন হিসাবে tinyproxy ব্যবহার করব, যদিও HTTPS সমর্থিত।
gcloud compute instances create proxy-vm \
--project=$projectid \
--machine-type=e2-micro \
--image-family debian-11 \
--no-address \
--can-ip-forward \
--shielded-secure-boot \
--image-project debian-cloud \
--zone us-central1-a \
--subnet=rfc1918-subnet1 \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install tcpdump
sudo apt-get install tinyproxy -y
sudo apt-get install apache2 -y
sudo service apache2 restart
echo 'proxy server !!' | tee /var/www/html/index.html
EOF"
6. ব্যক্তিগত পরিষেবা সংযোগ নেটওয়ার্ক সংযুক্তি
নেটওয়ার্ক সংযুক্তিগুলি হল আঞ্চলিক সংস্থান যা একটি প্রাইভেট সার্ভিস কানেক্ট ইন্টারফেসের ভোক্তাদের প্রতিনিধিত্ব করে। আপনি একটি নেটওয়ার্ক সংযুক্তির সাথে একটি একক সাবনেট সংযুক্ত করেন এবং প্রযোজক সেই সাবনেট থেকে প্রাইভেট সার্ভিস কানেক্ট ইন্টারফেসে আইপি বরাদ্দ করেন। সাবনেটটি অবশ্যই নেটওয়ার্ক সংযুক্তির মতো একই অঞ্চলে হতে হবে৷ একটি নেটওয়ার্ক সংযুক্তি অবশ্যই প্রযোজক পরিষেবার মতো একই অঞ্চলে হতে হবে৷
নেটওয়ার্ক সংযুক্তি তৈরি করুন
ক্লাউড শেলের ভিতরে, নেটওয়ার্ক সংযুক্তি তৈরি করুন।
gcloud compute network-attachments create psc-network-attachment \
--region=us-central1 \
--connection-preference=ACCEPT_AUTOMATIC \
--subnets=intf-subnet
নেটওয়ার্ক সংযুক্তি তালিকা
ক্লাউড শেলের ভিতরে, নেটওয়ার্ক সংযুক্তি তালিকাভুক্ত করুন।
gcloud compute network-attachments list
নেটওয়ার্ক সংযুক্তি বর্ণনা করুন
ক্লাউড শেলের ভিতরে, নেটওয়ার্ক সংযুক্তি বর্ণনা করুন।
gcloud compute network-attachments describe psc-network-attachment --region=us-central1
psc-নেটওয়ার্ক-অ্যাটাচমেন্ট নাম, psc-নেটওয়ার্ক-অ্যাটাচমেন্ট নোট করুন, যেটি প্রাইভেট সার্ভিস কানেক্ট ইন্টারফেস তৈরি করার সময় প্রযোজক ব্যবহার করবেন।
ক্লাউড কনসোলে পিএসসি নেটওয়ার্ক সংযুক্তি URL দেখতে, নিম্নলিখিতটিতে নেভিগেট করুন:
নেটওয়ার্ক পরিষেবা → ব্যক্তিগত পরিষেবা সংযোগ → নেটওয়ার্ক সংযুক্তি → psc-নেটওয়ার্ক-সংযুক্তি
7. ব্যক্তিগত DNS জোন
আপনি demo.com-এর জন্য একটি ক্লাউড ডিএনএস জোন তৈরি করবেন এবং আপনার VM-এর আইপি ঠিকানাগুলি নির্দেশ করে এমন একটি রেকর্ড দিয়ে এটিকে পপুলেট করবেন। পরবর্তীতে, ডিএনএস পিয়ারিং ভার্টেক্স এআই পাইপলাইন কাজে স্থাপন করা হবে, যা এটিকে ভোক্তার ডিএনএস রেকর্ড অ্যাক্সেস করতে দেবে।
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud dns --project=$projectid managed-zones create private-dns-codelab --description="" --dns-name="demo.com." --visibility="private" --networks="https://compute.googleapis.com/compute/v1/projects/$projectid/global/networks/consumer-vpc"
ক্লাউড শেলের ভিতরে, সংশ্লিষ্ট আইপি ঠিকানাগুলি পেতে VM দৃষ্টান্তগুলির বিরুদ্ধে একটি বর্ণনা সম্পাদন করুন।
gcloud compute instances describe class-e-vm --zone=us-central1-a | grep networkIP:
gcloud compute instances describe proxy-vm --zone=us-central1-a | grep networkIP:
ক্লাউড শেলের ভিতরে, ভিএম, ক্লাস-ই-ভিএম-এর জন্য সেট করা রেকর্ডগুলি তৈরি করুন, আপনার পরিবেশের আউটপুটের উপর ভিত্তি করে আইপি ঠিকানা আপডেট করা নিশ্চিত করুন।
gcloud dns --project=$projectid record-sets create class-e-vm.demo.com. --zone="private-dns-codelab" --type="A" --ttl="300" --rrdatas="240.0.0.2"
ক্লাউড শেলের ভিতরে, VM, proxy-vm-এর জন্য সেট করা রেকর্ড তৈরি করুন, আপনার পরিবেশের আউটপুটের উপর ভিত্তি করে IP ঠিকানা আপডেট করা নিশ্চিত করুন।
gcloud dns --project=$projectid record-sets create proxy-vm.demo.com. --zone="private-dns-codelab" --type="A" --ttl="300" --rrdatas="10.10.10.2"
PSC ইন্টারফেস থেকে অ্যাক্সেসের অনুমতি দিতে একটি ক্লাউড ফায়ারওয়াল নিয়ম তৈরি করুন
নিম্নলিখিত বিভাগে, একটি ফায়ারওয়াল নিয়ম তৈরি করুন যা PSC নেটওয়ার্ক সংযুক্তি অ্যাক্সেস RFC1918 কম্পিউট রিসোর্স থেকে ভোক্তাদের VPC থেকে উদ্ভূত ট্রাফিকের অনুমতি দেয়।
ক্লাউড শেল-এ, ইনগ্রেস ফায়ারওয়াল নিয়ম তৈরি করুন যা PSC নেটওয়ার্ক সংযুক্তি সাবনেট থেকে প্রক্সি-ভিএম-এ অ্যাক্সেসের অনুমতি দেয়।
gcloud compute firewall-rules create allow-access-to-proxy \
--network=consumer-vpc \
--action=ALLOW \
--rules=ALL \
--direction=INGRESS \
--priority=1000 \
--source-ranges="192.168.10.0/28" \
--destination-ranges="10.10.0.0/19" \
--enable-logging
ক্লাউড শেল-এ ইনগ্রেস ফায়ারওয়াল নিয়ম তৈরি করুন যা প্রক্সি-ভিএম সাবনেট থেকে ক্লাস-ই সাবনেটে অ্যাক্সেসের অনুমতি দেয়।
gcloud compute firewall-rules create allow-access-to-class-e \
--network=consumer-vpc \
--action=ALLOW \
--rules=ALL \
--direction=INGRESS \
--priority=1000 \
--source-ranges="10.10.10.0/28" \
--destination-ranges="240.0.0.0/4" \
--enable-logging
8. স্পষ্ট প্রক্সি আপডেট করুন
নিম্নলিখিত বিভাগে, আপনাকে স্পষ্ট প্রক্সিতে ssh করতে হবে এবং tinyproxy.conf কনফিগারেশন ফাইল আপডেট করতে হবে এবং তারপরে একটি রিসেট সম্পাদন করতে হবে।
ক্লাউড শেল থেকে
gcloud compute ssh --zone us-central1-a "proxy-vm" --tunnel-through-iap --project $projectid
tinyproxy কনফিগারেশন ফাইল খুলুন, একটি সম্পাদক বা আপনার পছন্দ ব্যবহার করে আপডেট করুন। নীচে ভিআইএম ব্যবহার করে একটি উদাহরণ দেওয়া হল।
sudo vim /etc/tinyproxy/tinyproxy.conf
# Locate the "Listen" configuration line to restrict listening to only its private IP address of the Proxy-VM, rather than all interfaces.
Listen 10.10.10.2
# Locate the "Allow" configuration line to allow requests ONLY from the PSC Network Attachment Subnet
Allow 192.168.10.0/24
Save the configs by the following steps:
1. Press the `ESC` key to enter Command Mode.
2. Type `:wq` to save (w) and quit (q).
3. Press `Enter`
Restart the tinyproxy service to apply the changes:
sudo systemctl restart tinyproxy
Validate the tinyproxy service is running:
sudo systemctl status tinyproxy
Perform an exit returning to cloud shell
exit
9. একটি জুপিটার নোটবুক তৈরি করুন
নিম্নলিখিত বিভাগটি জুপিটার নোটবুক তৈরির মাধ্যমে আপনাকে গাইড করে। এই নোটবুকটি একটি Vertex AI পাইপলাইন কাজ স্থাপন করতে ব্যবহার করা হবে যা Vertex AI পাইপলাইন থেকে একটি wget পাঠায় পরীক্ষার উদাহরণে। ভার্টেক্স এআই পাইপলাইন এবং উপভোক্তা নেটওয়ার্কের মধ্যে ডেটাপথ একটি প্রাইভেট সার্ভিস কানেক্ট নেটওয়ার্ক ইন্টারফেস ব্যবহার করে।
একটি ব্যবহারকারী পরিচালিত পরিষেবা অ্যাকাউন্ট তৈরি করুন
নিম্নলিখিত বিভাগে, আপনি একটি পরিষেবা অ্যাকাউন্ট তৈরি করবেন যা টিউটোরিয়ালে ব্যবহৃত Vertex AI Workbench উদাহরণের সাথে যুক্ত হবে।
টিউটোরিয়ালে, পরিষেবা অ্যাকাউন্টে নিম্নলিখিত ভূমিকাগুলি প্রয়োগ করা হবে:
- স্টোরেজ অ্যাডমিন
- ভার্টেক্স এআই ব্যবহারকারী
- আর্টিফ্যাক্ট রেজিস্ট্রি অ্যাডমিনিস্ট্রেটর
- ক্লাউড বিল্ড এডিটর
- IAM পরিষেবা অ্যাকাউন্ট ব্যবহারকারী
ক্লাউড শেলের ভিতরে, পরিষেবা অ্যাকাউন্ট তৈরি করুন।
gcloud iam service-accounts create notebook-sa \
--display-name="notebook-sa"
ক্লাউড শেলের ভিতরে, স্টোরেজ অ্যাডমিনের ভূমিকা সহ পরিষেবা অ্যাকাউন্ট আপডেট করুন।
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/storage.admin"
ক্লাউড শেলের ভিতরে, Vertex AI ব্যবহারকারীর ভূমিকা সহ পরিষেবা অ্যাকাউন্ট আপডেট করুন।
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"
ক্লাউড শেলের ভিতরে, আর্টিফ্যাক্ট রেজিস্ট্রি অ্যাডমিনের ভূমিকা সহ পরিষেবা অ্যাকাউন্ট আপডেট করুন।
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/artifactregistry.admin"
ক্লাউড শেলের ভিতরে, ক্লাউড বিল্ড এডিটর ভূমিকা সহ পরিষেবা অ্যাকাউন্ট আপডেট করুন।
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/cloudbuild.builds.editor"
ক্লাউড শেলের ভিতরে, নোটবুক পরিষেবা অ্যাকাউন্টটিকে কম্পিউট ইঞ্জিন ডিফল্ট পরিষেবা অ্যাকাউন্ট ব্যবহার করার অনুমতি দিন।
gcloud iam service-accounts add-iam-policy-binding \
$(gcloud projects describe $(gcloud config get-value project) --format='value(projectNumber)')-compute@developer.gserviceaccount.com \
--member="serviceAccount:notebook-sa@$projectid.iam.gserviceaccount.com" \
--role="roles/iam.serviceAccountUser"
10. একটি ভার্টেক্স এআই ওয়ার্কবেঞ্চ ইনস্ট্যান্স তৈরি করুন
নিম্নলিখিত বিভাগে, একটি Vertex AI ওয়ার্কবেঞ্চ উদাহরণ তৈরি করুন যা পূর্বে তৈরি পরিষেবা অ্যাকাউন্ট, নোটবুক-সা অন্তর্ভুক্ত করে।
ক্লাউড শেলের ভিতরে ব্যক্তিগত-ক্লায়েন্ট উদাহরণ তৈরি করুন।
gcloud workbench instances create workbench-tutorial --vm-image-project=cloud-notebooks-managed --vm-image-family=workbench-instances --machine-type=n1-standard-4 --location=us-central1-a --subnet-region=us-central1 --subnet=rfc1918-subnet1 --disable-public-ip --shielded-secure-boot=true --shielded-integrity-monitoring=true --shielded-vtpm=true --service-account-email=notebook-sa@$projectid.iam.gserviceaccount.com
11. ভার্টেক্স এআই সার্ভিস এজেন্ট আপডেট
Vertex AI আপনার পক্ষে কাজ করে যেমন PSC ইন্টারফেস তৈরি করতে ব্যবহৃত PSC নেটওয়ার্ক সংযুক্তি সাবনেট থেকে একটি IP ঠিকানা প্রাপ্ত করার মতো ক্রিয়াকলাপগুলি সম্পাদন করতে। এটি করার জন্য, Vertex AI একটি পরিষেবা এজেন্ট ব্যবহার করে (নীচে তালিকাভুক্ত) যার জন্য নেটওয়ার্ক অ্যাডমিনের অনুমতি প্রয়োজন।
service-$projectnumber@gcp-sa-aiplatform.iam.gserviceaccount.com
ক্লাউড শেলের ভিতরে, আপনার প্রকল্প নম্বর পান।
gcloud projects describe $projectid | grep projectNumber
ক্লাউড শেলের ভিতরে, আপনার প্রকল্প নম্বর পান।
gcloud projects describe $projectid | grep projectNumber
projectNumber: '234086459238'
ক্লাউড শেলের ভিতরে, আপনার প্রকল্প নম্বর সেট করুন।
projectnumber=YOUR-PROJECT-Number
ক্লাউড শেলের ভিতরে, এআই প্ল্যাটফর্মের জন্য একটি পরিষেবা অ্যাকাউন্ট তৈরি করুন। আপনার প্রকল্পে একটি বিদ্যমান পরিষেবা অ্যাকাউন্ট থাকলে এই পদক্ষেপটি এড়িয়ে যান।
gcloud beta services identity create --service=aiplatform.googleapis.com --project=$projectnumber
ক্লাউড শেলের ভিতরে, compute.networkAdmin ভূমিকা সহ পরিষেবা এজেন্ট অ্যাকাউন্ট আপডেট করুন।
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:service-$projectnumber@gcp-sa-aiplatform.iam.gserviceaccount.com" --role="roles/compute.networkAdmin"
ক্লাউড শেলের ভিতরে, dns.peer ভূমিকা সহ পরিষেবা এজেন্ট অ্যাকাউন্ট আপডেট করুন
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:service-$projectnumber@gcp-sa-aiplatform.iam.gserviceaccount.com" --role="roles/dns.peer"
ডিফল্ট পরিষেবা অ্যাকাউন্ট আপডেট
Compute Engine API সক্ষম করুন এবং Vertex AI-তে আপনার ডিফল্ট পরিষেবা অ্যাকাউন্ট অ্যাক্সেস মঞ্জুর করুন । নোট করুন যে অ্যাক্সেস পরিবর্তনটি প্রচার হতে কিছুটা সময় লাগতে পারে৷
ক্লাউড শেলের ভিতরে, ভূমিকা aiplatform.user দিয়ে ডিফল্ট পরিষেবা অ্যাকাউন্ট আপডেট করুন
gcloud projects add-iam-policy-binding $projectid \
--member="serviceAccount:$projectnumber-compute@developer.gserviceaccount.com" \
--role="roles/aiplatform.user"
ক্লাউড শেলের ভিতরে, রোল store.admin দিয়ে ডিফল্ট পরিষেবা অ্যাকাউন্ট আপডেট করুন
gcloud projects add-iam-policy-binding $projectid \
--member="serviceAccount:$projectnumber-compute@developer.gserviceaccount.com" \
--role="roles/storage.admin"
ক্লাউড শেলের ভিতরে, রোল store.admin দিয়ে ডিফল্ট পরিষেবা অ্যাকাউন্ট আপডেট করুন
gcloud projects add-iam-policy-binding $projectid \
--member="serviceAccount:$projectnumber-compute@developer.gserviceaccount.com" \
--role="roles/artifactregistry.admin"
12. Tcpdump সক্ষম করুন
Vertex AI পাইপলাইন থেকে IP সংযোগ যাচাই করতে, আমরা TCPDUMP ব্যবহার করতে পারি। এটি আমাদেরকে PSC নেটওয়ার্ক অ্যাটাচমেন্ট সাবনেট, 192.168.10.0/28 থেকে উদ্ভূত যোগাযোগ পর্যবেক্ষণ করার অনুমতি দেবে যখন Vertex AI পাইপলাইন থেকে vm, class-e-vm.demo.com (240.0.0.0/4) এর কাছে অনুরোধ জানানো হবে।
ক্লাউড শেল ssh থেকে প্রক্সি ভিএম-এ।
gcloud compute ssh --zone us-central1-a "proxy-vm" --tunnel-through-iap --project $projectid
প্রক্সি-ভিএম ওএস থেকে ক্লাস-ই-ভিএম এবং পিএসসি নেটওয়ার্ক সংযুক্তি সাবনেটে tcpdump ফিল্টারিং চালান।
sudo tcpdump -i any net 240.0.0.0/4 or 192.168.10.0/28 -nn
একটি নতুন ক্লাউড শেল ট্যাব খুলুন, আপনার প্রজেক্ট ভেরিয়েবল আপডেট করুন এবং ক্লাস-ই-ভিএম-এ ssh করুন
gcloud compute ssh --zone us-central1-a "class-e-vm" --tunnel-through-iap --project $projectid
ক্লাস-ই-ভিএম ওএস থেকে প্রক্সি-ভিএম সাবনেটে tcpdump ফিল্টারিং চালান।
sudo tcpdump -i any net 10.10.10.0/28 -nn
13. ভার্টেক্স এআই পাইপলাইন কাজ স্থাপন করুন
নিম্নলিখিত বিভাগে, আপনি Vertex AI পাইপলাইন থেকে স্পষ্ট প্রক্সিতে একটি সফল wget সম্পাদন করার জন্য একটি নোটবুক তৈরি করবেন। এটি আপনাকে নন-RFC 1918 VM-এ পৌঁছানোর অনুমতি দেয়, যেমন ক্লাস-ই-ভিএম। rfc1918-vm অ্যাক্সেস করার জন্য Vertex AI পাইপলাইনগুলির জন্য একটি স্পষ্ট প্রক্সির প্রয়োজন নেই, কারণ এর লক্ষ্য হল একটি RFC 1918 IP ঠিকানা৷
ভার্টেক্স এআই ওয়ার্কবেঞ্চ উদাহরণে প্রশিক্ষণের কাজটি চালান।
- Google ক্লাউড কনসোলে, Vertex AI Workbench পৃষ্ঠার ইনস্ট্যান্স ট্যাবে যান।
- আপনার Vertex AI ওয়ার্কবেঞ্চ ইনস্ট্যান্সের নামের পাশে (ওয়ার্কবেঞ্চ-টিউটোরিয়াল), JupyterLab খুলুন ক্লিক করুন। আপনার ভার্টেক্স এআই ওয়ার্কবেঞ্চের উদাহরণ জুপিটারল্যাবে খোলে।
- ফাইল > নতুন > নোটবুক নির্বাচন করুন
- কার্নেল > পাইথন 3 নির্বাচন করুন
আপনার JupyterLab নোটবুকে, একটি নতুন সেল তৈরি করুন এবং নিম্নলিখিতটি চালান।
# Install gcloud
!pip install google-cloud
# Install the pipeline required packages
!pip install --upgrade google-cloud-aiplatform \
google-cloud-storage \
kfp \
google-cloud-pipeline-components
# Import libraries
from time import gmtime, strftime
import json
import requests
আপনার JupyterLab নোটবুকে, একটি নতুন সেল তৈরি করুন, আপডেট করুন এবং নিম্নলিখিতগুলি চালান৷ আপনার পরিবেশের বিবরণ সহ PROJECT_ID আপডেট করা নিশ্চিত করুন৷
import json
import requests
import pprint
PROJECT_ID = 'YOUR-PROJECT-ID' #Enter your project ID
PROJECT_NUMBER=!gcloud projects list --filter="project_id:$PROJECT_ID" --format="value(PROJECT_NUMBER)"
PROJECT_NUMBER=str(PROJECT_NUMBER).strip('[').strip(']').strip("'")
print(PROJECT_NUMBER)
আপনার JupyterLab নোটবুকে, একটি নতুন সেল তৈরি করুন এবং নিম্নলিখিতটি চালান।
# us-central1 is used for the codelab
REGION = "us-central1" #@param {type:"string"}
SERVICE_NAME = "aiplatform" #@param {type:"string"}
SERVICE ="{}.googleapis.com".format(SERVICE_NAME)
ENDPOINT="{}-{}.googleapis.com".format(REGION, SERVICE_NAME)
API_VERSION = "v1" # @param {type: "string"}
LOCATION = REGION
আপনার JupyterLab নোটবুকে, একটি নতুন সেল তৈরি করুন এবং নীচের কনফিগারেশনটি চালান, নিম্নলিখিত হাইলাইটগুলি নোট করুন:
- proxy_server = "http://proxy-vm.demo.com:8888" FQDN ভোক্তা VPC-তে স্থাপন করা প্রক্সি vm-এর সাথে যুক্ত। আমরা পরবর্তী ধাপে FQDN সমাধান করতে DNS পিয়ারিং ব্যবহার করছি।
%%writefile main.py
import logging
import socket
import sys
import os
def make_api_request(url: str, proxy_vm_ip: str, proxy_vm_port: str):
"""
Makes a GET request to a non-rfc1918 API and saves the response.
Args:
url: The URL of the API to send the request to.
"""
import requests
try:
# response = requests.get(url)
proxy_server = f"http://proxy-vm.demo.com:8888" # replace with you VM's IP and proxy port.
proxies = {
"http": proxy_server,
"https": proxy_server,
}
response = requests.get(url, proxies=proxies)
logging.info(response.text)
response.raise_for_status() # Raise an exception for bad status codes
logging.info(f"Successfully fetched data from {url}")
except requests.exceptions.RequestException as e:
logging.error(f"An error occurred: {e}")
raise e
if __name__ == '__main__':
# Configure logging to print clearly to the console
logging.basicConfig(
level=logging.INFO,
format='%(levelname)s: %(message)s',
stream=sys.stdout
)
url_to_test = os.environ['NONRFC_URL']
proxy_vm_ip = os.environ['PROXY_VM_IP']
proxy_vm_port = os.environ['PROXY_VM_PORT']
logging.info(f"url_to_test: {url_to_test}")
logging.info(f"proxy_vm_ip: {proxy_vm_ip}")
logging.info(f"proxy_vm_port: {proxy_vm_port}")
make_api_request(url_to_test, proxy_vm_ip, proxy_vm_port)
আপনার JupyterLab নোটবুকে, একটি নতুন সেল তৈরি করুন এবং নিম্নলিখিতটি চালান।
%%writefile Dockerfile
FROM python:3.9-slim
RUN apt-get update && \
apt-get install -y iputils-ping && \
apt-get install -y wget
RUN pip install cloudml-hypertune requests kfp
COPY main.py /main.py
ENTRYPOINT ["python3", "/main.py"]
আপনার JupyterLab নোটবুকে, একটি নতুন সেল তৈরি করুন এবং নিম্নলিখিতটি চালান।
!gcloud artifacts repositories create pipelines-test-repo-psc --repository-format=docker --location=us-central1
আপনার JupyterLab নোটবুকে, একটি নতুন সেল তৈরি করুন এবং নিম্নলিখিতটি চালান।
IMAGE_PROJECT = PROJECT_ID
IMAGE_REPO = 'pipelines-test-repo-psc'
IMAGE_NAME = 'nonrfc-ip-call'
TAG = 'v1'
IMAGE_URI= f'us-central1-docker.pkg.dev/{IMAGE_PROJECT}/{IMAGE_REPO}/{IMAGE_NAME}:{TAG}'
IMAGE_URI
আপনার JupyterLab নোটবুকে, একটি নতুন সেল তৈরি করুন এবং নিম্নলিখিতটি চালান।
!gcloud auth configure-docker us-docker.pkg.dev --quiet
আপনার JupyterLab নোটবুকে, একটি নতুন সেল তৈরি করুন এবং নিম্নলিখিতটি চালান। উপস্থিত থাকলে ত্রুটিটি (gcloud.builds.submit) উপেক্ষা করুন।
!gcloud builds submit --tag {IMAGE_URI} --region=us-central1
আপনার JupyterLab নোটবুকে, নীচের সেলটি তৈরি করুন এবং চালান, নিম্নলিখিত হাইলাইটগুলি নোট করুন:
- ডিএনএস পিয়ারিং টু কনজিউমার ভিপিসি ডোমেন নামের demo.com এর জন্য dnsPeeringConfigs (dnsPeeringConfigs) ব্যবহার করে কনফিগার করা হয়েছে।
- সুস্পষ্ট প্রক্সি, পরিবর্তনশীল PROXY_VM_IP হিসাবে সংজ্ঞায়িত, হল proxy-vm.demo.com৷ ভোক্তার ভিপিসির মধ্যে ডিএনএস পিয়ারিংয়ের মাধ্যমে রেজোলিউশন পরিচালনা করা হয়।
- পোর্ট 8888 হল লিসেনিং পোর্ট (ডিফল্ট) টিনিপ্রক্সিতে কনফিগার করা
- Wget to class-e-vm-demo.com ডিএনএস পিয়ারিংয়ের মাধ্যমে সমাধান করা হয়
- কোডটি Vertex-এর জন্য "psc-network-attachment" নির্দিষ্ট করে, এটি দুটি PSC ইন্টারফেস দৃষ্টান্ত স্থাপন করতে নেটওয়ার্ক সংযুক্তি সাবনেট ব্যবহার করতে সক্ষম করে।
import json
from datetime import datetime
JOB_ID_PREFIX='test_psci-nonRFC' #@param {type:"string"}
JOB_ID = '{}_{}'.format(JOB_ID_PREFIX, datetime.now().strftime("%Y%m%d%H%M%S"))
# PSC-I configs
PRODUCER_PROJECT_ID = PROJECT_ID
DNS_DOMAIN = 'class-e-vm.demo.com' #@param {type:"string"}
NON_RFC_URL = f"http://{DNS_DOMAIN}"
PROXY_VM_IP = "proxy-vm.demo.com" #@param {type:"string"}
PROXY_VM_PORT = "8888" #@param {type:"string"}
CUSTOM_JOB = {
"display_name": JOB_ID,
"job_spec": {
"worker_pool_specs": [
{
"machine_spec": {
"machine_type": "n1-standard-4",
},
"replica_count": 1,
"container_spec": {
"image_uri": IMAGE_URI,
"env": [{
"name": "NONRFC_URL",
"value": NON_RFC_URL
},
{
"name": "PROXY_VM_IP",
"value": PROXY_VM_IP
},
{
"name": "PROXY_VM_PORT",
"value": PROXY_VM_PORT
}]
},
},
],
"enable_web_access": True,
"psc_interface_config": {
"network_attachment": "psc-network-attachment",
"dns_peering_configs": [
{
"domain": "demo.com.",
"target_project": PROJECT_ID,
"target_network": "consumer-vpc"
},
]
},
}
}
print(json.dumps(CUSTOM_JOB, indent=2))
আপনার JupyterLab নোটবুকে, একটি নতুন সেল তৈরি করুন এবং নিম্নলিখিতটি চালান।
import requests
bearer_token = !gcloud auth application-default print-access-token
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {}'.format(bearer_token[0]),
}
request_uri = f"https://{REGION}-aiplatform.googleapis.com/{API_VERSION}/projects/{PROJECT_NUMBER}/locations/{REGION}/customJobs/"
print("request_uri: ", request_uri)
আপনার JupyterLab নোটবুকে, একটি নতুন সেল তৈরি করুন এবং নিম্নলিখিতটি চালান।
response_autopush = requests.post(request_uri, json=CUSTOM_JOB, headers=headers)
response = response_autopush
print("response:", response)
if response.reason == 'OK':
job_name = response.json()['name']
job_id = job_name.split('/')[-1]
print("Created Job: ", response.json()['name'])
else:
print(response.text)
আপনার JupyterLab নোটবুকে, একটি নতুন সেল তৈরি করুন এবং নিম্নলিখিতটি চালান।
# Print KFP SDK version (should be >= 1.6)
! python3 -c "import kfp; print('KFP SDK version: {}'.format(kfp.__version__))"
# Print AI Platform version
! python3 -c "from google.cloud import aiplatform; print('AI Platform version: {}'.format(aiplatform.__version__))"
আপনার JupyterLab নোটবুকে, একটি নতুন সেল তৈরি করুন এবং নিম্নলিখিতটি চালান।
BUCKET_URI = "your-unique-bucket" # Provide a globally unique bucket name
আপনার JupyterLab নোটবুকে, একটি নতুন সেল তৈরি করুন এবং নিম্নলিখিতটি চালান।
!gcloud storage buckets create gs://{BUCKET_URI}
আপনার JupyterLab নোটবুকে, একটি নতুন সেল তৈরি করুন এবং নিম্নলিখিতটি চালান।
# pipeline parameters
CACHE_PIPELINE = False # @param {type: "string"}
_DEFAULT_IMAGE = IMAGE_URI
BUCKET_URI = "gs://{BUCKET_URI}" # @param {type: "string"}
PIPELINE_ROOT = f"{BUCKET_URI}/pipeline_root/intro"
PIPELINE_DISPLAY_NAME = "pipeline_nonRFCIP" # @param {type: "string"}
আপনার JupyterLab নোটবুকে, একটি নতুন সেল তৈরি করুন এবং নিম্নলিখিতটি চালান।
from re import S
import kfp
from kfp import dsl
from kfp.dsl import container_component, ContainerSpec
from kfp import compiler
from google.cloud import aiplatform
# ==== Component with env variable ====
@container_component
def dns_peering_test_op(dns_domain: str, proxy_vm_ip:str, proxy_vm_port:str):
return ContainerSpec(
image=_DEFAULT_IMAGE,
command=["bash", "-c"],
args=[
"""
apt-get update && apt-get install inetutils-traceroute inetutils-ping netcat-openbsd curl -y
echo "Local IP(s): $(hostname -I)"
echo "Attempting to trace route to %s"
traceroute -w 1 -m 7 "%s"
echo "Sending curl requests to http://%s via proxy %s:%s and recording trace..."
if curl -L -v --trace-ascii /dev/stdout -x http://%s:%s "http://%s"; then
echo "Curl request succeeded!"
else
echo "Curl request failed!"
exit 1
fi
""" % (dns_domain, dns_domain, dns_domain, proxy_vm_ip, proxy_vm_port, proxy_vm_ip, proxy_vm_port, dns_domain)
]
)
# ==== Pipeline ====
@dsl.pipeline(
name="dns-peering-test-pipeline",
description="Test DNS Peering using env variable",
pipeline_root=PIPELINE_ROOT,
)
def dns_peering_test_pipeline(dns_domain: str, proxy_vm_ip:str, proxy_vm_port:str):
dns_test_task = dns_peering_test_op(dns_domain=dns_domain, proxy_vm_ip=proxy_vm_ip, proxy_vm_port=proxy_vm_port)
dns_test_task.set_caching_options(enable_caching=CACHE_PIPELINE)
# ==== Compile pipeline ====
if __name__ == "__main__":
aiplatform.init(project=PROJECT_ID, location=LOCATION)
compiler.Compiler().compile(
pipeline_func=dns_peering_test_pipeline,
package_path="dns_peering_test_pipeline.yaml",
)
print("✅ Pipeline compiled to dns_peering_test_pipeline.yaml")
আপনার JupyterLab নোটবুকে, একটি নতুন সেল তৈরি করুন এবং নিম্নলিখিতটি চালান।
# Define the PipelineJob body; see API Reference https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.pipelineJobs/create
import requests, json
import datetime
bearer_token = !gcloud auth application-default print-access-token
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {}'.format(bearer_token[0]),
}
request_uri = f"https://{REGION}-aiplatform.googleapis.com/{API_VERSION}/projects/{PROJECT_NUMBER}/locations/{REGION}/pipelineJobs/"
print("request_uri: ", request_uri)
14. PSC ইন্টারফেস বৈধতা
এছাড়াও আপনি নিম্নলিখিতগুলিতে নেভিগেট করে Vertax AI পাইপলাইন দ্বারা ব্যবহৃত নেটওয়ার্ক সংযুক্তি আইপিগুলি দেখতে পারেন:
নেটওয়ার্ক পরিষেবা → ব্যক্তিগত পরিষেবা সংযোগ → নেটওয়ার্ক সংযুক্তি → psc-নেটওয়ার্ক-সংযুক্তি
ভাড়াটে প্রকল্প নির্বাচন করুন (প্রকল্পের নাম -tp-এ শেষ)
হাইলাইট করা ক্ষেত্রটি PSC নেটওয়ার্ক সংযুক্তি থেকে Vertex AI পাইপলাইন দ্বারা ব্যবহৃত IP ঠিকানা নির্দেশ করে।
15. ক্লাউড লগিং বৈধতা
ভার্টেক্স এআই পাইপলাইন কাজটি প্রথমবার চালাতে প্রায় 14 মিনিট সময় লাগবে, পরবর্তী রানগুলি অনেক কম। একটি সফল ফলাফল যাচাই করতে নিম্নলিখিত সম্পাদন করুন:
Vertex AI → প্রশিক্ষণ → কাস্টম চাকরিতে নেভিগেট করুন
নির্বাহিত কাস্টম কাজ নির্বাচন করুন
দেখুন লগ নির্বাচন করুন
একবার ক্লাউড লগিং উপলব্ধ হলে, রান কোয়েরি নির্বাচন করুন যা নীচে হাইলাইট করা নির্বাচন তৈরি করে যা Vertex AI পাইপলাইন থেকে ক্লাস-e-vm-এ একটি সফল wget নিশ্চিত করে৷
16. TCPDump বৈধতা
আসুন TCPDUMP আউটপুট পর্যালোচনা করি যা দৃষ্টান্ত গণনার সংযোগকে আরও বৈধ করে:
proxy-vm থেকে HTTP GET এবং 200 OK পর্যবেক্ষণ করুন
03:05:34.778574 ens4 Out IP 10.10.10.2.40326 > 240.0.0.2.80: Flags [P.], seq 1:63, ack 1, win 511, options [nop,nop,TS val 1435446009 ecr 2475360885], length 62: HTTP: GET / HTTP/1.0 03:05:34.778946 ens4 In IP 240.0.0.2.80 > 10.10.10.2.40326: Flags [.], ack 63, win 506, options [nop,nop,TS val 2475360889 ecr 1435446009], length 0 03:05:34.778974 ens4 Out IP 10.10.10.2.40326 > 240.0.0.2.80: Flags [P.], seq 63:185, ack 1, win 511, options [nop,nop,TS val 1435446010 ecr 2475360889], length 122: HTTP 03:05:34.781999 ens4 In IP 240.0.0.2.80 > 10.10.10.2.40326: Flags [.], ack 185, win 506, options [nop,nop,TS val 2475360892 ecr 1435446010], length 0 03:05:34.906678 ens4 In IP 240.0.0.2.80 > 10.10.10.2.40326: Flags [P.], seq 1:265, ack 185, win 506, options [nop,nop,TS val 2475361016 ecr 1435446010], length 264: HTTP: HTTP/1.1 200 OK
ক্লাস-ই-ভিএম থেকে HTTP GET এবং 200 OK পর্যবেক্ষণ করুন
03:05:34.778768 ens4 In IP 10.10.10.2.40326 > 240.0.0.2.80: Flags [P.], seq 1:63, ack 1, win 511, options [nop,nop,TS val 1435446009 ecr 2475360885], length 62: HTTP: GET / HTTP/1.0 03:05:34.778819 ens4 Out IP 240.0.0.2.80 > 10.10.10.2.40326: Flags [.], ack 63, win 506, options [nop,nop,TS val 2475360889 ecr 1435446009], length 0 03:05:34.781815 ens4 In IP 10.10.10.2.40326 > 240.0.0.2.80: Flags [P.], seq 63:185, ack 1, win 511, options [nop,nop,TS val 1435446010 ecr 2475360889], length 122: HTTP 03:05:34.781856 ens4 Out IP 240.0.0.2.80 > 10.10.10.2.40326: Flags [.], ack 185, win 506, options [nop,nop,TS val 2475360892 ecr 1435446010], length 0 03:05:34.906503 ens4 Out IP 240.0.0.2.80 > 10.10.10.2.40326: Flags [P.], seq 1:265, ack 185, win 506, options [nop,nop,TS val 2475361016 ecr 1435446010], length 264: HTTP: HTTP/1.1 200 OK
17. পরিষ্কার করুন
ক্লাউড শেল থেকে, টিউটোরিয়াল উপাদানগুলি মুছুন।
gcloud compute instances delete proxy-vm --zone=us-central1-a --quiet
gcloud compute instances delete workbench-tutorial --zone=us-central1-a --quiet
gcloud compute routers delete cloud-router-for-nat --region=us-central1 --quiet
gcloud compute network-attachments delete psc-network-attachment --region=us-central1 --quiet
gcloud compute networks subnets delete intf-subnet rfc1918-subnet1 --region=us-central1 --quiet
gcloud dns record-sets delete class-e-vm.demo.com --zone=private-dns-codelab --type=A
gcloud dns record-sets delete proxy-vm.demo.com --zone=private-dns-codelab --type=A
gcloud dns managed-zones delete private-dns-codelab
gcloud compute networks delete consumer-vpc --quiet
18. অভিনন্দন
অভিনন্দন, আপনি সফলভাবে Vertex AI পাইপলাইনগুলির সাথে একটি ব্যক্তিগত পরিষেবা সংযোগ ইন্টারফেস কনফিগার এবং যাচাই করেছেন৷
আপনি ভোক্তা পরিকাঠামো তৈরি করেছেন, এবং আপনি একটি নেটওয়ার্ক সংযুক্তি যোগ করেছেন যা প্রযোজককে ভোক্তা এবং প্রযোজকের যোগাযোগ সেতু করার জন্য একটি মাল্টি nic vm তৈরি করার অনুমতি দেয়৷ আপনি ভোক্তা ভিপিসি নেটওয়ার্কে একটি স্পষ্ট প্রক্সি স্থাপন করার সময় কীভাবে DNS পিয়ারিং তৈরি করতে হয় তা শিখেছেন যা সরাসরি ভার্টেক্স থেকে রাউটেবল নয় এমন ক্লাস-ই-ভিএম উদাহরণে সংযোগের অনুমতি দেয়।
কসমোপআপ মনে করে টিউটোরিয়ালগুলি দুর্দান্ত!!
এরপর কি?
আরও পড়া এবং ভিডিও
রেফারেন্স ডক্স
- ভার্টেক্স এআই নেটওয়ার্কিং অ্যাক্সেস ওভারভিউ | গুগল ক্লাউড
- প্রাইভেট সার্ভিস কানেক্ট ইন্টারফেসের মাধ্যমে Vertex AI পরিষেবাগুলি অ্যাক্সেস করার বিষয়ে | গুগল ক্লাউড
- ভার্টেক্স এআই প্রশিক্ষণের জন্য ব্যক্তিগত পরিষেবা সংযোগ ইন্টারফেস ব্যবহার করুন | গুগল ক্লাউড
- Vertex AI সংস্থানগুলির জন্য একটি ব্যক্তিগত পরিষেবা সংযোগ ইন্টারফেস সেট আপ করুন | গুগল ক্লাউড