জোনাল NEG স্ব-হোস্টেড ডাটাবেসে এজেন্টস্পেস

১. ভূমিকা

এই কোডল্যাবে আপনি একটি অভ্যন্তরীণ টিসিপি প্রক্সি লোড ব্যালেন্সার এবং জোনাল নেটওয়ার্ক এন্ডপয়েন্ট গ্রুপ (NEG) স্থাপন করবেন, যা একটি PSC প্রোডিউসার সার্ভিস হিসাবে প্রকাশিত হবে। NEG-টি GCP-তে এক বা একাধিক কম্পিউট ইনস্ট্যান্স নিয়ে গঠিত হবে, যা JIRA, Confluence, Sharepoint-এর মতো ডেটাবেস সেলফ-হোস্ট করবে।

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

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

  • এজেন্টস্পেসের জন্য নেটওয়ার্কের প্রয়োজনীয়তা
  • এজেন্টস্পেস নেটওয়ার্কিং-এর সর্বোত্তম অনুশীলন
  • একটি ব্যক্তিগত পরিষেবা সংযোগ প্রযোজক পরিষেবা তৈরি করুন

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

  • মালিকের অনুমতি সহ গুগল ক্লাউড প্রজেক্ট

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

আপনি একটি প্রোডিউসার নেটওয়ার্ক, agentspace-psc-demo, স্থাপন করবেন, যেখানে প্রাইভেট সার্ভিস কানেক্ট (PSC)-এর মাধ্যমে একটি সার্ভিস হিসেবে ইন্টারনাল টিসিপি প্রক্সি লোড ব্যালেন্সার এবং জোনাল এনইজি (Zonal NEG) ডেপ্লয় করা হবে।

৩. নেটওয়ার্কের প্রয়োজনীয়তা

নিচে প্রডিউসার নেটওয়ার্কের জন্য প্রয়োজনীয় নেটওয়ার্ক চাহিদার বিবরণ দেওয়া হলো, এই কোডল্যাবের কনজিউমার হলো এজেন্টস্পেস।

উপাদান

বর্ণনা

ভিপিসি (এজেন্টস্পেস-পিএসসি-ডেমো)

কাস্টম মোড ভিপিসি

পিএসসি এনএটি সাবনেট

কনজিউমার ভিপিসি নেটওয়ার্ক থেকে আসা প্যাকেটগুলোকে সোর্স ন্যাট (SNAT) ব্যবহার করে অনুবাদ করা হয়, যাতে তাদের মূল সোর্স আইপি অ্যাড্রেসগুলো প্রডিউসারের ভিপিসি নেটওয়ার্কের ন্যাট সাবনেটের সোর্স আইপি অ্যাড্রেসে রূপান্তরিত হয়। পিএসসি ন্যাট প্রতিটি সার্ভিস অ্যাটাচমেন্টের জন্য একটি /29 সাবনেট সমর্থন করে।

পিএসসি ফরওয়ার্ডিং নিয়ম সাবনেট

রিজিওনাল ইন্টারনাল টিসিপি প্রক্সি লোড ব্যালান্সারের জন্য একটি আইপি অ্যাড্রেস বরাদ্দ করতে ব্যবহৃত হয়। ফরওয়ার্ডিং রুল সাবনেটটিকে একটি সাধারণ সাবনেট হিসেবে বিবেচনা করা হয়।

এনইজি সাবনেট

একটি সাধারণ সাবনেট থেকে নেটওয়ার্ক এন্ডপয়েন্ট গ্রুপের জন্য আইপি অ্যাড্রেস বরাদ্দ করতে ব্যবহৃত হয়।

প্রক্সি শুধুমাত্র সাবনেট

লোড ব্যালান্সারের প্রতিটি প্রক্সিকে একটি অভ্যন্তরীণ আইপি অ্যাড্রেস বরাদ্দ করা হয়। প্রক্সি থেকে ব্যাকএন্ড ভিএম বা নেটওয়ার্ক এন্ডপয়েন্ট গ্রুপে পাঠানো প্যাকেটের সোর্স আইপি অ্যাড্রেসটি প্রক্সি-অনলি সাবনেট থেকে আসে। একটি /23 সাবনেট সুপারিশ করা হয়, যদিও সর্বনিম্ন /26 সমর্থিত। প্রতি অঞ্চলের জন্য একটি আঞ্চলিক প্রক্সি সাবনেট প্রয়োজন।

ব্যাকএন্ড পরিষেবা

একটি ব্যাকএন্ড সার্ভিস আপনার লোড ব্যালেন্সার এবং ব্যাকএন্ড রিসোর্সগুলোর মধ্যে সেতু হিসেবে কাজ করে। এই টিউটোরিয়ালে, ব্যাকএন্ড সার্ভিসটি জোনাল এনইজি (Zonal NEG)-এর সাথে যুক্ত করা হয়েছে।

৪. সর্বোত্তম অনুশীলন

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

৫. কোডল্যাব টপোলজি

9a8a948b0a4ad91e.png

৬. সেটআপ এবং প্রয়োজনীয়তা

স্ব-গতিতে পরিবেশ সেটআপ

  1. Google Cloud Console- এ সাইন-ইন করুন এবং একটি নতুন প্রজেক্ট তৈরি করুন অথবা বিদ্যমান কোনো প্রজেক্ট পুনরায় ব্যবহার করুন। যদি আপনার আগে থেকে Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে।

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • প্রজেক্টের নামটি হলো এই প্রজেক্টের অংশগ্রহণকারীদের প্রদর্শিত নাম। এটি একটি ক্যারেক্টার স্ট্রিং যা গুগল এপিআই ব্যবহার করে না। আপনি যেকোনো সময় এটি আপডেট করতে পারেন।
  • প্রজেক্ট আইডি সমস্ত গুগল ক্লাউড প্রজেক্ট জুড়ে অনন্য এবং অপরিবর্তনীয় (একবার সেট করার পর এটি পরিবর্তন করা যায় না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত এটি কী তা নিয়ে আপনার মাথা ঘামানোর দরকার নেই। বেশিরভাগ কোডল্যাবে, আপনাকে আপনার প্রজেক্ট আইডি উল্লেখ করতে হবে (যা সাধারণত PROJECT_ID হিসাবে চিহ্নিত করা হয়)। তৈরি করা আইডিটি আপনার পছন্দ না হলে, আপনি এলোমেলোভাবে আরেকটি তৈরি করতে পারেন। বিকল্পভাবে, আপনি আপনার নিজের আইডি দিয়ে চেষ্টা করে দেখতে পারেন যে সেটি উপলব্ধ আছে কিনা। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রজেক্টের পুরো সময়কাল জুড়ে এটি অপরিবর্তিত থাকবে।
  • আপনার অবগতির জন্য জানাচ্ছি যে, তৃতীয় একটি ভ্যালু রয়েছে, যা হলো প্রজেক্ট নম্বর , এবং কিছু এপিআই এটি ব্যবহার করে থাকে। ডকুমেন্টেশনে এই তিনটি ভ্যালু সম্পর্কে আরও বিস্তারিত জানুন।
  1. এরপর, ক্লাউড রিসোর্স/এপিআই ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং চালু করতে হবে। এই কোডল্যাবটি সম্পন্ন করতে খুব বেশি খরচ হবে না, এমনকি আদৌ কোনো খরচ নাও হতে পারে। এই টিউটোরিয়ালের পর বিলিং এড়াতে রিসোর্সগুলো বন্ধ করার জন্য, আপনি আপনার তৈরি করা রিসোর্সগুলো অথবা প্রজেক্টটি ডিলিট করে দিতে পারেন। নতুন গুগল ক্লাউড ব্যবহারকারীরা ৩০০ মার্কিন ডলারের ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য।

ক্লাউড শেল শুরু করুন

যদিও গুগল ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালনা করা যায়, এই কোডল্যাবে আপনি গুগল ক্লাউড শেল ব্যবহার করবেন, যা ক্লাউডে চালিত একটি কমান্ড লাইন পরিবেশ।

গুগল ক্লাউড কনসোল থেকে, উপরের ডানদিকের টুলবারে থাকা ক্লাউড শেল আইকনটিতে ক্লিক করুন:

55efc1aaa7a4d3ad.png

পরিবেশটি প্রস্তুত করতে এবং এর সাথে সংযোগ স্থাপন করতে মাত্র কয়েক মুহূর্ত সময় লাগবে। এটি শেষ হলে, আপনি এইরকম কিছু দেখতে পাবেন:

7ffe5cbb04455448.png

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

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

এপিআই সক্ষম করুন

ক্লাউড শেলের ভিতরে, নিশ্চিত করুন যে আপনার প্রজেক্ট আইডি সেট আপ করা আছে:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
zone1a=[YOUR-ZONE1a]
zone1b=[YOUR-ZONE1b]
echo $project
echo $region
echo $zone1a
echo $zone1b

সকল প্রয়োজনীয় পরিষেবা সক্রিয় করুন:

gcloud services enable compute.googleapis.com

৮. প্রোডিউসার ভিপিসি নেটওয়ার্ক তৈরি করুন

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

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

gcloud compute networks create agentspace-psc-demo --subnet-mode custom

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

নেটওয়ার্ক অ্যাড্রেস ট্রান্সলেশনের উদ্দেশ্যে পিএসসি সাবনেটটিকে পিএসসি সার্ভিস অ্যাটাচমেন্টের সাথে সংযুক্ত করা হবে।

ক্লাউড শেলের ভিতরে, PSC NAT সাবনেটটি তৈরি করুন:

gcloud compute networks subnets create producer-psc-nat-subnet --network agentspace-psc-demo --range 172.16.10.0/28 --region $region --purpose=PRIVATE_SERVICE_CONNECT

ক্লাউড শেলের ভিতরে, প্রডিউসার ফরওয়ার্ডিং রুল সাবনেট তৈরি করুন:

gcloud compute networks subnets create producer-psc-fr-subnet --network agentspace-psc-demo --range 172.16.20.0/28 --region $region --enable-private-ip-google-access

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

gcloud compute networks subnets create neg-subnet --network agentspace-psc-demo --range 172.16.30.0/28 --region $region --enable-private-ip-google-access

ক্লাউড শেলের ভিতরে, শুধুমাত্র প্রযোজক আঞ্চলিক প্রক্সি সাবনেট তৈরি করুন

gcloud compute networks subnets create $region-proxy-only-subnet \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=$region \
  --network=agentspace-psc-demo \
  --range=10.10.10.0/24

লোড ব্যালেন্সারের আইপি অ্যাড্রেসটি রিজার্ভ করুন।

ক্লাউড শেলের ভিতরে, লোড ব্যালান্সারের জন্য একটি অভ্যন্তরীণ আইপি অ্যাড্রেস সংরক্ষণ করুন:

gcloud compute addresses create zonal-neg-lb-ip \
  --region=$region \
  --subnet=producer-psc-fr-subnet

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

gcloud compute addresses describe zonal-neg-lb-ip \
  --region=$region | grep -i address:

উদাহরণ আউটপুট:

gcloud compute addresses describe zonal-neg-lb-ip --region=$region | grep -i address:
address: 172.16.20.2

জোনাল এনইজি সেট আপ করুন

পরবর্তী অংশে, আপনি একটি জোনাল নেটওয়ার্ক এন্ডপয়েন্ট গ্রুপ তৈরি করবেন যাতে এক বা একাধিক আইপি অ্যাড্রেস অথবা আইপি অ্যাড্রেস ও ডেস্টিনেশন পোর্টের সমন্বয় থাকবে:

  • একটি ভিএম নেটওয়ার্ক ইন্টারফেসের প্রাথমিক অভ্যন্তরীণ IPv4 ঠিকানা
  • একটি ভিএম নেটওয়ার্ক ইন্টারফেসের প্রাথমিক অভ্যন্তরীণ IPv4 ঠিকানা এবং একটি গন্তব্য পোর্ট নম্বর
  • একটি ভিএম নেটওয়ার্ক ইন্টারফেসে বরাদ্দকৃত অ্যালিয়াস আইপি অ্যাড্রেস রেঞ্জ থেকে একটি অভ্যন্তরীণ IPv4 অ্যাড্রেস।
  • একটি ভিএম নেটওয়ার্ক ইন্টারফেসে বরাদ্দকৃত অ্যালিয়াস আইপি অ্যাড্রেস রেঞ্জ থেকে একটি অভ্যন্তরীণ IPv4 অ্যাড্রেস এবং একটি গন্তব্য পোর্ট নম্বর।

GCE_VM_IP_PORT এন্ডপয়েন্ট ধারণকারী নেটওয়ার্ক ইন্টারফেসটি অবশ্যই NEG-এর সাবনেটে থাকতে হবে। যখন আপনি কোনো GCE_VM_IP_PORT এন্ডপয়েন্ট থেকে পোর্ট নম্বর বাদ দেন, তখন Google Cloud সেই এন্ডপয়েন্টের জন্য NEG-এর ডিফল্ট পোর্ট নম্বর ব্যবহার করে।

রেফারেন্স আর্কিটেকচারে, জোনাল এনইজি-এর সাথে সংশ্লিষ্ট জিসিই ইনস্ট্যান্সগুলো নিম্নলিখিত বিষয়গুলো নিয়ে গঠিত:

  • ডেটাবেস-ইউএস-সেন্ট্রাল১-এ | ইউএস-সেন্ট্রাল১-এ | আইপি: ১০০.১০০.১০.২ | পোর্ট: ৪৪৩
  • ডাটাবেস-ইউএস-সেন্ট্রাল১-এ | ইউএস-সেন্ট্রাল১-বি | আইপি: ১০০.১০০.১০.৩ | পোর্ট: ৪৪৩
  • সাবনেটের নাম: ডেটাবেস-সাবনেট-১

জোন1a এর জন্য জোনাল NEG তৈরি করুন

পরবর্তী অংশে, আপনি প্রতিটি জোনের জন্য নেটওয়ার্ক এন্ডপয়েন্ট গ্রুপ তৈরি করবেন, যেমন us-central1-a, এবং GCE ইনস্ট্যান্স তৈরি করতে ব্যবহৃত সাবনেটের নামটি উল্লেখ করবেন। রেফারেন্স আর্কিটেকচারে, সাবনেটের নামটি হলো database-subnet-1।

ক্লাউড শেলের ভিতরে, একটি জোনাল নেগেটিভ (Zonal NEG) তৈরি করুন:

gcloud compute network-endpoint-groups create us-central-zonal-neg-1a \
    --zone=$zone1a \
    --network=agentspace-psc-demo \
    --subnet=database-subnet-1 \
    --default-port=443

ক্লাউড শেলের ভিতরে, zone1a-তে ডেপ্লয় করা GCE ইনস্ট্যান্সের IP:Port দিয়ে Zonal NEG আপডেট করুন; রেফারেন্স আর্কিটেকচারে GCE ইনস্ট্যান্সটি হলো 100.100.10.2, পোর্ট 443 এবং এটি us-central1-a জোনে ডেপ্লয় করা আছে।

gcloud compute network-endpoint-groups update us-central-zonal-neg-1a --zone=$zone1a --add-endpoint instance=database-us-central1-a,port=443

জোন1b এর জন্য জোনাল NEG তৈরি করুন

পরবর্তী অংশে, আপনি প্রতিটি জোনের জন্য নেটওয়ার্ক এন্ডপয়েন্ট গ্রুপ তৈরি করবেন, যেমন us-central1-b, এবং GCE ইনস্ট্যান্স তৈরি করতে ব্যবহৃত সাবনেটের নামটি উল্লেখ করবেন। রেফারেন্স আর্কিটেকচারে, সাবনেটের নামটি হলো database-subnet-1।

ক্লাউড শেলের ভিতরে, একটি জোনাল নেগেটিভ (Zonal NEG) তৈরি করুন:

gcloud compute network-endpoint-groups create us-central-zonal-neg-1b \
    --zone=$zone1b \
    --network=agentspace-psc-demo \
    --subnet=database-subnet-1 \
    --default-port=443

ক্লাউড শেলের ভিতরে, zone1b-তে ডেপ্লয় করা GCE ইনস্ট্যান্সের IP:Port দিয়ে Zonal NEG আপডেট করুন; রেফারেন্স আর্কিটেকচারে GCE ইনস্ট্যান্সটি হলো 100.100.10.3, পোর্ট 443 এবং এটি us-central1-b জোনে ডেপ্লয় করা আছে।

gcloud compute network-endpoint-groups update us-central-zonal-neg-1b --zone=$zone1b --add-endpoint instance=database-us-central1-b,port=443

একটি আঞ্চলিক স্বাস্থ্য পরীক্ষা তৈরি করুন

ক্লাউড শেলের ভিতরে, একটি হেলথ-চেক তৈরি করুন যা অন-প্রেম ডাটাবেস পোর্ট, 443, পরীক্ষা করবে:

gcloud compute health-checks create tcp zonal-443-healthcheck \
    --region=$region \
    --port=443

নেটওয়ার্ক ফায়ারওয়াল পলিসি এবং ফায়ারওয়াল নিয়ম তৈরি করুন

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

gcloud compute network-firewall-policies create agentspace-psc-demo-policy --global

gcloud compute network-firewall-policies associations create --firewall-policy agentspace-psc-demo-policy --network agentspace-psc-demo --name agentspace-psc-demo --global-firewall-policy

নিম্নলিখিত ফায়ারওয়াল নিয়মটি PSC NAT সাবনেট রেঞ্জ থেকে নেটওয়ার্কের সমস্ত ইনস্ট্যান্সে ট্র্যাফিকের অনুমতি দেয়।

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

gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy agentspace-psc-demo-policy --description "allow traffic from PSC NAT subnet to GCE" --direction INGRESS --src-ip-ranges 172.16.10.0/28 --global-firewall-policy --layer4-configs=tcp

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

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

gcloud compute network-firewall-policies rules create 2002 --action ALLOW --firewall-policy agentspace-psc-demo-policy --description "allow internal probe health check range to GCE" --direction INGRESS --src-ip-ranges 35.191.0.0/16,130.211.0.0/22 --global-firewall-policy --layer4-configs=tcp:443

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

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

gcloud compute network-firewall-policies rules create 2003 --action ALLOW --firewall-policy agentspace-psc-demo-policy --description "allow internal tcp proxy health check range to GCE" --direction INGRESS --src-ip-ranges 10.10.10.0/24 --global-firewall-policy --layer4-configs=tcp:443

৯. প্রযোজক পরিষেবা তৈরি করুন

লোড ব্যালেন্সার উপাদান তৈরি করুন

ক্লাউড শেলের ভিতরে, একটি ব্যাকএন্ড সার্ভিস তৈরি করুন:

gcloud compute backend-services create producer-backend-svc --region=$region --load-balancing-scheme=INTERNAL_MANAGED --protocol=TCP --region=$region --health-checks=zonal-443-healthcheck --health-checks-region=$region

ক্লাউড শেলের ভিতরে, জোনাল এনইজি (us-central-zonal-neg-1a)-কে ব্যাকএন্ড সার্ভিসের সাথে যুক্ত করুন:

gcloud compute backend-services add-backend producer-backend-svc \
   --network-endpoint-group=us-central-zonal-neg-1a  \
   --network-endpoint-group-zone=$zone1a \
   --balancing-mode=CONNECTION \
   --max-connections-per-endpoint=100 \
   --region=$region

ক্লাউড শেলের ভিতরে, জোনাল এনইজি (us-central-zonal-neg-1b)-কে ব্যাকএন্ড সার্ভিসের সাথে যুক্ত করুন:

gcloud compute backend-services add-backend producer-backend-svc \
   --network-endpoint-group=us-central-zonal-neg-1b  \
   --network-endpoint-group-zone=$zone1b \
   --balancing-mode=CONNECTION \
   --max-connections-per-endpoint=100 \
   --region=$region

ক্লাউড শেলে, আপনার ব্যাকএন্ড সার্ভিসে অনুরোধ রাউট করার জন্য একটি টার্গেট TCP প্রক্সি তৈরি করুন:

gcloud compute target-tcp-proxies create producer-lb-tcp-proxy \
      --backend-service=producer-backend-svc  \
      --region=$region

নিম্নলিখিত সিনট্যাক্স ব্যবহার করে, গ্লোবাল অ্যাক্সেস সক্রিয় করে একটি ফরওয়ার্ডিং রুল (অভ্যন্তরীণ টিসিপি প্রক্সি লোড ব্যালেন্সার) তৈরি করুন।

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

gcloud compute forwarding-rules create producer-zonal-neg-fr \
     --load-balancing-scheme=INTERNAL_MANAGED \
     --network-tier=PREMIUM \
     --network=agentspace-psc-demo \
     --subnet=producer-psc-fr-subnet \
     --address=zonal-neg-lb-ip \
     --target-tcp-proxy=producer-lb-tcp-proxy \
     --target-tcp-proxy-region=$region \
     --region=$region \
     --allow-global-access \
     --ports=443

ব্যাকএন্ড স্বাস্থ্য যাচাই করুন

নিম্নলিখিত বিভাগে ক্লাউড কনসোল ব্যবহার করে ব্যাকএন্ড পরিষেবা এবং এর সাথে যুক্ত কম্পিউট ইনস্ট্যান্সগুলির স্বাস্থ্য (সবুজ অবস্থা) যাচাই করুন। নিম্নলিখিত স্থানে যান:

নেটওয়ার্ক পরিষেবা → লোড ব্যালান্সিং → প্রডিউসার-ব্যাকএন্ড-এসভিসি

dbbc97dcef9db785.png

সার্ভিস সংযুক্তি তৈরি করুন

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

  • পরিষেবাটি প্রকাশ করতে এবং যেকোনো গ্রাহককে স্বয়ংক্রিয়ভাবে এতে সংযোগ করার অনুমতি দিতে, “স্বয়ংক্রিয় অনুমোদন সহ একটি পরিষেবা প্রকাশ করুন” -এর নির্দেশাবলী অনুসরণ করুন।
  • গ্রাহকের সুস্পষ্ট অনুমোদন সাপেক্ষে পরিষেবাটি প্রকাশ করতে, পরিষেবা সংযুক্তি সংযোগ সেটিংসে, ‘নির্বাচিত প্রকল্পগুলির জন্য সংযোগ গ্রহণ করুন’ বিকল্পটি নির্বাচন করুন এবং ‘গৃহীত প্রকল্পসমূহ’ ক্ষেত্রটি খালি রাখুন।
  • আপনি সার্ভিস অ্যাটাচমেন্ট তৈরি করার পরে, যে কনজিউমার এন্ডপয়েন্টগুলো প্রডিউসার সার্ভিসে অ্যাক্সেসের জন্য অনুরোধ করে, সেগুলো প্রাথমিকভাবে একটি পেন্ডিং অবস্থায় প্রবেশ করবে। সংযোগটি অনুমোদন করার জন্য, প্রডিউসারকে অবশ্যই সেই প্রজেক্টটি গ্রহণ করতে হবে যেখান থেকে কনজিউমার এন্ডপয়েন্টের অনুরোধটি এসেছে।

ক্লাউড শেলের ভিতরে, স্বয়ংক্রিয় অনুমোদন সহ cc-database1-svc-attachment নামের সার্ভিস অ্যাটাচমেন্টটি তৈরি করুন:

gcloud compute service-attachments create zonal-database1-svc-attachment --region=$region --producer-forwarding-rule=producer-zonal-neg-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=producer-psc-nat-subnet

এরপরে, Agentspace-এ PSC এন্ডপয়েন্ট কনফিগার করার জন্য projects দিয়ে শুরু হওয়া selfLink URI-তে তালিকাভুক্ত সার্ভিস অ্যাটাচমেন্টটি সংগ্রহ করে নোট করুন।

selfLink: projects/<আপনার-প্রকল্প-আইডি>/regions/<আপনার-অঞ্চল>/serviceAttachments/zonal-database1-svc-attachment

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

gcloud compute service-attachments describe zonal-database1-svc-attachment --region=$region

প্রত্যাশিত আউটপুটের উদাহরণ:

connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2025-07-12T16:00:22.429-07:00'
description: ''
enableProxyProtocol: false
fingerprint: zOpeRQnPWSc=
id: '1784245893044590569'
kind: compute#serviceAttachment
name: zonal-database1-svc-attachment
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project-svc4/regions/us-central1/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
  high: '119824781489996776'
  low: '1784245893044590569'
reconcileConnections: false
region: https://www.googleapis.com/compute/v1/projects/$project-svc4/regions/us-central1
selfLink: https://www.googleapis.com/compute/v1/projects/$project-svc4/regions/us-central1/serviceAttachments/zonal-database1-svc-attachment
targetService: https://www.googleapis.com/compute/v1/projects/$project-svc4/regions/us-central1/forwardingRules/producer-zonal-neg-fr

ক্লাউড কনসোলে, এখানে যান:

নেটওয়ার্ক পরিষেবা → ব্যক্তিগত পরিষেবা সংযোগ → প্রকাশিত পরিষেবা

898fe7673474be14.png

4d0b77966af14c7a.png

১০. এজেন্টস্পেসে একটি পিএসসি এন্ডপয়েন্ট সংযোগ স্থাপন করুন।

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

cb16ba8d7cfb86dd.png

প্রাইভেট নেটওয়ার্কিং চূড়ান্ত করতে, আরও নির্দেশনার জন্য এজেন্টস্পেসের তৃতীয় পক্ষের ডেটা উৎসগুলো দেখুন।

ক্লাউড কনসোলে PSC এন্ডপয়েন্টটি যাচাই করুন

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

ক্লাউড কনসোল থেকে আপনি পিএসসি সংযোগটি যাচাই করতে পারেন। ক্লাউড কনসোলে, এখানে যান:

নেটওয়ার্ক সার্ভিসেস → প্রাইভেট সার্ভিস কানেক্ট → পাবলিশড সার্ভিস, তারপর zonal-database1-svc-attachment সার্ভিসটি নির্বাচন করুন।

2f6b7830ce3db3b7.png

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

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

gcloud compute service-attachments delete zonal-database1-svc-attachment --region=$region -q

gcloud compute forwarding-rules delete producer-zonal-neg-fr --region=$region -q

gcloud compute target-tcp-proxies delete producer-lb-tcp-proxy --region=$region -q

gcloud compute backend-services delete producer-backend-svc --region=$region -q

gcloud compute network-firewall-policies rules delete 2001 --firewall-policy agentspace-psc-demo-policy --global-firewall-policy -q

gcloud compute network-firewall-policies rules delete 2002 --firewall-policy agentspace-psc-demo-policy --global-firewall-policy -q

gcloud compute network-firewall-policies rules delete 2003 --firewall-policy agentspace-psc-demo-policy --global-firewall-policy -q

gcloud compute network-firewall-policies associations delete --firewall-policy=agentspace-psc-demo-policy  --name=agentspace-psc-demo --global-firewall-policy -q

gcloud compute network-firewall-policies delete agentspace-psc-demo-policy --global -q

gcloud compute network-endpoint-groups delete us-central-zonal-neg-1a --zone=$zone1a -q

gcloud compute network-endpoint-groups delete us-central-zonal-neg-1b --zone=$zone1b -q

gcloud compute addresses delete zonal-neg-lb-ip --region=$region -q

gcloud compute networks subnets delete $region-proxy-only-subnet --region=$region -q

gcloud compute networks subnets delete producer-psc-nat-subnet --region=$region -q

gcloud compute networks subnets delete producer-psc-fr-subnet --region=$region -q

gcloud compute networks subnets delete neg-subnet --region=$region -q

gcloud compute health-checks delete zonal-443-healthcheck --region=us-central1 -q

gcloud compute networks delete agentspace-psc-demo -q

১২. অভিনন্দন

অভিনন্দন, আপনি সফলভাবে প্রাইভেট সার্ভিস কানেক্টেড সহ একটি প্রোডিউসার সার্ভিস কনফিগার এবং পাবলিশ করেছেন।

আপনি প্রডিউসার ইনফ্রাস্ট্রাকচার তৈরি করেছেন, শিখেছেন কীভাবে একটি জোনাল এনইজি (Zonal NEG), প্রডিউসার সার্ভিস (Producer Service) তৈরি করতে হয় এবং এজেন্টস্পেসের (Agentspace) সাথে সার্ভিস অ্যাটাচমেন্টকে যুক্ত করতে হয়।

কসমোপাপের মতে কোডল্যাবগুলো অসাধারণ!!

c911c127bffdee57.jpeg

এরপর কী?

এই কোডল্যাবগুলো দেখে নিন...

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

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