Vertex AI ব্যক্তিগতভাবে PSC ব্যবহার করে অনলাইন ভবিষ্যদ্বাণীর শেষ পয়েন্টগুলি অ্যাক্সেস করে

1. ভূমিকা

অন-প্রিমিসেস হোস্টরা পাবলিক ইন্টারনেটের মাধ্যমে স্থানীয়ভাবে একটি অনলাইন ভবিষ্যদ্বাণীতে পৌঁছাতে পারে (বিকল্প 1) অথবা ক্লাউড ভিপিএন বা ক্লাউড ইন্টারকানেক্ট উইথ প্রাইভেট সার্ভিস কানেক্ট (PSC) (বিকল্প 2) ব্যবহার করে, উভয়ই SSL/TLS এনক্রিপশন অফার করে। . আন্তঃসংযোগের মাধ্যমে অনলাইন ভবিষ্যদ্বাণীতে হাইব্রিড সংযোগ ইন্টারনেটের চেয়ে বেশি পারফরম্যান্স তাই চিত্র 1-এ দেখানো সমালোচনামূলক অ্যাপ্লিকেশনের জন্য সুপারিশ করা হয়েছে।

এই টিউটোরিয়ালে আমরা দেখাব কিভাবে হাই-অ্যাভেলেবিলিটি VPN (HA VPN) ব্যবহার করতে হয় দুইটি VPC নেটওয়ার্কের মধ্যে ব্যক্তিগতভাবে অনলাইন ভবিষ্যদ্বাণী অ্যাক্সেস করতে যা মাল্টি-ক্লাউড এবং অন-প্রিমিসেস প্রাইভেট সংযোগের ভিত্তি হিসাবে কাজ করতে পারে।

দ্রষ্টব্য, Vertex Online Prediction হল একটি সর্বজনীন এন্ডপয়েন্ট, তাই আপনি Vertex এবং অন্যান্য Googleapis-এ অ্যাক্সেসের অনুমতি দিতে বা অস্বীকার করার জন্য নিরাপদ পরিধি তৈরি করতে VPC পরিষেবা নিয়ন্ত্রণ (VPC-SC) ব্যবহার করে অ্যাক্সেস সীমাবদ্ধ করতে চান। এই টিউটোরিয়াল VPC-SC কভার করে না, আরও বিশদ বিবরণের জন্য Vertex AI এর সাথে VPC পরিষেবা নিয়ন্ত্রণগুলি উল্লেখ করুন

24a07ba49a7bcb16.png

আপনি কি নির্মাণ করবেন

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

আপনি একটি বিস্তৃত প্রাইভেট সার্ভিস কানেক্ট আর্কিটেকচার তৈরি করতে যাচ্ছেন যা ক্লাউড NAT-এর মাধ্যমে সর্বজনীনভাবে অনলাইন ভবিষ্যদ্বাণী অ্যাক্সেস করার এবং HA VPN-এর উপরে PSC ব্যবহার করে নীচের বিশদ বিবরণ অনুযায়ী চিত্রিত করে।

b545c808b366341a.png

একবার Google ক্লাউড প্রকল্পে অনলাইন ভবিষ্যদ্বাণী স্থাপন করা হলে নিম্নলিখিত ব্যবহারের ক্ষেত্রে অন্বেষণ করা হবে:

অনলাইন ভবিষ্যদ্বাণীতে সর্বজনীন অ্যাক্সেস, নিম্নলিখিতগুলি নিয়ে গঠিত:

  • একটি GCE ইন্সট্যান্স (nat-ক্লায়েন্ট) তৈরি করুন যা প্রস্থান ইন্টারনেট অ্যাক্সেসের জন্য NAT ব্যবহার করে
  • মডেলের বিরুদ্ধে অনুমান করতে CURL ব্যবহার করুন
  • অনলাইন ভবিষ্যদ্বাণী একটি পাবলিক VIP এর মাধ্যমে অ্যাক্সেস করা হয়েছে তা যাচাই করতে TCPDUMP ব্যবহার করুন

অনলাইন ভবিষ্যদ্বাণীতে ব্যক্তিগত অ্যাক্সেস, নিম্নলিখিতগুলি নিয়ে গঠিত:

  • প্রোজেক্টে একটি Vertex অনলাইন ভবিষ্যদ্বাণী শেষ পয়েন্টে একটি মডেল স্থাপন করুন
  • aiml-vpc-এ একটি প্রাইভেট সার্ভিস কানেক্ট (Googleapis) এন্ডপয়েন্ট তৈরি করুন
  • অন-প্রিম ভিপিসি-তে কাস্টম বিজ্ঞাপন হিসাবে ক্লাউড রাউটারে PSC IP ঠিকানা রপ্তানি করুন
  • একটি GCE ইন্সট্যান্স (প্রাইভেট-ক্লায়েন্ট) তৈরি করুন এবং PSC এন্ডপয়েন্ট আইপি দিয়ে ইত্যাদি/হোস্ট ফাইল আপডেট করুন
  • মডেলের বিরুদ্ধে অনুমান করতে CURL ব্যবহার করুন
  • PSC এন্ডপয়েন্ট IP ঠিকানার মাধ্যমে অনলাইন ভবিষ্যদ্বাণী অ্যাক্সেস করা হয়েছে তা যাচাই করতে TCPDUMP ব্যবহার করুন

আপনি কি শিখবেন

  • কিভাবে একটি প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট স্থাপন করবেন
  • ক্লাউড রাউটারে কিভাবে PSC এন্ডপয়েন্ট আইপির বিজ্ঞাপন দিতে হয়
  • অনলাইন ভবিষ্যদ্বাণী অ্যাক্সেস বৈধ করতে TCPDUMP কীভাবে ব্যবহার করবেন, পাবলিক এবং প্রাইভেট উভয়ই

আপনি কি প্রয়োজন হবে

  • গুগল ক্লাউড প্রকল্প

আইএএম অনুমতি

কম্পিউট নেটওয়ার্ক অ্যাডমিন

পরিষেবা ডিরেক্টরি সম্পাদক

DNS প্রশাসক

নেটওয়ার্ক অ্যাডমিন

কোটা প্রশাসক

নোটবুক অ্যাডমিন

পরিষেবা অ্যাকাউন্ট ব্যবহারকারী

স্টোরেজ অ্যাডমিনিস্ট্রেটর

ভার্টেক্স এআই ব্যবহারকারী

সার্ভিস অ্যাকাউন্ট অ্যাডমিন

2. আপনি শুরু করার আগে

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

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

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

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

3. পরিষেবাগুলি সক্ষম করুন৷

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

gcloud services enable dns.googleapis.com
gcloud services enable aiplatform.googleapis.com
gcloud services enable iam.googleapis.com 
gcloud services enable compute.googleapis.com 
gcloud services enable notebooks.googleapis.com

4. aiml-vpc সেটআপ

aiml-vpc তৈরি করুন

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

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

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

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

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

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

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

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

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

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

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

5. অন-প্রিম-ভিপিসি সেটআপ

অন-প্রিম-ভিপিসি তৈরি করুন

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

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

ন্যাট-সাবনেট তৈরি করুন

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

gcloud compute networks subnets create nat-subnet --project=$projectid --range=192.168.10.0/28 --network=on-prem-vpc --region=us-central1

ব্যক্তিগত-আইপি-সাবনেট তৈরি করুন

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

gcloud compute networks subnets create private-ip-subnet --project=$projectid --range=192.168.20.0/28 --network=on-prem-vpc --region=us-central1

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

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

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

gcloud compute routers create cloud-router-us-central1-on-prem-nat --network on-prem-vpc --region us-central1

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

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

6. প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট তৈরি করুন

নিম্নলিখিত বিভাগে, আপনি একটি প্রাইভেট সার্ভিস কানেক্ট (PSC) এন্ডপয়েন্ট তৈরি করবেন যা on-prem-vpc থেকে Vertex API অ্যাক্সেস করতে ব্যবহার করা হবে। PSC IP ঠিকানা 100.100.10.10 একটি আসন্ন ধাপে একটি কাস্টম রাউটারের বিজ্ঞাপন হিসাবে aiml-vpc-Cloud-router-vpn থেকে অন-প্রিমিসেস নেটওয়ার্কে বিজ্ঞাপন দেওয়া হবে৷

ক্লাউড শেল থেকে

gcloud compute addresses create psc-ip \
    --global \
    --purpose=PRIVATE_SERVICE_CONNECT \
    --addresses=100.100.10.10 \
    --network=aiml-vpc

PSC এন্ডপয়েন্ট তৈরি করুন

ক্লাউড শেল থেকে

gcloud compute forwarding-rules create pscvertex \
    --global \
    --network=aiml-vpc \
    --address=psc-ip \
    --target-google-apis-bundle=all-apis

কনফিগার করা প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট তালিকা করুন

ক্লাউড শেল থেকে

gcloud compute forwarding-rules list  \
--filter target="(all-apis OR vpc-sc)" --global

কনফিগার করা প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট বর্ণনা করুন

ক্লাউড শেল থেকে

gcloud compute forwarding-rules describe \
    pscvertex --global

7. হাইব্রিড সংযোগ

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

ক্লাউড রাউটার আপনার নেটওয়ার্কগুলিকে সংযুক্ত করতে একটি ক্লাউড ভিপিএন টানেলে একটি BGP সেশন সেট আপ করতে পারে৷ এটি স্বয়ংক্রিয়ভাবে নতুন সাবনেট আইপি অ্যাড্রেস রেঞ্জ শিখে এবং আপনার পিয়ার নেটওয়ার্কে সেগুলি ঘোষণা করে৷

টিউটোরিয়ালে আপনি aiml-vpc এবং on-prem-vpc- এর মধ্যে HA VPN স্থাপন করবেন।

aiml-vpc- এর জন্য HA VPN গেটওয়ে তৈরি করুন

যখন প্রতিটি গেটওয়ে তৈরি করা হয়, তখন দুটি বাহ্যিক IPv4 ঠিকানা স্বয়ংক্রিয়ভাবে বরাদ্দ করা হয়, প্রতিটি গেটওয়ে ইন্টারফেসের জন্য একটি।

ক্লাউড শেলের ভিতরে, HA VPN গেটওয়ে তৈরি করুন

gcloud compute vpn-gateways create aiml-vpn-gw \
   --network=aiml-vpc\
   --region=us-central1

অন-প্রিম-ভিপিসির জন্য HA VPN গেটওয়ে তৈরি করুন

যখন প্রতিটি গেটওয়ে তৈরি করা হয়, তখন দুটি বাহ্যিক IPv4 ঠিকানা স্বয়ংক্রিয়ভাবে বরাদ্দ করা হয়, প্রতিটি গেটওয়ে ইন্টারফেসের জন্য একটি। কনফিগারেশন ধাপে পরে ব্যবহার করার জন্য এই আইপি ঠিকানাগুলি নোট করুন।

ক্লাউড শেলের ভিতরে, HA VPN গেটওয়ে তৈরি করুন।

gcloud compute vpn-gateways create on-prem-vpn-gw \
   --network=on-prem-vpc\
   --region=us-central1

HA VPN গেটওয়ে তৈরির বৈধতা দিন

কনসোল ব্যবহার করে, হাইব্রিড সংযোগ → ভিপিএন → ক্লাউড ভিপিএন গেটওয়েতে নেভিগেট করুন এবং গেটওয়ে আইপি তৈরি হয়েছে কিনা তা যাচাই করুন৷

66312b1b53c233d7.png

aiml-vpc-এর জন্য ক্লাউড রাউটার তৈরি করুন

ক্লাউড শেলের ভিতরে, us-central1 এ অবস্থিত ক্লাউড রাউটার তৈরি করুন

gcloud compute routers create aiml-cr-us-central1 \
   --region=us-central1 \
   --network=aiml-vpc\
   --asn=65001

অন-প্রিম-ভিপিসির জন্য ক্লাউড রাউটার তৈরি করুন

ক্লাউড শেলের ভিতরে, us-central1 এ অবস্থিত ক্লাউড রাউটার তৈরি করুন

gcloud compute routers create on-prem-cr-us-central1 \
   --region=us-central1 \
   --network=on-prem-vpc \
   --asn=65002

aiml-vpc-এর জন্য VPN টানেল তৈরি করুন

আপনি প্রতিটি HA VPN গেটওয়েতে দুটি VPN টানেল তৈরি করবেন।

ভিপিএন টানেল 0 তৈরি করুন

ক্লাউড শেলের ভিতরে, টানেল 0 তৈরি করুন:

gcloud compute vpn-tunnels create aiml-vpc-tunnel0 \
    --peer-gcp-gateway on-prem-vpn-gw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
    --router aiml-cr-us-central1 \
    --vpn-gateway aiml-vpn-gw \
    --interface 0

ভিপিএন টানেল 1 তৈরি করুন

ক্লাউড শেলের ভিতরে, টানেল 1 তৈরি করুন:

gcloud compute vpn-tunnels create aiml-vpc-tunnel1 \
    --peer-gcp-gateway on-prem-vpn-gw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
    --router aiml-cr-us-central1 \
    --vpn-gateway aiml-vpn-gw \
    --interface 1

অন-প্রিম-ভিপিসির জন্য ভিপিএন টানেল তৈরি করুন

আপনি প্রতিটি HA VPN গেটওয়েতে দুটি VPN টানেল তৈরি করবেন।

ভিপিএন টানেল 0 তৈরি করুন

ক্লাউড শেলের ভিতরে, টানেল 0 তৈরি করুন:

gcloud compute vpn-tunnels create on-prem-tunnel0 \
    --peer-gcp-gateway aiml-vpn-gw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
    --router on-prem-cr-us-central1 \
    --vpn-gateway on-prem-vpn-gw \
    --interface 0

ভিপিএন টানেল 1 তৈরি করুন

ক্লাউড শেলের ভিতরে, টানেল 1 তৈরি করুন:

gcloud compute vpn-tunnels create on-prem-tunnel1 \
    --peer-gcp-gateway aiml-vpn-gw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
    --router on-prem-cr-us-central1 \
    --vpn-gateway on-prem-vpn-gw \
    --interface 1

ভিপিএন টানেল তৈরির বৈধতা দিন

কনসোল ব্যবহার করে, হাইব্রিড সংযোগ → ভিপিএন → ক্লাউড ভিপিএন টানেলে নেভিগেট করুন।

e8e13ebaed09f1.png

8. BGP প্রতিবেশী স্থাপন

বিজিপি সেশন তৈরি করুন

এই বিভাগে, আপনি ক্লাউড রাউটার ইন্টারফেস এবং BGP পিয়ার কনফিগার করেন।

aiml-vpc-এর জন্য একটি BGP ইন্টারফেস এবং পিয়ারিং তৈরি করুন

ক্লাউড শেলের ভিতরে, BGP ইন্টারফেস তৈরি করুন:

gcloud compute routers add-interface aiml-cr-us-central1 \
    --interface-name if-tunnel0-to-onprem \
    --ip-address 169.254.1.1 \
    --mask-length 30 \
    --vpn-tunnel aiml-vpc-tunnel0 \
    --region us-central1

ক্লাউড শেলের ভিতরে, BGP পিয়ার তৈরি করুন:

gcloud compute routers add-bgp-peer aiml-cr-us-central1 \
    --peer-name bgp-on-premises-tunnel0 \
    --interface if-tunnel1-to-onprem \
    --peer-ip-address 169.254.1.2 \
    --peer-asn 65002 \
    --region us-central1

ক্লাউড শেলের ভিতরে, BGP ইন্টারফেস তৈরি করুন:

gcloud compute routers add-interface aiml-cr-us-central1 \
    --interface-name if-tunnel1-to-onprem \
    --ip-address 169.254.2.1 \
    --mask-length 30 \
    --vpn-tunnel aiml-vpc-tunnel1 \
    --region us-central1

ক্লাউড শেলের ভিতরে, BGP পিয়ার তৈরি করুন:

gcloud compute routers add-bgp-peer aiml-cr-us-central1 \
    --peer-name bgp-on-premises-tunnel1 \
    --interface if-tunnel2-to-onprem \
    --peer-ip-address 169.254.2.2 \
    --peer-asn 65002 \
    --region us-central1

একটি BGP ইন্টারফেস তৈরি করুন এবং অন-প্রেম-ভিপিসির জন্য পিয়ারিং করুন

ক্লাউড শেলের ভিতরে, BGP ইন্টারফেস তৈরি করুন:

gcloud compute routers add-interface on-prem-cr-us-central1 \
    --interface-name if-tunnel0-to-aiml-vpc\
    --ip-address 169.254.1.2 \
    --mask-length 30 \
    --vpn-tunnel on-prem-tunnel0 \
    --region us-central1

ক্লাউড শেলের ভিতরে, BGP পিয়ার তৈরি করুন:

gcloud compute routers add-bgp-peer on-prem-cr-us-central1 \
    --peer-name bgp-aiml-vpc-tunnel0 \
    --interface if-tunnel1-to-aiml-vpc\
    --peer-ip-address 169.254.1.1 \
    --peer-asn 65001 \
    --region us-central1

ক্লাউড শেলের ভিতরে, BGP ইন্টারফেস তৈরি করুন:

gcloud compute routers add-interface on-prem-cr-us-central1 \
    --interface-name if-tunnel1-to-aiml-vpc\
    --ip-address 169.254.2.2 \
    --mask-length 30 \
    --vpn-tunnel on-prem-tunnel1 \
    --region us-central1

ক্লাউড শেলের ভিতরে, BGP পিয়ার তৈরি করুন:

gcloud compute routers add-bgp-peer on-prem-cr-us-central1 \
    --peer-name bgp-aiml-vpc-tunnel1\
    --interface if-tunnel2-to-aiml-vpc\
    --peer-ip-address 169.254.2.1 \
    --peer-asn 65001 \
    --region us-central1

VPN টানেলের বিবরণ দেখতে হাইব্রিড সংযোগ → VPN- এ নেভিগেট করুন।

cb91b4476a88acd3.png

HA VPN এর মাধ্যমে aiml-vpc শেখা রুট যাচাই করুন

কনসোল ব্যবহার করে, ভিপিসি নেটওয়ার্কে নেভিগেট করুন → ভিপিসি নেটওয়ার্ক → aiml-vpc→ রুট → অঞ্চল → US-কেন্দ্রীয়1 → ভিউ

লক্ষ্য করুন aiml-vpc অন-প্রেম-ভিপিসি ন্যাট-সাবনেট এবং প্রাইভেট-আইপি-সাবনেট থেকে রুট শিখেছে

f407ed6e1a6233db.png

যাচাই করুন যে on-prem-vpc HA-VPN এর উপর ওয়ার্কবেঞ্চ-সাবনেট শিখেছে

কনসোল ব্যবহার করে, ভিপিসি নেটওয়ার্কে নেভিগেট করুন → ভিপিসি নেটওয়ার্ক → অন-প্রিম-ভিপিসি → রুট → অঞ্চল → মার্কিন-কেন্দ্রীয়1 → ভিউ

7957e5d898a9e7e0.png

9. কাস্টম রুট বিজ্ঞাপন তৈরি করুন aiml-vpc

প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট আইপি স্বয়ংক্রিয়ভাবে aiml-cr-us-central1 ক্লাউড রাউটার দ্বারা বিজ্ঞাপিত হয় না কারণ সাবনেটটি VPC-তে কনফিগার করা হয়নি।

পরিবর্তে, আপনাকে এন্ডপয়েন্ট আইপি অ্যাড্রেস 100.100.10.10-এর জন্য aiml-cr-us-central ক্লাউড রাউটার থেকে একটি কাস্টম রুটের বিজ্ঞাপন তৈরি করতে হবে যা BGP থেকে অন-প্রিম-ভিপিসি-তে অন-প্রিমিসেস পরিবেশে বিজ্ঞাপন দেওয়া হবে।

কনসোল থেকে হাইব্রিড সংযোগে নেভিগেট করুন → ক্লাউড রাউটার → aiml-cr-us-central1 , তারপরে সম্পাদনা নির্বাচন করুন৷

c8fb02ed59a5b068.png

বিজ্ঞাপিত রুট বিভাগে, কাস্টম রুট তৈরি করুন বিকল্পটি নির্বাচন করুন, নীচের উদাহরণের উপর ভিত্তি করে ক্ষেত্রগুলি আপডেট করুন, সম্পন্ন নির্বাচন করুন এবং তারপরে সংরক্ষণ করুন ক্লিক করুন।

5996464e3aae0665.png

f799082ab2cd7e31.png

বৈধতা

যাচাই করুন যে on-prem-vpc HA-VPN এর উপর PSC এন্ডপয়েন্ট আইপি ঠিকানা শিখেছে

কনসোল ব্যবহার করে, ভিপিসি নেটওয়ার্কে নেভিগেট করুন → ভিপিসি নেটওয়ার্ক → অন-প্রিম-ভিপিসি → রুট → অঞ্চল → মার্কিন-কেন্দ্রীয়1 → ভিউ

1b42673e6f940bf2.png

10. অন-প্রিম-ভিপিসি কাস্টম রুট বিজ্ঞাপন তৈরি করুন

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

নিম্নলিখিত বিভাগে, on-prem-cr-us-central1 ক্লাউড রাউটার থেকে রুটের বিজ্ঞাপন আপডেট করুন।

কনসোল থেকে হাইব্রিড সংযোগে নেভিগেট করুন → ক্লাউড রাউটার → on-prem-cr-us-central1 , তারপর সম্পাদনা নির্বাচন করুন৷

bd96bde9550d516a.png

বিজ্ঞাপিত রুট বিভাগে, কাস্টম রুট তৈরি করুন বিকল্পটি নির্বাচন করুন, নীচের উদাহরণের উপর ভিত্তি করে ক্ষেত্রগুলি আপডেট করুন, সম্পন্ন নির্বাচন করুন এবং তারপরে সংরক্ষণ করুন ক্লিক করুন।

f8b61f669a9cfeef.png

বৈধতা

যাচাই করুন যে aiml-vpc on-prem-vpc থেকে প্রাইভেট-আইপি-সাবনেট রুট শিখেছে।

কনসোল ব্যবহার করে, ভিপিসি নেটওয়ার্কে নেভিগেট করুন → ভিপিসি নেটওয়ার্ক → aiml-vpc → রুট → অঞ্চল → US-কেন্দ্রীয়1 → ভিউ

2b1a7a5f918e9f50.png

11. একটি ব্যবহারকারী পরিচালিত পরিষেবা অ্যাকাউন্ট তৈরি করুন (GCE উদাহরণ)

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

এগিয়ে যাওয়ার আগে আপনাকে অবশ্যই পরিষেবা অ্যাকাউন্ট API

ক্লাউড শেলের ভিতরে, পরিষেবা অ্যাকাউন্ট তৈরি করুন।

gcloud iam service-accounts create gce-vertex-sa \
    --description="service account for vertex" \
    --display-name="gce-vertex-sa"

ক্লাউড শেলের ভিতরে, ভূমিকা কম্পিউট ইনস্ট্যান্স অ্যাডমিনের সাথে পরিষেবা অ্যাকাউন্ট আপডেট করুন

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:gce-vertex-sa@$projectid.iam.gserviceaccount.com" --role="roles/compute.instanceAdmin.v1"

ক্লাউড শেলের ভিতরে, Vertex AI ব্যবহারকারীর ভূমিকা সহ পরিষেবা অ্যাকাউন্ট আপডেট করুন

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

12. একটি ব্যবহারকারী পরিচালিত পরিষেবা অ্যাকাউন্ট তৈরি করুন (নোটবুক)

নিম্নলিখিত বিভাগে, আপনি একটি ব্যবহারকারী পরিচালিত পরিষেবা অ্যাকাউন্ট তৈরি করবেন যা টিউটোরিয়ালটিতে ব্যবহৃত ভার্টেক্স ওয়ার্কবেঞ্চ (নোটবুক) এর সাথে যুক্ত হবে।

টিউটোরিয়ালে, পরিষেবা অ্যাকাউন্টে নিম্নলিখিত ভূমিকাগুলি প্রয়োগ করা হবে:

ক্লাউড শেলের ভিতরে, পরিষেবা অ্যাকাউন্ট তৈরি করুন।

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.admin"

ক্লাউড শেলের ভিতরে, Vertex AI ব্যবহারকারীর ভূমিকা সহ পরিষেবা অ্যাকাউন্ট আপডেট করুন।

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

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

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

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

gcloud iam service-accounts list

13. পরীক্ষার উদাহরণ তৈরি করা হয়েছে

নিম্নলিখিত বিভাগে, আপনি Vertex API-তে পৌঁছানোর জন্য বিভিন্ন পদ্ধতি যাচাই করার জন্য পরীক্ষার উদাহরণ তৈরি করবেন, বিশেষ করে:

  • উদাহরণ, nat-client, ভার্টেক্স এআই সমাধান করতে ক্লাউড ন্যাট ব্যবহার করবে তাই ইন্টারনেটের মাধ্যমে অনলাইন ভবিষ্যদ্বাণী শেষ পয়েন্ট অ্যাক্সেস করবে
  • উদাহরণ, private-client , HA-VPN এর মাধ্যমে অনলাইন ভবিষ্যদ্বাণী শেষ পয়েন্ট অ্যাক্সেস করতে প্রাইভেট সার্ভিস কানেক্ট আইপি 100.100.10.10 ব্যবহার করবে।

ক্লাউড শেলের ভিতরে nat-client উদাহরণ তৈরি করুন।

gcloud compute instances create nat-client \
    --zone=us-central1-a \
    --image-family=debian-11 \
    --image-project=debian-cloud \
    --subnet=nat-subnet \
    --service-account=vertex-sa@$projectid.iam.gserviceaccount.com \
    --scopes=https://www.googleapis.com/auth/cloud-platform \
    --no-address \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install tcpdump dnsutils -y"

ক্লাউড শেলের ভিতরে private-client উদাহরণ তৈরি করুন।

gcloud compute instances create private-client \
    --zone=us-central1-a \
    --image-family=debian-11 \
    --image-project=debian-cloud \
    --subnet=private-ip-subnet \
    --service-account=vertex-sa@$projectid.iam.gserviceaccount.com \
    --scopes=https://www.googleapis.com/auth/cloud-platform \
    --no-address \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install tcpdump dnsutils -y"

Identity-Aware Proxy (IAP) কে আপনার VM দৃষ্টান্তগুলির সাথে সংযোগ করার অনুমতি দিতে , একটি ফায়ারওয়াল নিয়ম তৈরি করুন যা:

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

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

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

14. একটি ব্যবহারকারী পরিচালিত নোটবুক তৈরি করুন৷

নোটবুক API

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

ক্লাউড শেলের ভিতরে ব্যক্তিগত-ক্লায়েন্ট উদাহরণ তৈরি করুন।

gcloud notebooks instances create workbench-tutorial \
      --vm-image-project=deeplearning-platform-release \
      --vm-image-family=common-cpu-notebooks \
      --machine-type=n1-standard-4 \
      --location=us-central1-a \
      --subnet-region=us-central1 \
      --subnet=workbench-subnet \
      --no-public-ip    --service-account=user-managed-notebook-sa@$projectid.iam.gserviceaccount.com

15. মডেল এবং অনলাইন ভবিষ্যদ্বাণী স্থাপন করুন

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

ee68b7ba0cfd2746.png

16. ইন্টারনেটের মাধ্যমে Vertex API-এ অ্যাক্সেস যাচাই করুন

নিম্নলিখিত বিভাগে, আপনি ইনস্ট্যান্স, ন্যাট-ক্লায়েন্ট লগ ইন করবেন এবং Vertex API-এর সমাধান করতে ব্যবহৃত us-central1-aiplatform.googleapis.com ডোমেনের বিরুদ্ধে ডিগ এবং tcpdump ব্যবহারের মাধ্যমে Vertex AI-তে সংযোগ যাচাই করবেন।

ভার্টেক্স ডোমেন us-central1-aiplatform.googleapis.com-এর বিরুদ্ধে একটি খনন সম্পাদন করে Vertex API-এর সাথে সংযোগ যাচাই করতে ক্লাউড শেল-এ IAP ব্যবহার করে nat-ক্লায়েন্টে লগ ইন করুন

gcloud compute ssh nat-client --project=$projectid --zone=us-central1-a --tunnel-through-iap

খনন চালান।

dig us-central1-aiplatform.googleapis.com

উদাহরণ, ডিএনএস প্রতিক্রিয়াতে পাবলিক আইপিগুলি নোট করুন৷

user@nat-client:~$ dig us-central1-aiplatform.googleapis.com

; <<>> DiG 9.16.42-Debian <<>> us-central1-aiplatform.googleapis.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56761
;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;us-central1-aiplatform.googleapis.com. IN A

;; ANSWER SECTION:
us-central1-aiplatform.googleapis.com. 300 IN A 108.177.111.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.250.1.95
us-central1-aiplatform.googleapis.com. 300 IN A 108.177.121.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.250.103.95
us-central1-aiplatform.googleapis.com. 300 IN A 108.177.120.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.251.171.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.250.159.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.251.120.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.251.161.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.251.172.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.126.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.70.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.132.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.201.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.202.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.69.95

;; Query time: 4 msec
;; SERVER: 169.254.169.254#53(169.254.169.254)
;; WHEN: Thu Jun 29 01:35:57 UTC 2023
;; MSG SIZE  rcvd: 322

nat-ক্লায়েন্ট OS থেকে, অনলাইন ভবিষ্যদ্বাণীর বিপরীতে একটি কার্ল সম্পাদন করার সময় DNS রেজোলিউশন যাচাই করতে tcpdump চালান।

 sudo tcpdump -i any port 53 -n

উদাহরণ:

user@nat-client:~$ sudo tcpdump -i any port 53 -n 
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes

"+" নির্বাচন করে একটি নতুন ক্লাউড শেল টার্মিনাল খুলুন। একবার নতুন ট্যাব খোলা হলে, প্রকল্পের নাম পরিবর্তনশীল আপডেট করুন।

ক্লাউড শেলের ভিতরে, প্রকল্পের নাম পরিবর্তনশীল আপডেট করুন।

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

ক্লাউড শেল টু এর ভিতরে, একটি ssh থেকে nat-ক্লায়েন্ট ইনস্ট্যান্স সম্পাদন করুন।

gcloud compute ssh --zone "us-central1-a" "nat-client" --project "$projectid"

নিম্নলিখিত বিভাগে, আপনি sudo VI সম্পাদক বা ন্যানো ব্যবহার করে একটি instance.json ফাইল তৈরি করবেন এবং স্থাপন করা মডেল থেকে একটি ভবিষ্যদ্বাণী পেতে ব্যবহৃত ডেটা স্ট্রিংটি সন্নিবেশ করাবেন।

nat-ক্লায়েন্ট OS থেকে, নীচের ডেটা স্ট্রিং সহ একটি instance.json f ile তৈরি করুন:

{"instances": [
  [0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
  [0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}

উদাহরণ:

user@nat-client:$ more instances.json 
{"instances": [
  [0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
  [0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}

user@nat-client:$

ক্লাউড কনসোল থেকে আপনার অনলাইন পূর্বাভাস এন্ডপয়েন্ট আইডি প্রাপ্ত করুন যা পরবর্তী ধাপে ব্যবহার করা হবে।

VERTEX AI → ONLINE PREDICTION- এ নেভিগেট করুন৷

237d413ccde1e95b.png

nat-ক্লায়েন্ট OS থেকে, নিম্নলিখিত ভেরিয়েবলগুলি তৈরি করুন:

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"

উদাহরণ:

ENDPOINT_ID="3328226095324463104"

nat-ক্লায়েন্ট os থেকে, মডেল থেকে প্রতিক্রিয়া পেতে একটি কার্ল সঞ্চালন করুন৷

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json

উদাহরণ, সফল ভবিষ্যদ্বাণী নোট করুন.

user@nat-client$ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json
{
  "predictions": [
    "$479.0",
    "$586.0"
  ],
  "deployedModelId": "1949163636186415104",
  "model": "projects/234086459238/locations/us-central1/models/947543727654567936",
  "modelDisplayName": "diamonds-cpr",
  "modelVersionId": "1"
}

17. বৈধকরণ - Vertex API-এ ইন্টারনেট অ্যাক্সেস

এখন আপনি ভবিষ্যদ্বাণীটি কার্যকর করেছেন, আসুন TCPDUMP ফলাফলগুলি (টার্মিনাল 1) দেখে নেওয়া যাক যা ইউএসএআই- এর ভার্টেক্স-এআই-এর জন্য স্থানীয় dns সার্ভার 169.254.169.254-এ একটি DNS কোয়েরি সম্পাদন করে ন্যাট-ক্লায়েন্ট উদাহরণ (192.168.10.2) নির্দেশ করে। Central1-aiplatform.googleapis.com । ডিএনএস কোয়েরির ফলাফল হল ভার্টেক্স এপিআই-এর জন্য সর্বজনীন ভার্চুয়াল আইপি অ্যাড্রেস (VIPS) নীচে উল্লিখিত হিসাবে:

user@nat-client:~$ sudo tcpdump -i any port 53 -n
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
20:05:09.260937 ens4  Out IP 192.168.10.2.40782 > 169.254.169.254.53: 47190+ A? oauth2.googleapis.com. (39)
20:05:09.260946 ens4  Out IP 192.168.10.2.40782 > 169.254.169.254.53: 28075+ AAAA? oauth2.googleapis.com. (39)
20:05:09.263556 ens4  In  IP 169.254.169.254.53 > 192.168.10.2.40782: 28075 4/0/0 AAAA 2607:f8b0:4001:c34::5f, AAAA 2607:f8b0:4001:c54::5f, AAAA 2607:f8b0:4001:c16::5f, AAAA 2607:f8b0:4001:c17::5f (151)
20:05:09.265018 ens4  In  IP 169.254.169.254.53 > 192.168.10.2.40782: 47190 16/0/0 A 74.125.201.95, A 74.125.202.95, A 74.125.69.95, A 64.233.183.95, A 173.194.193.95, A 173.194.194.95, A 173.194.195.95, A 173.194.196.95, A 173.194.197.95, A 64.233.191.95, A 173.194.74.95, A 173.194.192.95, A 209.85.145.95, A 209.85.146.95, A 209.85.147.95, A 142.250.125.95 (295)
20:05:09.474478 ens4  Out IP 192.168.10.2.57356 > 169.254.169.254.53: 36008+ A? us-central1-aiplatform.googleapis.com. (55)
20:05:09.474488 ens4  Out IP 192.168.10.2.57356 > 169.254.169.254.53: 47020+ AAAA? us-central1-aiplatform.googleapis.com. (55)
20:05:09.477190 ens4  In  IP 169.254.169.254.53 > 192.168.10.2.57356: 36008 16/0/0 A 173.194.194.95, A 173.194.195.95, A 173.194.196.95, A 173.194.197.95, A 173.194.74.95, A 173.194.192.95, A 209.85.145.95, A 209.85.146.95, A 209.85.147.95, A 142.250.125.95, A 142.250.136.95, A 142.250.148.95, A 209.85.200.95, A 209.85.234.95, A 142.250.152.95, A 142.250.128.95 (311)
20:05:09.478607 ens4  In  IP 169.254.169.254.53 > 192.168.10.2.57356: 47020 4/0/0 AAAA 2607:f8b0:4001:c1b::5f, AAAA 2607:f8b0:4001:c0c::5f, AAAA 2607:f8b0:4001:c0e::5f, AAAA 2607:f8b0:4001:c1e::5f (167)

18. ভার্টেক্স এপিআইগুলিতে ব্যক্তিগত অ্যাক্সেস সক্ষম করুন৷

নিম্নলিখিত বিভাগে, আপনি ব্যক্তিগতভাবে অনলাইন ভবিষ্যদ্বাণীতে পৌঁছানোর জন্য প্রাইভেট সার্ভিস কানেক্ট ওভার হাইব্রিড নেটওয়ার্কিং (HA VPN) ব্যবহার করে Vertex APIগুলি অ্যাক্সেস করবেন। টিউটোরিয়ালে ব্যবহৃত উদাহরণে, আপনি ব্যক্তিগত-ক্লায়েন্ট উদাহরণে /etc/hosts ফাইলটি আপডেট করবেন।

আপনার অন-প্রিমিসেস পরিবেশে পরীক্ষার জন্য একটি একক বা মুষ্টিমেয় মেশিন /etc/hosts ফাইল আপডেট করা উপযুক্ত তবে PSC এন্ডপয়েন্ট FQDN ব্যবহার করে একটি নতুন ফরওয়ার্ডিং জোন তৈরি করা বড় স্কেল এবং উত্পাদন পরিবেশের জন্য আরও বাঞ্ছনীয়।

উদাহরণ হিসেবে, টিউটোরিয়ালে তৈরি করা psc এন্ডপয়েন্টটিকে pscvertex বলা হয় যা pscvertex.p.googleapis.com এ অনুবাদ করে, যখন vertex-এর এন্ডপয়েন্ট ব্যবহার করে FQDN-কে পরিষেবার সাথে যুক্ত করে যেমন us-central1-aiplatform-pscvertex.p.googleapis। com

PSC এন্ডপয়েন্টের সাথে অন-প্রিমিসেস DNS আপডেট করার জন্য FDQN যেমন us-central1-aiplatform -pscvertex.p.googleapis.com-এ নেটিভ পাবলিক এন্ডপয়েন্ট us-central1-aiplatform.googleapis.com- এর পরিবর্তে স্থানীয় অ্যাপ্লিকেশনগুলির রিফ্যাক্টরিং প্রয়োজন।

একটি কাস্টম এন্ডপয়েন্ট ব্যবহার করার জন্য কনফিগার করা ক্লায়েন্টরা একটি এন্ডপয়েন্টে অনুরোধ পাঠাতে p.googleapis.com DNS নাম ব্যবহার করতে পারে।

কাস্টম এন্ডপয়েন্ট ব্যবহার করার জন্য কনফিগার করার বিষয়ে তথ্যের জন্য আপনার ক্লায়েন্ট বা ক্লায়েন্ট লাইব্রেরির ডকুমেন্টেশন দেখুন। যেমন:

"+" নির্বাচন করে একটি নতুন ক্লাউড শেল টার্মিনাল খুলুন। একবার নতুন ট্যাব খোলা হলে, প্রকল্পের নাম পরিবর্তনশীল আপডেট করুন।

ক্লাউড শেল থেকে।

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

ভার্টেক্স ডোমেন us-central1-aiplatform.googleapis.com- এর বিরুদ্ধে একটি খনন সম্পাদন করে Vertex API-এর সাথে সংযোগ যাচাই করতে একটি নতুন ক্লাউড শেল-এ IAP ব্যবহার করে ব্যক্তিগত-ক্লায়েন্টে লগ ইন করুন

ক্লাউড শেল থেকে, ব্যক্তিগত-ক্লায়েন্ট ওএস ইনস্ট্যান্সে লগ ইন করুন।

gcloud compute ssh private-client --project=$projectid --zone=us-central1-a --tunnel-through-iap

খনন চালান।

dig us-central1-aiplatform.googleapis.com

উদাহরণ, ডিএনএস প্রতিক্রিয়ার উপর ভিত্তি করে পাবলিক আইপিগুলি নোট করুন৷

user@private-client:~$ dig us-central1-aiplatform.googleapis.com

; <<>> DiG 9.16.42-Debian <<>> us-central1-aiplatform.googleapis.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33311
;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;us-central1-aiplatform.googleapis.com. IN A

;; ANSWER SECTION:
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.132.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.201.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.202.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.69.95
us-central1-aiplatform.googleapis.com. 300 IN A 64.233.182.95
us-central1-aiplatform.googleapis.com. 300 IN A 64.233.183.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.193.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.194.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.195.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.196.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.197.95
us-central1-aiplatform.googleapis.com. 300 IN A 64.233.191.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.74.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.192.95
us-central1-aiplatform.googleapis.com. 300 IN A 209.85.145.95
us-central1-aiplatform.googleapis.com. 300 IN A 209.85.146.95

;; Query time: 4 msec
;; SERVER: 169.254.169.254#53(169.254.169.254)
;; WHEN: Sun Jul 02 20:5

PSC এন্ডপয়েন্ট 100.100.10.10-এর দিকে নির্দেশ করে Vertext AI FQDN us-central1-aiplatform.googleapis.com- এর একটি রেকর্ড তৈরি করতে sudo VI সম্পাদক বা ন্যানো ব্যবহার করে প্রাইভেট-ক্লায়েন্ট ইনস্ট্যান্স /etc/hosts আপডেট করুন, আর কোনো পরিবর্তনের প্রয়োজন নেই।

উদাহরণ:

user@private-client:~$ more /etc/hosts
127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

100.100.10.10 us-central1-aiplatform.googleapis.com
192.168.20.2 private-client.c.$projectid.internal private-client  # Added by Google
169.254.169.254 metadata.google.internal  # Added by Google

প্রাইভেট-ক্লায়েন্ট OS থেকে, Vertex API এন্ডপয়েন্টে একটি PING সঞ্চালন করুন।

ping us-central1-aiplatform.googleapis.com

উদাহরণ, PING PSC এন্ডপয়েন্ট আইপি ফেরত দেয় তবুও কোনো উত্তর প্রত্যাশিত নয়।

user@private-client:~$ ping us-central1-aiplatform.googleapis.com
PING us-central1-aiplatform.googleapis.com (100.100.10.10) 56(84) bytes of data.

প্রাইভেট-ক্লায়েন্ট OS থেকে, অনলাইন ভবিষ্যদ্বাণীর বিপরীতে একটি কার্ল সম্পাদন করার সময় PSC এন্ডপয়েন্টে DNS রেজোলিউশন এবং IP ডেটাপাথ যাচাই করতে tcpdump চালান।

 sudo tcpdump -i any port 53 -n or host 100.100.10.10

"+" নির্বাচন করে একটি চতুর্থ ক্লাউড শেল টার্মিনাল খুলুন। একবার নতুন ট্যাব খোলা হলে, প্রকল্পের নাম পরিবর্তনশীল আপডেট করুন।

ক্লাউড শেলের ভিতরে, প্রকল্পের নাম পরিবর্তনশীল আপডেট করুন।

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

ক্লাউড শেল চারের ভিতরে, ব্যক্তিগত-ক্লায়েন্ট উদাহরণে একটি ssh সম্পাদন করুন।

gcloud compute ssh --zone "us-central1-a" "private-client" --project "$projectid"

নিম্নলিখিত বিভাগে, আপনি sudo VI সম্পাদক বা ন্যানো ব্যবহার করে একটি instance.json ফাইল তৈরি করবেন এবং স্থাপন করা মডেল থেকে একটি ভবিষ্যদ্বাণী পেতে ব্যবহৃত ডেটা স্ট্রিংটি সন্নিবেশ করাবেন।

প্রাইভেট-ক্লায়েন্ট ওএস থেকে, নীচের ডেটা স্ট্রিং সহ একটি instance.json f ile তৈরি করুন:

{"instances": [
  [0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
  [0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}

উদাহরণ:

user@private-client:$ more instances.json 
{"instances": [
  [0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
  [0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}

user@private-client:$

ব্যক্তিগত-ক্লায়েন্ট OS থেকে, নিম্নলিখিত ভেরিয়েবলগুলি তৈরি করুন:

gcloud config list project
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"

উদাহরণ:

ENDPOINT_ID="3328226095324463104"

ক্লাউড শেল ফোর-এ প্রাইভেট-ক্লায়েন্ট OS থেকে, মডেল থেকে প্রতিক্রিয়া পেতে একটি কার্ল সঞ্চালন করুন।

curl -v -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json

19. বৈধকরণ - ভার্টেক্স এপিআই-এ ব্যক্তিগত অ্যাক্সেস

ক্লাউড শেল ফোর-এ প্রাইভেট-ক্লায়েন্ট ওএস থেকে, নোট করুন PSC এন্ডপয়েন্ট আইপি (100.100.10.10) ভার্টেক্স এপিআই অ্যাক্সেস করতে ব্যবহৃত হয়েছিল।

user@private-client$ curl -v -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json
Note: Unnecessary use of -X or --request, POST is already inferred.
*   Trying 100.100.10.10:443...
* Connected to us-central1-aiplatform.googleapis.com (100.100.10.10) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: CN=upload.video.google.com
*  start date: May 29 08:21:36 2023 GMT
*  expire date: Aug 21 08:21:35 2023 GMT
*  subjectAltName: host "us-central1-aiplatform.googleapis.com" matched cert's "*.googleapis.com"
*  issuer: C=US; O=Google Trust Services LLC; CN=GTS CA 1C3
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x55f2ab65c2c0)
> POST /v1/projects/$projectid/locations/us-central1/endpoints/3328226095324463104:predict HTTP/2
> Host: us-central1-aiplatform.googleapis.com
> user-agent: curl/7.74.0
> accept: */*
> authorization: Bearer ya29.a0AbVbY6NdCbIJYj0mQROeq-xYgQCw534TTtjRc1kBAEOimKCFxb3gqgD5AvhfefJatSNr33eW1YJirfQVMptFoqfjRoB-i8zEJJ_GGCVqhsVnpSOjK0hzJQSuo2YGjIiSe1o1zdo7lWmh1Px-vLe8FImieGkrQ1hqVaa6aCgYKAXgSARESFQFWKvPlUQ_FuKB2hrDJRyFDjupL1g0171
> content-type: application/json
> content-length: 154
> 
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
* We are completely uploaded and fine
< HTTP/2 200 
< content-type: application/json; charset=UTF-8
< x-vertex-ai-internal-prediction-backend: harpoon
< date: Mon, 03 Jul 2023 22:13:35 GMT
< vary: X-Origin
< vary: Referer
< vary: Origin,Accept-Encoding
< server: scaffolding on HTTPServer2
< cache-control: private
< x-xss-protection: 0
< x-frame-options: SAMEORIGIN
< x-content-type-options: nosniff
< accept-ranges: none
< 
{
  "predictions": [
    "$479.0",
    "$586.0"
  ],
  "deployedModelId": "1949163636186415104",
  "model": "projects/234086459238/locations/us-central1/models/947543727654567936",
  "modelDisplayName": "diamonds-cpr",
  "modelVersionId": "1"
}
* Connection #0 to host us-central1-aiplatform.googleapis.com left intact

ক্লাউড শেল থ্রিতে TCPDUMP টার্মিনাল থেকে, আমরা যাচাই করতে পারি যে us-central1-aiplatform.googleapis.com- এ একটি DNS লুকআপ দেখা যায়নি যেহেতু /etc/host ফাইলটি প্রাধান্য পেয়েছে তবুও PSC IP ঠিকানা 100.100.10.10 ব্যবহার করা হয়েছিল তথ্য পথ।

user@private-client:~$ sudo tcpdump -i any port 53 -n or host 100.100.10.10
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
22:13:35.507625 ens4  Out IP 192.168.20.2.37004 > 169.254.169.254.53: 58585+ A? oauth2.googleapis.com. (39)
22:13:35.507631 ens4  Out IP 192.168.20.2.37004 > 169.254.169.254.53: 15580+ AAAA? oauth2.googleapis.com. (39)
22:13:35.511796 ens4  In  IP 169.254.169.254.53 > 192.168.20.2.37004: 58585 16/0/0 A 142.251.6.95, A 108.177.112.95, A 74.125.124.95, A 172.217.212.95, A 172.217.214.95, A 172.253.114.95, A 172.253.119.95, A 108.177.111.95, A 142.250.1.95, A 108.177.121.95, A 142.250.103.95, A 108.177.120.95, A 142.251.171.95, A 142.250.159.95, A 142.251.120.95, A 142.251.161.95 (295)
22:13:35.512002 ens4  In  IP 169.254.169.254.53 > 192.168.20.2.37004: 15580 4/0/0 AAAA 2607:f8b0:4001:c2b::5f, AAAA 2607:f8b0:4001:c18::5f, AAAA 2607:f8b0:4001:c5f::5f, AAAA 2607:f8b0:4001:c58::5f (151)
22:13:35.722145 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [S], seq 1951267724, win 65320, options [mss 1420,sackOK,TS val 1371205990 ecr 0,nop,wscale 7], length 0
22:13:35.730727 ens4  In  IP 100.100.10.10.443 > 192.168.20.2.47304: Flags [S.], seq 3198878726, ack 1951267725, win 65535, options [mss 1366,sackOK,TS val 67847676 ecr 1371205990,nop,wscale 8], length 0
22:13:35.730760 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [.], ack 1, win 511, options [nop,nop,TS val 1371205999 ecr 67847676], length 0
22:13:35.738339 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 1:518, ack 1, win 511, options [nop,nop,TS val 1371206006 ecr 67847676], length 517
22:13:35.739922 ens4  In  IP 100.100.10.10.443 > 192.168.20.2.47304: Flags [.], ack 518, win 261, options [nop,nop,TS val 67847688 ecr 1371206006], length 0
22:13:35.740860 ens4  In  IP 100.100.10.10.443 > 192.168.20.2.47304: Flags [.], seq 1:2709, ack 518, win 261, options [nop,nop,TS val 67847689 ecr 1371206006], length 2708
22:13:35.740863 ens4  In  IP 100.100.10.10.443 > 192.168.20.2.47304: Flags [P.], seq 2709:4699, ack 518, win 261, options [nop,nop,TS val 67847689 ecr 1371206006], length 1990
22:13:35.740874 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [.], ack 2709, win 497, options [nop,nop,TS val 1371206009 ecr 67847689], length 0
22:13:35.740886 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [.], ack 4699, win 485, options [nop,nop,TS val 1371206009 ecr 67847689], length 0
22:13:35.742709 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 518:598, ack 4699, win 501, options [nop,nop,TS val 1371206011 ecr 67847689], length 80
22:13:35.743996 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 598:644, ack 4699, win 501, options [nop,nop,TS val 1371206012 ecr 67847689], length 46
22:13:35.744011 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 644:693, ack 4699, win 501, options [nop,nop,TS val 1371206012 ecr 67847689], length 49
22:13:35.744082 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 693:728, ack 4699, win 501, options [nop,nop,TS val 1371206012 ecr 67847689], length 35
22:13:35.744165 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 728:1069, ack 4699, win 501, options [nop,nop,TS val 1371206012 ecr 67847689], length 341

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

20. পরিষ্কার করুন

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

gcloud compute forwarding-rules delete pscvertex --global --quiet

gcloud compute instances delete workbench-tutorial --zone=us-central1-a --quiet 

gcloud compute addresses delete psc-ip --global --quiet

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

gcloud compute vpn-tunnels delete aiml-vpc-tunnel0 aiml-vpc-tunnel1 on-prem-tunnel0 on-prem-tunnel1 --region=us-central1 --quiet

gcloud compute vpn-gateways delete aiml-vpn-gw on-prem-vpn-gw --region=us-central1 --quiet 

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

gcloud compute routers delete cloud-router-us-central1-on-prem-nat on-prem-cr-us-central1 --region=us-central1 --quiet

gcloud compute instances delete nat-client private-client --zone=us-central1-a --quiet

gcloud compute firewall-rules delete ssh-iap-on-prem-vpc --quiet

gcloud compute networks subnets delete nat-subnet  private-ip-subnet --region=us-central1 --quiet

gcloud compute networks delete on-prem-vpc --quiet

gcloud compute networks delete aiml-vpc --quiet

ভার্টেক্স উপাদান মুছুন

কন্টেইনার ইমেজ মুছতে, আর্টিফ্যাক্ট রেজিস্ট্রিতে নেভিগেট করুন, আপনার তৈরি করা সংগ্রহস্থল নির্বাচন করুন এবং মুছুন নির্বাচন করুন

616a3108bc2e48c8.png

আপনার ক্লাউড কনসোলে নেভিগেশন মেনু ব্যবহার করে স্টোরেজ বাকেট মুছে ফেলতে, স্টোরেজ ব্রাউজ করুন, আপনার বালতি নির্বাচন করুন এবং মুছুন ক্লিক করুন:

eddd1f9fdfaede8.png

এন্ডপয়েন্ট থেকে মডেলটি আনডিপ্লোয় করুন। Vertex AI → অনলাইন ভবিষ্যদ্বাণীতে নেভিগেট করুন → diamonds-cpr_endpoint নির্বাচন করুন → এন্ডপয়েন্ট থেকে আনডিপ্লোয় মডেল → আনডিপ্লোয়

bc95f092d21d4698.png

মডেল মুছুন। Vertex AI → Model Registry → Delete Model-এ নেভিগেট করুন

ec4afff091e11606.png

অনলাইন পূর্বাভাস শেষ পয়েন্ট মুছুন। VertexAI এ নেভিগেট করুন → অনলাইন পূর্বাভাস → diamonds-cpr_endpoint নির্বাচন করুন → শেষ পয়েন্ট মুছুন

7453760299bdfb9a.png

21. অভিনন্দন

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

আপনি একটি ন্যাট-ক্লায়েন্ট এবং প্রাইভেট-ক্লায়েন্ট তৈরি করেছেন এবং Vertex API-এ পৌঁছানোর জন্য ব্যবহৃত IP ঠিকানাগুলি যাচাই করতে TCPDUMP ব্যবহার করেছেন। এছাড়াও, আপনি প্রাইভেট সার্ভিস কানেক্ট (googleapis) সম্পর্কে শিখেছেন এবং কীভাবে এটি একটি গ্রাহকের PSC এন্ডপয়েন্টের সাহায্যে অন-প্রিমিসেস এবং মাল্টি-ক্লাউড অ্যাপ্লিকেশনগুলিকে আলাদা করতে ব্যবহার করা যেতে পারে।

কসমোপআপ মনে করে টিউটোরিয়ালগুলি দুর্দান্ত!!

e6d3675ca7c6911f.jpeg

এরপর কি?

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

আরও পড়া এবং ভিডিও

রেফারেন্স ডক্স