১. ভূমিকা
প্রাইভেট সার্ভিস কানেক্ট-এর মাধ্যমে, সার্ভিস প্রডিউসাররা একটি সার্ভিস অ্যাটাচমেন্টের মাধ্যমে একটি ভিপিসি (VPC) পরিবেশে সার্ভিসগুলো উন্মুক্ত করতে পারে এবং অন্য একটি ভিপিসি পরিবেশে থাকা কনজিউমারদের একটি প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্টের মাধ্যমে সেই সার্ভিসগুলো অ্যাক্সেস করার সুযোগ দিতে পারে। কখনও কখনও এই প্রডিউসার সার্ভিসগুলো ভিএম (VM)-এর ক্লাস্টার হিসেবে ডিজাইন করা হয়, যেখানে প্রতিটি ভিএম একই পোর্ট নম্বরে একই সার্ভিসগুলো উন্মুক্ত করে। পূর্বে, এই সার্ভিস ডিজাইনগুলোর জন্য হয় কনজিউমার প্রান্তে একাধিক প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট স্থাপন করতে হতো, অথবা সঠিক প্রডিউসার ভিএম-কে টার্গেট করা নিশ্চিত করতে প্রডিউসার প্রান্তে আইপি ফরওয়ার্ডিং ব্যবহার করতে হতো।
প্রাইভেট সার্ভিস কানেক্ট এখন পোর্ট ম্যাপিং ব্যবহার করে স্বাভাবিকভাবেই সঠিক গন্তব্যকে টার্গেট করতে পারে। এই ল্যাবে, আপনি শিখবেন কোন কোন ক্ষেত্রে এই ফিচারটির প্রয়োজন হয় এবং কীভাবে একটি প্রাইভেট সার্ভিস কানেক্ট ওয়ার্কলোডে পোর্ট ম্যাপিং NEG স্থাপন করতে হয়।
আপনি যা শিখবেন
- প্রাইভেট সার্ভিস কানেক্ট পোর্ট ম্যাপিং ব্যবহারের ক্ষেত্রসমূহ
- পিএসসি পোর্ট ম্যাপিংয়ের মূল সুবিধাসমূহ
- নেটওয়ার্কের প্রয়োজনীয়তা
- পোর্ট ম্যাপিং ব্যবহার করে একটি প্রাইভেট সার্ভিস কানেক্ট প্রোডিউসার সার্ভিস তৈরি করুন।
- একটি ব্যক্তিগত সার্ভিস কানেক্ট এন্ডপয়েন্ট তৈরি করুন
- একটি প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্টের মাধ্যমে একটি প্রডিউসার সার্ভিসে কল করুন।
আপনার যা যা লাগবে
- মালিকের অনুমতি সহ গুগল ক্লাউড প্রজেক্ট
২. প্রাইভেট সার্ভিস কানেক্ট পোর্ট ম্যাপিং ব্যবহারের ক্ষেত্রসমূহ
পোর্ট ম্যাপিং ফিচারটি একটি পোর্ট ম্যাপিং এনইজি (নেটওয়ার্ক এন্ডপয়েন্ট গ্রুপ) ব্যবহার করে, যা বিশেষভাবে পিএসসি ব্যবহারের জন্য তৈরি।
পোর্ট ম্যাপিং ব্যবহার করে সবচেয়ে বেশি উপকৃত হতে পারে এমন প্রডিউসারদের মধ্যে রয়েছে NoSQL ডাটাবেস প্রডিউসার এবং কাফকা প্রডিউসার। তবে, যেকোনো প্রডিউসার যার নির্দিষ্ট ভিএম ম্যাপিং প্রয়োজনীয়তাসহ অভিন্ন পোর্টে একই পরিষেবা প্রদানকারী ভিএম-এর একটি ক্লাস্টার প্রয়োজন, সে এই বৈশিষ্ট্যটি ব্যবহার করতে পারে।
প্রডিউসার একটি ক্লায়েন্ট পোর্ট এবং একটি প্রডিউসার ভিএম ও ডেস্টিনেশন পোর্টের মধ্যেকার ম্যাপিং নির্ধারণ করে। এরপর প্রডিউসারকে এই তথ্য কনজিউমারের সাথে শেয়ার করতে হয়। কনজিউমার পূর্বনির্ধারিত পোর্টগুলো ব্যবহার করে স্বতন্ত্রভাবে শনাক্ত করে যে তাদের কোন প্রডিউসার ভিএম ও ডেস্টিনেশন পোর্টে পৌঁছাতে হবে। কনজিউমার যে পোর্টটি ব্যবহার করে, তা প্রডিউসারের ব্যবহৃত পোর্ট থেকে ভিন্ন।
পিএসসি পোর্ট ম্যাপিংয়ের প্রধান সুবিধাসমূহ
- সহজ কথায়: প্রডিউসাররা পোর্ট ম্যাপিং সহ PSC কম্পোনেন্টগুলো স্থাপন করে, এবং কনজিউমাররা একটি PSC এন্ডপয়েন্ট স্থাপন করে। PSC স্বয়ংক্রিয়ভাবে নেটওয়ার্ক অ্যাড্রেস ট্রান্সলেশনের কাজটি করে।
- ব্যয়সাশ্রয়ী: এর জন্য কোনো অতিরিক্ত PSC রিসোর্স বা প্রডিউসার VM CPU সাইকেলের প্রয়োজন হয় না। এর মূল্য অন্যান্য ধরনের PSC ডেপ্লয়মেন্টের মতোই।
- উচ্চ-কর্মক্ষমতা: পোর্ট ম্যাপিং অন্যান্য PSC মোডের মতোই লাইন-রেট থ্রুপুট এবং কম ল্যাটেন্সি প্রদান করে।
- সম্প্রসারণযোগ্য এবং আইপি-দক্ষ: কনজিউমার ভিপিসি থেকে একটি আইপি অ্যাড্রেসের মাধ্যমে সর্বোচ্চ ১০০০টি প্রোডিউসার ভিএম এবং ১০০০টি পোর্ট ম্যাপিং অ্যাক্সেস করা যায়।
৩. নেটওয়ার্কের প্রয়োজনীয়তা
- পোর্ট ম্যাপিংয়ের জন্য প্রডিউসার লোড ব্যালান্সার হিসেবে একটি ইন্টারনাল নেটওয়ার্ক পাসথ্রু লোড ব্যালান্সার ব্যবহার করা আবশ্যক।
- পোর্ট ম্যাপিং-এর সাথে শুধুমাত্র PSC এন্ডপয়েন্ট ব্যবহার করা যায় (PSC ব্যাকএন্ড বা PSC ইন্টারফেস নয়)।
- বন্দর ম্যাপিং এনইজিগুলো আঞ্চলিক কাঠামো।
- পোর্ট ম্যাপিং NEG শুধুমাত্র একটি PSC কানেকশনের মাধ্যমে ব্যবহার করা যায়। ক্লায়েন্ট VM যদি সরাসরি প্রডিউসার লোড ব্যালেন্সার ফরওয়ার্ডিং রুল কল করে, তাহলে এগুলি কাজ করবে না। এই কোডল্যাবে প্রডিউসার সার্ভিসটি যেভাবে পরীক্ষা করা হয়েছে, তাতে এই বিষয়টি প্রতিফলিত হয়েছে।
- PSC এন্ডপয়েন্ট এবং প্রডিউসার সার্ভিস স্ট্যাক অবশ্যই ভিন্ন VPC-তে থাকতে হবে।
৪. কোডল্যাব টপোলজি

প্রডিউসার ভিপিসি-তে দুটি ভিএম তৈরি করা হবে, যেগুলিতে দুটি করে ওয়েব সার্ভার চলবে; একটি পোর্ট ১০০০-এ এবং অন্যটি পোর্ট ২০০০-এ। পোর্টম্যাপ এনইজি, ইন্টারনাল নেটওয়ার্ক পাসথ্রু লোড ব্যালেন্সার এবং সার্ভিস অ্যাটাচমেন্ট সেট আপ করার আগে আমরা প্রতিটি সার্ভিস পরীক্ষা করে দেখব।
কনজিউমার ভিপিসিতে, আমরা একটি পিএসসি এন্ডপয়েন্ট সেট আপ করব এবং একটি ক্লায়েন্ট ভিএম থেকে প্রডিউসার সার্ভিসের সাথে কানেক্টিভিটি পরীক্ষা করব।
৫. সেটআপ এবং প্রয়োজনীয়তা
স্ব-গতিতে পরিবেশ সেটআপ
- Google Cloud Console- এ সাইন-ইন করুন এবং একটি নতুন প্রজেক্ট তৈরি করুন অথবা বিদ্যমান কোনো প্রজেক্ট পুনরায় ব্যবহার করুন। যদি আপনার আগে থেকে Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে।



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

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

এই ভার্চুয়াল মেশিনটিতে আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুলস লোড করা আছে। এটি একটি স্থায়ী ৫ জিবি হোম ডিরেক্টরি প্রদান করে এবং গুগল ক্লাউডে চলে, যা নেটওয়ার্ক পারফরম্যান্স ও অথেনটিকেশনকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার সমস্ত কাজ একটি ব্রাউজারের মধ্যেই করা যাবে। আপনাকে কিছুই ইনস্টল করতে হবে না।
৬. শুরু করার আগে
এপিআই সক্ষম করুন
ক্লাউড শেলের ভিতরে, নিশ্চিত করুন যে আপনার প্রজেক্ট আইডি সেট আপ করা আছে।
gcloud config list project gcloud config set project [YOUR-PROJECT-ID] project=[YOUR-PROJECT-ID] region=us-central1 zone=us-central1-a echo $project echo $region echo $zone
সমস্ত প্রয়োজনীয় পরিষেবা সক্রিয় করুন
gcloud services enable compute.googleapis.com
৭. প্রোডিউসার ভিপিসি নেটওয়ার্ক তৈরি করুন
ভিপিসি নেটওয়ার্ক
ক্লাউড শেল থেকে
gcloud compute networks create producer-vpc --subnet-mode custom
সাবনেট তৈরি করুন
ক্লাউড শেল থেকে
gcloud compute networks subnets create producer-service-subnet --network producer-vpc --range 10.0.0.0/24 --region $region --enable-private-ip-google-access gcloud compute networks subnets create psc-nat-subnet --network producer-vpc --range 10.100.100.0/24 --region $region --purpose=PRIVATE_SERVICE_CONNECT
নেটওয়ার্ক অ্যাড্রেস ট্রান্সলেশনের উদ্দেশ্যে পিএসসি সাবনেটটি পিএসসি সার্ভিস অ্যাটাচমেন্টের সাথে যুক্ত করা হবে। প্রোডাকশন ব্যবহারের ক্ষেত্রে, সংযুক্ত সমস্ত পিএসসি এন্ডপয়েন্ট থেকে আসা ট্র্যাফিকের পরিমাণ সামাল দেওয়ার জন্য এই সাবনেটটির আকার যথাযথভাবে নির্ধারণ করা প্রয়োজন। আরও তথ্যের জন্য পিএসসি এনএটি সাবনেট সাইজিং ডকুমেন্টেশন দেখুন।
নেটওয়ার্ক ফায়ারওয়াল পলিসি এবং ফায়ারওয়াল নিয়ম তৈরি করুন
ক্লাউড শেল থেকে
gcloud compute network-firewall-policies create producer-vpc-policy --global gcloud compute network-firewall-policies associations create --firewall-policy producer-vpc-policy --network producer-vpc --name network-producer-vpc --global-firewall-policy
আপনার VM ইনস্ট্যান্সগুলিতে IAP-কে সংযোগ করার অনুমতি দিতে, এমন একটি ফায়ারওয়াল নিয়ম তৈরি করুন যা:
- এটি সেই সমস্ত VM ইনস্ট্যান্সের ক্ষেত্রে প্রযোজ্য, যেগুলোকে আপনি IAP ব্যবহার করে অ্যাক্সেসযোগ্য করতে চান।
- 35.235.240.0/20 আইপি রেঞ্জ থেকে ইনগ্রেস ট্র্যাফিকের অনুমতি দেয়। এই রেঞ্জে সেই সমস্ত আইপি অ্যাড্রেস রয়েছে যা IAP টিসিপি ফরওয়ার্ডিংয়ের জন্য ব্যবহার করে।
ক্লাউড শেল থেকে
gcloud compute network-firewall-policies rules create 1000 --action ALLOW --firewall-policy producer-vpc-policy --description "SSH with IAP" --direction INGRESS --src-ip-ranges 35.235.240.0/20 --layer4-configs tcp:22 --global-firewall-policy
নিম্নলিখিত ফায়ারওয়াল নিয়মটি PSC সাবনেট থেকে নেটওয়ার্কের সমস্ত ইনস্ট্যান্সে TCP পোর্ট 1000-2000-এর ট্র্যাফিককে অনুমতি দেয়। একটি প্রোডাকশন পরিবেশে, এই ফায়ারওয়াল নিয়মটি শুধুমাত্র নির্দিষ্ট প্রডিউসার সার্ভিসের সাথে যুক্ত ইনস্ট্যান্সগুলিতে সীমাবদ্ধ রাখা উচিত।
ক্লাউড শেল থেকে
gcloud compute network-firewall-policies rules create 2000 --action ALLOW --firewall-policy producer-vpc-policy --description "allow traffic from PSC NAT subnet" --direction INGRESS --src-ip-ranges 10.100.100.0/24 --layer4-configs tcp:1000-2000 --global-firewall-policy
নিম্নলিখিত ফায়ারওয়াল নিয়মটি সার্ভিসেস সাবনেটের মধ্যে TCP পোর্ট 1000-2000-এ সমস্ত ট্র্যাফিকের অনুমতি দেয়। আমাদের প্রডিউসার সার্ভিসটি যথাযথভাবে কাজ করছে কিনা তা পরীক্ষা করার জন্য এই নিয়মটি ব্যবহার করা হবে।
ক্লাউড শেল থেকে
gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy producer-vpc-policy --description "allow traffic within the service subnet" --direction INGRESS --src-ip-ranges 10.0.0.0/24 --layer4-configs tcp:1000-2000 --global-firewall-policy
প্রডিউসার ভিএম তৈরি এবং কনফিগার করুন
ভিএম তৈরি করুন
ক্লাউড শেল থেকে
gcloud compute instances create portmap-vm1 --zone=$zone --subnet=producer-service-subnet --no-address gcloud compute instances create portmap-vm2 --zone=$zone --subnet=producer-service-subnet --no-address gcloud compute instances create test-client-vm --zone=$zone --subnet=producer-service-subnet --no-address
পরবর্তী অংশে, প্রতিটি প্রোডিউসার ভিএম-এ পোর্ট 1000 এবং 2000-এ http সার্ভার চালু করুন।
ভিএম কনফিগার করুন
ক্লাউড শেল থেকে
gcloud compute ssh --zone $zone "portmap-vm1" --tunnel-through-iap --project $project
পোর্টম্যাপ-ভিএম১ সেশন থেকে ক্লাউড শেলে
mkdir 1000 cd 1000 echo "portmap-vm1 1000">index.html sudo python3 -m http.server 1000 & cd .. mkdir 2000 cd 2000 echo "portmap-vm1 2000">index.html sudo python3 -m http.server 2000 &
একটি নতুন ক্লাউড শেল উইন্ডো খুলুন
ভেরিয়েবল রিসেট করে শুরু করুন। ক্লাউড শেলে।
project=[YOUR-PROJECT-ID] region=us-central1 zone=us-central1-a echo $project echo $region echo $zone gcloud compute ssh --zone $zone "portmap-vm2" --tunnel-through-iap --project $project
পোর্টম্যাপ-ভিএম২ সেশন থেকে ক্লাউড শেলে
mkdir 1000 cd 1000 echo "portmap-vm2 1000">index.html sudo python3 -m http.server 1000 & cd .. mkdir 2000 cd 2000 echo "portmap-vm2 2000">index.html sudo python3 -m http.server 2000 &
৮. টেস্ট প্রডিউসার সার্ভিস
প্রথমে, আমাদের পোর্টম্যাপ ইনস্ট্যান্সগুলোর আইপি অ্যাড্রেস সংগ্রহ করতে হবে। এই দুটি আইপি অ্যাড্রেসই লিখে রাখুন।
একটি নতুন ক্লাউড শেল উইন্ডো খুলুন
ভেরিয়েবল রিসেট করে শুরু করুন। ক্লাউড শেলে।
project=[YOUR-PROJECT-ID] region=us-central1 zone=us-central1-a echo $project echo $region echo $zone gcloud compute instances describe portmap-vm1 \ --format='get(networkInterfaces[0].networkIP)' --zone $zone gcloud compute instances describe portmap-vm2\ --format='get(networkInterfaces[0].networkIP)' --zone $zone
টেস্ট ইনস্ট্যান্সে লগ ইন করুন। ক্লাউড শেলে
gcloud compute ssh --zone $zone "test-client-vm" --tunnel-through-iap --project $project curl [portmap-vm1 IP]:1000
প্রত্যাশিত আউটপুট
portmap-vm1 1000
ক্লাউড শেলে
curl [portmap-vm1 IP]:2000
প্রত্যাশিত আউটপুট
portmap-vm1 2000
ক্লাউড শেলে
curl [portmap-vm2 IP]:1000
প্রত্যাশিত আউটপুট
portmap-vm2 1000
ক্লাউড শেলে
curl [portmap-vm2 IP]:2000
প্রত্যাশিত আউটপুট
portmap-vm2 2000
টেস্ট-ক্লায়েন্ট-ভিএম থেকে প্রস্থান করুন
৯. পোর্টম্যাপ NEG ব্যবহার করে প্রোডিউসার সার্ভিস তৈরি করুন
লোড ব্যালেন্সার উপাদান তৈরি করুন
ক্লাউড শেল থেকে
gcloud compute network-endpoint-groups create portmap-neg --region=$region --network=producer-vpc --subnet=producer-service-subnet --network-endpoint-type=GCE_VM_IP_PORTMAP
ক্লায়েন্ট পোর্ট থেকে প্রডিউসার পোর্টে ম্যাপিং তৈরি করতে Portmap NEG-তে এন্ডপয়েন্ট যোগ করুন। প্রডিউসার এই ম্যাপিংটি তৈরি করে এবং কনজিউমারদের কাছে এই তথ্য জানানোর জন্য তার নিজস্ব পদ্ধতি থাকবে। নির্দিষ্ট পোর্ট ম্যাপিংটি PSC-এর মাধ্যমে শেয়ার করা হয় না।
ক্লাউড শেলে
gcloud compute network-endpoint-groups update portmap-neg --region=$region --add-endpoint=client-destination-port=1001,instance=projects/$project/zones/$zone/instances/portmap-vm1,port=1000 --add-endpoint=client-destination-port=1002,instance=projects/$project/zones/$zone/instances/portmap-vm1,port=2000 --add-endpoint=client-destination-port=1003,instance=projects/$project/zones/$zone/instances/portmap-vm2,port=1000 --add-endpoint=client-destination-port=1004,instance=projects/$project/zones/$zone/instances/portmap-vm2,port=2000
লোড ব্যালেন্সার বিল্ড আউটটি সম্পূর্ণ করুন।
ক্লাউড শেলে
gcloud compute backend-services create portmap-bes --load-balancing-scheme=internal --region=$region --network=producer-vpc gcloud compute backend-services add-backend portmap-bes --network-endpoint-group=portmap-neg --network-endpoint-group-region=$region gcloud compute forwarding-rules create portmap-fr --load-balancing-scheme=INTERNAL --network=producer-vpc --subnet=producer-service-subnet --ports=ALL --region=$region --backend-service=portmap-bes
সার্ভিস সংযুক্তি তৈরি করুন
ক্লাউড শেল থেকে
gcloud compute service-attachments create portmap-service-attachment --region=$region --producer-forwarding-rule=portmap-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=psc-nat-subnet
এরপরে, কনজিউমার এনভায়রনমেন্টে PSC এন্ডপয়েন্ট কনফিগার করার জন্য সার্ভিস অ্যাটাচমেন্ট URI-টি সংগ্রহ করে নোট করুন।
ক্লাউড শেলে
gcloud compute service-attachments describe portmap-service-attachment --region=$region
উদাহরণ প্রত্যাশিত আউটপুট
connectionPreference: ACCEPT_AUTOMATIC creationTimestamp: '2024-07-19T10:02:29.432-07:00' description: '' enableProxyProtocol: false fingerprint: LI8D6JNQsLA= id: '6207474793859982026' kind: compute#serviceAttachment name: portmap-service-attachment natSubnets: - https://www.googleapis.com/compute/v1/projects/$project/regions/$zone/subnetworks/psc-nat-subnet pscServiceAttachmentId: high: '94288091358954472' low: '6207474793859982026' reconcileConnections: false region: https://www.googleapis.com/compute/v1/projects/$project/regions/$region selfLink: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/serviceAttachments/portmap-service-attachment targetService: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/portmap-fr
১০. কনজিউমার ভিপিসি নেটওয়ার্ক তৈরি করুন
ভিপিসি নেটওয়ার্ক
ক্লাউড শেল থেকে
gcloud compute networks create consumer-vpc --subnet-mode custom
সাবনেট তৈরি করুন
ক্লাউড শেল থেকে
gcloud compute networks subnets create consumer-client-subnet --network consumer-vpc --range=10.0.0.0/24 --region $region --enable-private-ip-google-access
নেটওয়ার্ক ফায়ারওয়াল পলিসি এবং ফায়ারওয়াল নিয়ম তৈরি করুন
ক্লাউড শেল থেকে
gcloud compute network-firewall-policies create consumer-vpc-policy --global gcloud compute network-firewall-policies associations create --firewall-policy consumer-vpc-policy --network consumer-vpc --name network-consumer-vpc --global-firewall-policy gcloud compute network-firewall-policies rules create 1000 --action ALLOW --firewall-policy consumer-vpc-policy --description "SSH with IAP" --direction INGRESS --src-ip-ranges 35.235.240.0/20 --layer4-configs tcp:22 --global-firewall-policy
কনজিউমার নেটওয়ার্কের জন্য শুধুমাত্র IAP অ্যাক্সেস থেকে SSH প্রয়োজন।
১১. ভিএম, পিএসসি এন্ডপয়েন্ট তৈরি করুন এবং সংযোগ পরীক্ষা করুন
এই পর্যায়ে, তিনটি ক্লাউড শেল উইন্ডো খোলা থাকা উচিত। একটিতে portmap-vm1-এর সাথে একটি খোলা সেশন, একটিতে portmap-vm2-এর সাথে একটি খোলা সেশন এবং অন্যটি ওয়ার্কিং সেশন হিসেবে থাকবে।
টেস্ট ভিএম তৈরি করুন
ক্লাউড শেল থেকে
gcloud compute instances create consumer-client-vm --zone $zone --subnet=consumer-client-subnet --no-address
পিএসসি এন্ডপয়েন্ট তৈরি করুন
ক্লাউড শেল থেকে
gcloud compute addresses create psc-endpoint-ip --region=$region --subnet=consumer-client-subnet --addresses 10.0.0.10 gcloud compute forwarding-rules create psc-portmap-endpoint --region=$region --network=consumer-vpc --address=psc-endpoint-ip --target-service-attachment=[SERVICE ATTACHMENT URI]
সংযোগ পরীক্ষা করুন
ক্লাউড শেল থেকে
gcloud compute ssh --zone $zone "consumer-client-vm" --tunnel-through-iap --project $project curl 10.0.0.10:1001
প্রত্যাশিত আউটপুট
portmap-vm1 1000
ক্লাউড শেল থেকে
curl 10.0.0.10:1002
প্রত্যাশিত আউটপুট
portmap-vm1 2000
ক্লাউড শেল থেকে
curl 10.0.0.10:1003
প্রত্যাশিত আউটপুট
portmap-vm2 1000
ক্লাউড শেল থেকে
curl 10.0.0.10:1004
প্রত্যাশিত আউটপুট
portmap-vm2 2000
১২. পরিষ্কার করার পদক্ষেপ
ভিএম ইনস্ট্যান্স থেকে প্রস্থান করুন (সকল উইন্ডো)
exit
একটিমাত্র ক্লাউড শেল টার্মিনাল থেকে ল্যাবের উপাদানগুলো মুছে ফেলুন
gcloud compute forwarding-rules delete psc-portmap-endpoint --region=$region -q gcloud compute addresses delete psc-endpoint-ip --region=$region -q gcloud compute instances delete consumer-client-vm --zone=$zone -q gcloud compute network-firewall-policies rules delete 1000 --firewall-policy=consumer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies associations delete --firewall-policy=consumer-vpc-policy --name=network-consumer-vpc --global-firewall-policy -q gcloud compute network-firewall-policies delete consumer-vpc-policy --global -q gcloud compute networks subnets delete consumer-client-subnet --region=$region -q gcloud compute networks delete consumer-vpc -q gcloud compute service-attachments delete portmap-service-attachment --region=$region -q gcloud compute forwarding-rules delete portmap-fr --region=$region -q gcloud compute backend-services delete portmap-bes --region=$region -q gcloud compute network-endpoint-groups delete portmap-neg --region=$region -q gcloud compute instances delete test-client-vm --zone=$zone -q gcloud compute instances delete portmap-vm2 --zone=$zone -q gcloud compute instances delete portmap-vm1 --zone=$zone -q gcloud compute network-firewall-policies rules delete 2001 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies rules delete 2000 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies rules delete 1000 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies associations delete --firewall-policy=producer-vpc-policy --name=network-producer-vpc --global-firewall-policy -q gcloud compute network-firewall-policies delete producer-vpc-policy --global -q gcloud compute networks subnets delete psc-nat-subnet --region $region -q gcloud compute networks subnets delete producer-service-subnet --region $region -q gcloud compute networks delete producer-vpc -q
১৩. অভিনন্দন!
কোডল্যাবটি সম্পন্ন করার জন্য অভিনন্দন।
আমরা যা আলোচনা করেছি
- প্রাইভেট সার্ভিস কানেক্ট পোর্ট ম্যাপিং ব্যবহারের ক্ষেত্রসমূহ
- পিএসসি পোর্ট ম্যাপিংয়ের মূল সুবিধাসমূহ
- নেটওয়ার্কের প্রয়োজনীয়তা
- পোর্ট ম্যাপিং ব্যবহার করে একটি প্রাইভেট সার্ভিস কানেক্ট প্রোডিউসার সার্ভিস তৈরি করুন।
- একটি ব্যক্তিগত সার্ভিস কানেক্ট এন্ডপয়েন্ট তৈরি করুন
- একটি প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্টের মাধ্যমে একটি প্রডিউসার সার্ভিসে কল করুন।