১. ভূমিকা
হাইব্রিড কানেক্টিভিটি সহ একটি অভ্যন্তরীণ আঞ্চলিক TCP প্রক্সি লোড ব্যালেন্সার আপনাকে অন-প্রিমিসেস বা অন্যান্য ক্লাউড পরিবেশে হোস্ট করা কোনো পরিষেবা আপনার VPC নেটওয়ার্কের ক্লায়েন্টদের জন্য উপলব্ধ করতে দেয়।
আপনি যদি হাইব্রিড পরিষেবাটি অন্যান্য VPC নেটওয়ার্কে উপলব্ধ করতে চান, তাহলে পরিষেবাটি প্রকাশ করার জন্য আপনি প্রাইভেট সার্ভিস কানেক্ট ব্যবহার করতে পারেন। আপনার অভ্যন্তরীণ আঞ্চলিক TCP প্রক্সি লোড ব্যালান্সারের সামনে একটি পরিষেবা অ্যাটাচমেন্ট স্থাপন করে, আপনি অন্যান্য VPC নেটওয়ার্কের ক্লায়েন্টদের অন-প্রিমিসেস বা অন্যান্য ক্লাউড পরিবেশে চলমান হাইব্রিড পরিষেবাগুলিতে পৌঁছানোর সুযোগ দিতে পারেন।
আপনি যা তৈরি করবেন
এই কোডল্যাবে, আপনি একটি নেটওয়ার্ক এন্ডপয়েন্ট গ্রুপ ব্যবহার করে অন-প্রিমিস সার্ভিসের সাথে হাইব্রিড কানেক্টিভিটিসহ একটি অভ্যন্তরীণ TCP প্রক্সি লোড ব্যালান্সার তৈরি করবেন। এর মাধ্যমে কনজিউমার VPC থেকে অন-প্রিমিস সার্ভিসের সাথে যোগাযোগ করা যাবে।

আপনি যা শিখবেন
- হাইব্রিড এনইজি ব্যাকএন্ড পরিষেবা সহ একটি টিসিপি প্রক্সি আইএলবি কীভাবে তৈরি করবেন
- কীভাবে একটি প্রাইভেট সার্ভিস কানেক্ট প্রডিউসার (সার্ভিস অ্যাটাচমেন্ট) এবং কনজিউমার (ফরওয়ার্ডিং রুল) স্থাপন করবেন
- ভোক্তা থেকে উৎপাদকের পরিষেবা যোগাযোগ কীভাবে পরীক্ষা ও যাচাই করা যায়
আপনার যা যা লাগবে
- প্রতিষ্ঠিত হাইব্রিড নেটওয়ার্কিং যেমন HA VPN, ইন্টারকানেক্ট, SW-WAN
- গুগল ক্লাউড প্রজেক্ট
হাইব্রিড সংযোগ স্থাপন করুন
আপনার গুগল ক্লাউড এবং অন-প্রিমিসেস বা অন্যান্য ক্লাউড এনভায়রনমেন্ট অবশ্যই হাইব্রিড কানেক্টিভিটির মাধ্যমে সংযুক্ত থাকতে হবে, যার জন্য ক্লাউড ইন্টারকানেক্ট ভিএলএএন অ্যাটাচমেন্ট অথবা ক্লাউড রাউটারের সাথে ক্লাউড ভিপিএন টানেল ব্যবহার করতে হবে। আমরা আপনাকে একটি হাই অ্যাভেইলেবিলিটি কানেকশন ব্যবহার করার পরামর্শ দিই।
গ্লোবাল ডাইনামিক রাউটিং সক্ষম একটি ক্লাউড রাউটার BGP-এর মাধ্যমে নির্দিষ্ট এন্ডপয়েন্ট সম্পর্কে জানতে পারে এবং সেটিকে আপনার গুগল ক্লাউড VPC নেটওয়ার্কে প্রোগ্রাম করে। রিজিওনাল ডাইনামিক রাউটিং সমর্থিত নয়। স্ট্যাটিক রুটও সমর্থিত নয়।
ক্লাউড ইন্টারকানেক্ট অথবা ক্লাউড ভিপিএন কনফিগার করার জন্য আপনি যে গুগল ক্লাউড ভিপিসি নেটওয়ার্ক ব্যবহার করেন, হাইব্রিড লোড ব্যালান্সিং ডেপ্লয়মেন্ট কনফিগার করার জন্যও সেই একই নেটওয়ার্ক ব্যবহার করতে হয়। নিশ্চিত করুন যে আপনার ভিপিসি নেটওয়ার্কের সাবনেট সিআইডিআর রেঞ্জগুলো আপনার রিমোট সিআইডিআর রেঞ্জগুলোর সাথে সাংঘর্ষিক না হয়। যখন আইপি অ্যাড্রেসগুলো ওভারল্যাপ করে, তখন রিমোট কানেক্টিভিটির চেয়ে সাবনেট রুটগুলোকে অগ্রাধিকার দেওয়া হয়।
নির্দেশাবলীর জন্য দেখুন:
কাস্টম রুট বিজ্ঞাপন
নিম্নোক্ত সাবনেটগুলোর জন্য ক্লাউড রাউটার থেকে অন-প্রেমিস নেটওয়ার্কে কাস্টম অ্যাডভার্টাইজমেন্ট প্রয়োজন, যা অন-প্রেমিস ফায়ারওয়াল রুলগুলো আপডেট করা নিশ্চিত করে।
সাবনেট | বর্ণনা |
১৭২.১৬.০.০/২৩ | অন-প্রিমিস পরিষেবার সাথে সরাসরি যোগাযোগের জন্য ব্যবহৃত টিসিপি প্রক্সি সাবনেট। |
১৩০.২১১.০.০/২২, ৩৫.১৯১.০.০/১৬ |
২. শুরু করার আগে
কোডল্যাব সমর্থন করার জন্য প্রকল্পটি আপডেট করুন।
এই কোডল্যাবটি ক্লাউড শেলে gcloud কনফিগারেশন বাস্তবায়নে সাহায্য করার জন্য $variables ব্যবহার করে।
ক্লাউড শেলের ভিতরে নিম্নলিখিতগুলি সম্পাদন করুন
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
psclab=YOUR-PROJECT-NAME
echo $psclab
৩. প্রযোজক সেটআপ
প্রযোজক ভিপিসি তৈরি করুন
ক্লাউড শেলের ভিতরে নিম্নলিখিতগুলি সম্পাদন করুন
gcloud compute networks create producer-vpc --project=$psclab --subnet-mode=custom
প্রযোজক সাবনেটগুলি তৈরি করুন
ক্লাউড শেলের ভিতরে নিম্নলিখিতগুলি সম্পাদন করুন
gcloud compute networks subnets create subnet-201 --project=$psclab --range=10.10.1.0/24 --network=producer-vpc --region=us-central1
TCP প্রক্সি সাবনেট তৈরি করুন
প্রক্সি বরাদ্দ VPC পর্যায়ে করা হয়, লোড ব্যালেন্সার পর্যায়ে নয়। আপনি যে ভার্চুয়াল নেটওয়ার্ক (VPC) অঞ্চলে Envoy-ভিত্তিক লোড ব্যালেন্সার ব্যবহার করেন, তার প্রতিটি অঞ্চলে আপনাকে অবশ্যই একটি প্রক্সি-অনলি সাবনেট তৈরি করতে হবে। যদি আপনি একই অঞ্চলে এবং একই VPC নেটওয়ার্কে একাধিক লোড ব্যালেন্সার স্থাপন করেন, তবে লোড ব্যালেন্সিংয়ের জন্য তারা একই প্রক্সি-অনলি সাবনেট ব্যবহার করবে।
- একটি ক্লায়েন্ট লোড ব্যালান্সারের ফরওয়ার্ডিং রুলের আইপি অ্যাড্রেস এবং পোর্টের সাথে সংযোগ স্থাপন করে।
- প্রতিটি প্রক্সি সংশ্লিষ্ট লোড ব্যালান্সারের ফরওয়ার্ডিং নিয়ম দ্বারা নির্দিষ্ট করা আইপি অ্যাড্রেস এবং পোর্টে শোনে। প্রক্সিগুলোর মধ্যে একটি ক্লায়েন্টের নেটওয়ার্ক সংযোগ গ্রহণ করে এবং বিচ্ছিন্ন করে দেয়।
- লোড ব্যালান্সারের ইউআরএল ম্যাপ এবং ব্যাকএন্ড সার্ভিসগুলো দ্বারা নির্ধারিত অনুযায়ী, প্রক্সিটি একটি NEG-এর মধ্যে থাকা উপযুক্ত ব্যাকএন্ড ভিএম বা এন্ডপয়েন্টের সাথে সংযোগ স্থাপন করে।
আপনার নেটওয়ার্ক অটো-মোড বা কাস্টম, যা-ই হোক না কেন, আপনাকে অবশ্যই প্রক্সি-অনলি সাবনেট তৈরি করতে হবে। একটি প্রক্সি-অনলি সাবনেটে অবশ্যই ৬৪ বা তার বেশি আইপি অ্যাড্রেস থাকতে হবে। এটি /26 বা তার চেয়ে ছোট প্রিফিক্স লেংথের সমতুল্য। প্রস্তাবিত সাবনেট সাইজ হলো /23 (৫১২টি প্রক্সি-অনলি অ্যাড্রেস)।
ক্লাউড শেলের ভিতরে নিম্নলিখিতগুলি সম্পাদন করুন
gcloud compute networks subnets create proxy-subnet-us-central \
--purpose=REGIONAL_MANAGED_PROXY \
--role=ACTIVE \
--region=us-central1 \
--network=producer-vpc \
--range=172.16.0.0/23
প্রাইভেট সার্ভিস কানেক্ট NAT সাবনেট তৈরি করুন
প্রাইভেট সার্ভিস কানেক্ট-এর সাথে ব্যবহারের জন্য এক বা একাধিক ডেডিকেটেড সাবনেট তৈরি করুন । আপনি যদি কোনো সার্ভিস পাবলিশ করার জন্য গুগল ক্লাউড কনসোল ব্যবহার করেন, তাহলে সেই প্রক্রিয়ার সময়েই সাবনেটগুলো তৈরি করতে পারেন। সার্ভিসটির লোড ব্যালান্সারের একই অঞ্চলে সাবনেটটি তৈরি করুন। আপনি একটি সাধারণ সাবনেটকে প্রাইভেট সার্ভিস কানেক্ট সাবনেটে রূপান্তর করতে পারবেন না।
ক্লাউড শেলের ভিতরে নিম্নলিখিতগুলি সম্পাদন করুন
gcloud compute networks subnets create psc-nat-subnet --network=producer-vpc --region=us-central1 --range=100.100.10.0/24 --purpose=private-service-connect
প্রযোজক ফায়ারওয়াল নিয়ম তৈরি করুন
প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট এবং সার্ভিস অ্যাটাচমেন্টের মধ্যে ট্র্যাফিকের অনুমতি দেওয়ার জন্য ফায়ারওয়াল নিয়ম কনফিগার করুন। কোডল্যাবে, একটি ইনগ্রেস ফায়ারওয়াল নিয়ম তৈরি করা হয়েছে যা NAT সাবনেট 100.100.10.0/24-কে প্রাইভেট সার্ভিস কানেক্ট সার্ভিস অ্যাটাচমেন্টে (অভ্যন্তরীণ লোড ব্যালেন্সার) অ্যাক্সেসের অনুমতি দেয়।
ক্লাউড শেলের ভিতরে নিম্নলিখিতগুলি সম্পাদন করুন
gcloud compute --project=$psclab firewall-rules create allow-to-ingress-nat-subnet --direction=INGRESS --priority=1000 --network=producer-vpc --action=ALLOW --rules=all --source-ranges=100.100.10.0/24
ক্লাউড শেলের ভিতরে, TCP পোর্ট ৮০-তে অন-প্রেমিস পরিষেবাতে (ব্যাকএন্ড পরিষেবা) গুগল ক্লাউড স্বাস্থ্য পরীক্ষাগুলিকে অ্যাক্সেস করার অনুমতি দেওয়ার জন্য fw-allow-health-check নিয়মটি তৈরি করুন।
gcloud compute firewall-rules create fw-allow-health-check \
--network=producer-vpc \
--action=allow \
--direction=ingress \
--source-ranges=130.211.0.0/22,35.191.0.0/16 \
--rules=tcp:80
একটি ইনগ্রেস ফায়ারওয়াল নিয়ম তৈরি করুন যা অন-প্রেমিস পরিষেবাগুলিকে পোর্ট ৮০-তে প্রক্সি সাবনেটের সাথে যোগাযোগ করার অনুমতি দেবে।
gcloud compute firewall-rules create fw-allow-proxy-only-subnet \
--network=producer-vpc \
--action=allow \
--direction=ingress \
--source-ranges=172.16.0.0/23 \
--rules=tcp:80
হাইব্রিড সংযোগ সেট আপ করুন NEG
NEG তৈরি করার সময়, এমন একটি ZONE ব্যবহার করুন যা Google Cloud এবং আপনার অন-প্রিমিসেস বা অন্য ক্লাউড এনভায়রনমেন্টের মধ্যে ভৌগোলিক দূরত্ব কমিয়ে আনে। উদাহরণস্বরূপ, আপনি যদি জার্মানির ফ্রাঙ্কফুর্টে কোনো অন-প্রিমিসেস এনভায়রনমেন্টে একটি পরিষেবা হোস্ট করেন, তাহলে NEG তৈরি করার সময় আপনি europe-west3-a Google Cloud জোনটি নির্দিষ্ট করে দিতে পারেন।
এছাড়াও, আপনি যদি ক্লাউড ইন্টারকানেক্ট ব্যবহার করেন, তাহলে NEG তৈরি করতে ব্যবহৃত ZONE-টি অবশ্যই সেই একই অঞ্চলে হতে হবে যেখানে ক্লাউড ইন্টারকানেক্ট অ্যাটাচমেন্টটি কনফিগার করা হয়েছিল।
উপলব্ধ অঞ্চল এবং জোনগুলির জন্য, Compute Engine ডকুমেন্টেশনের "উপলব্ধ অঞ্চল এবং জোন" অংশটি দেখুন।
ক্লাউড শেলের ভিতরে gcloud compute network-endpoint-groups create কমান্ডটি ব্যবহার করে একটি হাইব্রিড কানেক্টিভিটি NEG তৈরি করুন।
gcloud compute network-endpoint-groups create on-prem-service-neg \
--network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
--zone=us-central1-a \
--network=producer-vpc
ক্লাউড শেলের ভিতরে হাইব্রিড NEG-তে অন-প্রিমিসেস IP:Port এন্ডপয়েন্টটি যোগ করুন।
gcloud compute network-endpoint-groups update on-prem-service-neg \
--zone=us-central1-a \
--add-endpoint="ip=192.168.1.5,port=80"
লোড ব্যালেন্সার কনফিগার করুন
পরবর্তী ধাপগুলিতে আপনি লোড ব্যালেন্সার (ফরওয়ার্ডিং রুল) কনফিগার করবেন এবং এটিকে নেটওয়ার্ক এন্ডপয়েন্ট গ্রুপের সাথে যুক্ত করবেন।
ক্লাউড শেলের ভিতরে আঞ্চলিক স্বাস্থ্য-পরীক্ষা তৈরি করুন যা অন-প্রিমিস পরিষেবাতে পাঠানো হবে।
gcloud compute health-checks create tcp on-prem-service-hc \
--region=us-central1 \
--use-serving-port
ক্লাউড শেলের ভিতরে অন-প্রিমিস ব্যাকএন্ডের জন্য ব্যাকএন্ড সার্ভিসটি তৈরি করুন।
gcloud compute backend-services create on-premise-service-backend \
--load-balancing-scheme=INTERNAL_MANAGED \
--protocol=TCP \
--region=us-central1 \
--health-checks=on-prem-service-hc \
--health-checks-region=us-central1
ক্লাউড শেলের ভিতরে ব্যাকএন্ড সার্ভিসে হাইব্রিড NEG ব্যাকএন্ডটি যোগ করুন। MAX_CONNECTIONS-এর জন্য, ব্যাকএন্ডটি সর্বোচ্চ যতগুলো যুগপৎ সংযোগ পরিচালনা করতে পারবে, সেই সংখ্যাটি লিখুন।
gcloud compute backend-services add-backend on-premise-service-backend \
--network-endpoint-group=on-prem-service-neg \
--network-endpoint-group-zone=us-central1-a \
--region=us-central1 \
--balancing-mode=CONNECTION \
--max-connections=100
ক্লাউড শেলের ভিতরে টার্গেট প্রক্সি তৈরি করুন
gcloud compute target-tcp-proxies create on-premise-svc-tcpproxy \
--backend-service=on-premise-service-backend \
--region=us-central1
ক্লাউড শেলের ভিতরে ফরওয়ার্ডিং নিয়ম (ILB) তৈরি করুন।
`gcloud compute forwarding-rules create` কমান্ড ব্যবহার করে ফরওয়ার্ডিং রুলটি তৈরি করুন।
FWD_RULE_PORT-এর জায়গায় ১ থেকে ৬৫৫৩৫-এর মধ্যে যেকোনো একটি পোর্ট নম্বর বসান। এই ফরওয়ার্ডিং নিয়মটি শুধুমাত্র সেইসব প্যাকেট ফরওয়ার্ড করে, যেগুলোর গন্তব্য পোর্ট মিলে যায়।
gcloud compute forwarding-rules create tcp-ilb-psc \
--load-balancing-scheme=INTERNAL_MANAGED \
--network=producer-vpc \
--subnet=subnet-201 \
--ports=80 \
--region=us-central1 \
--target-tcp-proxy=on-premise-svc-tcpproxy \
--target-tcp-proxy-region=us-central1
অভ্যন্তরীণ লোড ব্যালান্সারের আইপি অ্যাড্রেসটি সংগ্রহ করুন।
gcloud compute forwarding-rules describe tcp-ilb-psc --region=us-central1 | grep -i IPAddress:
Example output:
gcloud compute forwarding-rules describe tcp-ilb-psc --region=us-central1 | grep -i IPAddress:
IPAddress: 10.10.1.2
৪. লোড ব্যালেন্সারটি যাচাই করুন
ক্লাউড কনসোল থেকে নেটওয়ার্ক সার্ভিসেস → লোড ব্যালান্সিং → লোড ব্যালান্সারস-এ যান। লক্ষ্য করুন, 1 NEG চিহ্নটি 'সবুজ' হয়ে গেছে, যা অন-প্রিমিস সার্ভিসের সফল হেলথ চেক নির্দেশ করে।

'on-premise-service-backend' নির্বাচন করলে ফ্রন্ট এন্ড আইপি অ্যাড্রেস পাওয়া যায়।

৫. অন-প্রেমিস থেকে শেখা রুটগুলো দেখুন
VPC নেটওয়ার্ক → রাউটস- এ যান। লক্ষ্য করুন, লার্নড অন-প্রিমিস সার্ভিস সাবনেটটি হলো 192.168.1.0/27।

৬. অন-প্রিমিস পরিষেবার সাথে সংযোগ যাচাই করুন।
প্রডিউসার ভিপিসি থেকে আমরা অন-প্রিমিস সার্ভিসের সাথে সংযোগ পরীক্ষা করার জন্য একটি ভিএম তৈরি করব, এরপর সার্ভিস অ্যাটাচমেন্টটি কনফিগার করতে হবে।
ক্লাউড শেলের ভিতরে প্রডিউসার ভিপিসিতে টেস্ট ইনস্ট্যান্সটি তৈরি করুন।
gcloud compute instances create test-box-us-central1 \
--zone=us-central1-a \
--image-family=debian-10 \
--image-project=debian-cloud \
--subnet=subnet-201 \
--no-address
আপনার VM ইনস্ট্যান্সগুলিতে IAP-কে সংযোগ করার অনুমতি দিতে, এমন একটি ফায়ারওয়াল নিয়ম তৈরি করুন যা:
- এটি সেই সমস্ত VM ইনস্ট্যান্সের ক্ষেত্রে প্রযোজ্য, যেগুলোকে আপনি IAP ব্যবহার করে অ্যাক্সেসযোগ্য করতে চান।
- 35.235.240.0/20 আইপি রেঞ্জ থেকে ইনগ্রেস ট্র্যাফিকের অনুমতি দেয়। এই রেঞ্জে সেই সমস্ত আইপি অ্যাড্রেস রয়েছে যা IAP টিসিপি ফরওয়ার্ডিংয়ের জন্য ব্যবহার করে।
ক্লাউড শেলের ভিতরে প্রডিউসার ভিপিসিতে টেস্ট ইনস্ট্যান্সটি তৈরি করুন।
gcloud compute firewall-rules create ssh-iap \
--network producer-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
অন-প্রেমিস পরিষেবার সাথে সংযোগ যাচাই করতে, ক্লাউড শেলে IAP ব্যবহার করে test-box-us-central1-এ লগ ইন করুন এবং লোড ব্যালেন্স আইপি অ্যাড্রেসে একটি `curl` কমান্ড চালান। টাইমআউট হলে পুনরায় চেষ্টা করুন।
gcloud compute ssh test-box-us-central1 --project=$psclab --zone=us-central1-a --tunnel-through-iap
অন-প্রেমিস পরিষেবার সাথে সংযোগ যাচাই করতে `curl` কমান্ড চালান। যাচাই হয়ে গেলে VM থেকে বেরিয়ে ক্লাউড শেল প্রম্পটে ফিরে আসুন। ধাপ ৩ এবং ৪-এ চিহ্নিত আপনার আউটপুটের উপর ভিত্তি করে ইন্টারনাল লোড ব্যালেন্সার আইপি প্রতিস্থাপন করুন।
deepakmichael@test-box-us-central1:~$ curl -v 10.10.1.2
* Expire in 0 ms for 6 (transfer 0x55b9a6b2f0f0)
* Trying 10.10.1.2...
* TCP_NODELAY set
* Expire in 200 ms for 4 (transfer 0x55b9a6b2f0f0)
* Connected to 10.10.1.2 (10.10.1.2) port 80 (#0)
> GET / HTTP/1.1
> Host: 10.10.1.2
> User-Agent: curl/7.64.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: text/html; charset=utf-8
< Accept-Ranges: bytes
< ETag: "3380914763"
< Last-Modified: Mon, 05 Dec 2022 15:10:56 GMT
< Expires: Mon, 05 Dec 2022 15:42:38 GMT
< Cache-Control: max-age=0
< Content-Length: 37
< Date: Mon, 05 Dec 2022 15:42:38 GMT
< Server: lighttpd/1.4.53
<
Welcome to my on-premise service!!
৭. ব্যক্তিগত সার্ভিস কানেক্ট সার্ভিস অ্যাটাচমেন্ট তৈরি করুন
পরবর্তী ধাপগুলোতে আমরা সার্ভিস অ্যাটাচমেন্ট তৈরি করব, যা একটি কনজিউমার এন্ডপয়েন্টের সাথে যুক্ত করার পর ভিপিসি পিয়ারিং ছাড়াই অন-প্রিমিস সার্ভিসে অ্যাক্সেস পাওয়া যাবে।
সার্ভিস অ্যাটাচমেন্ট তৈরি করুন
ক্লাউড শেলের ভিতরে সার্ভিস অ্যাটাচমেন্ট তৈরি করুন
gcloud compute service-attachments create service-1 --region=us-central1 --producer-forwarding-rule=tcp-ilb-psc --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=psc-nat-subnet
ঐচ্ছিক: যদি একটি শেয়ার্ড ভিপিসি ব্যবহার করেন, তাহলে সার্ভিস প্রজেক্টে সার্ভিস অ্যাটাচমেন্টটি তৈরি করুন।
gcloud compute service-attachments create service-1 --region=us-central1 --producer-forwarding-rule=tcp-ilb-psc --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=projects/<hostproject>/regions/<region>/subnetworks/<natsubnet>
TCP পরিষেবা সংযুক্তি যাচাই করুন
gcloud compute service-attachments describe service-1 --region us-central1
৮. ঐচ্ছিক: নতুন স্থাপিত সার্ভিস অ্যাটাচমেন্টটি দেখতে নেটওয়ার্ক সার্ভিসেস → প্রাইভেট সার্ভিস কানেক্ট-এ যান।

সার্ভিস-১ নির্বাচন করলে আরও বিস্তারিত তথ্য পাওয়া যায়, যার মধ্যে গ্রাহক কর্তৃক একটি প্রাইভেট সার্ভিস কানেকশন স্থাপনের জন্য ব্যবহৃত সার্ভিস অ্যাটাচমেন্ট ইউআরআই-ও অন্তর্ভুক্ত। ইউআরআই-টি লিখে রাখুন, কারণ এটি পরবর্তী ধাপে ব্যবহার করা হবে।

পরিষেবা সংযুক্তি বিবরণ: projects/<প্রকল্পের নাম>/regions/us-central1/serviceAttachments/service-1
৯. গ্রাহক সেটআপ
কনজিউমার ভিপিসি তৈরি করুন
ক্লাউড শেলের ভিতরে নিম্নলিখিতগুলি সম্পাদন করুন
gcloud compute networks create consumer-vpc --project=$psclab --subnet-mode=custom
কনজিউমার সাবনেট তৈরি করুন
ক্লাউড শেলের ভিতরে GCE সাবনেট তৈরি করুন
gcloud compute networks subnets create subnet-101 --project=$psclab --range=10.100.1.0/24 --network=consumer-vpc --region=us-central1
ক্লাউড শেলের ভিতরে কনজিউমার এন্ডপয়েন্ট সাবনেট তৈরি করুন
gcloud compute networks subnets create subnet-102 --project=$psclab --range=10.100.2.0/24 --network=consumer-vpc --region=us-central1
কনজিউমার এন্ডপয়েন্ট (ফরওয়ার্ডিং নিয়ম) তৈরি করুন
ক্লাউড শেলের ভিতরে স্ট্যাটিক আইপি অ্যাড্রেসটি তৈরি করুন যা কনজিউমার এন্ডপয়েন্ট হিসেবে ব্যবহৃত হবে।
gcloud compute addresses create psc-consumer-ip-1 --region=us-central1 --subnet=subnet-102 --addresses 10.100.2.10
কনজিউমার এন্ডপয়েন্ট তৈরি করতে পূর্বে তৈরি করা সার্ভিস অ্যাটাচমেন্ট ইউআরআই ব্যবহার করা যাক।
ক্লাউড শেলের ভিতরে কনজিউমার এন্ডপয়েন্ট তৈরি করুন
gcloud compute forwarding-rules create psc-consumer-1 --region=us-central1 --network=consumer-vpc --address=psc-consumer-ip-1 --target-service-attachment=projects/$psclab/regions/us-central1/serviceAttachments/service-1
১০. গ্রাহকের ব্যক্তিগত পরিষেবা সংযোগ যাচাই করুন - গ্রাহক ভিপিসি
কনজিউমার ভিপিসি থেকে নেটওয়ার্ক সার্ভিসেস → প্রাইভেট সার্ভিস কানেক্ট → কানেক্টেড এন্ডপয়েন্টস- এ গিয়ে একটি সফল প্রাইভেট সার্ভিস কানেকশন যাচাই করুন। আমাদের পূর্বে তৈরি করা প্রতিষ্ঠিত psc-consumer-1 কানেকশন এবং সংশ্লিষ্ট আইপি অ্যাড্রেসটি নোট করে রাখুন।

psc-consumer-1 নির্বাচন করলে সার্ভিস অ্যাটাচমেন্ট ইউআরআই সহ অতিরিক্ত বিবরণ প্রদান করা হয়।

১১. কনজিউমার প্রাইভেট সার্ভিস কানেক্ট - প্রোডিউসার ভিপিসি যাচাই করুন
প্রডিউসার ভিপিসি থেকে নেটওয়ার্ক সার্ভিসেস → প্রাইভেট সার্ভিস কানেক্ট → পাবলিশড সার্ভিস-এ গিয়ে একটি সফল প্রাইভেট সার্ভিস কানেকশন যাচাই করুন। লক্ষ্য করুন, পাবলিশড সার্ভিস-১ কানেকশনটি এখন ১টি ফরওয়ার্ডিং রুল (কানেকশন এন্ডপয়েন্ট) নির্দেশ করছে।

১২. একটি প্রাইভেট ডিএনএস জোন এবং এ রেকর্ড তৈরি করুন
PSC কানেকশন এন্ডপয়েন্টের সাথে ম্যাপ করা প্রাইভেট DNS জোন তৈরি করুন, যা VPC-এর মধ্যে থাকা যেকোনো হোস্ট থেকে প্রডিউসারে নির্বিঘ্ন অ্যাক্সেসের সুযোগ দেবে।
ক্লাউড শেল থেকে
gcloud dns --project=$psclab managed-zones create codelab-zone --description="" --dns-name="codelab.net." --visibility="private" --networks="consumer-vpc"
gcloud dns --project=$psclab record-sets create service1.codelab.net. --zone="codelab-zone" --type="A" --ttl="300" --rrdatas="10.100.2.10"
১৩. ভিএম ব্যবহার করে প্রডিউসার সার্ভিসে কনজিউমারের অ্যাক্সেস যাচাই করুন।
কনজিউমার্স ভিপিসি থেকে আমরা একটি ভিএম তৈরি করব এবং কনজিউমার এন্ডপয়েন্ট service1.codelabs.net অ্যাক্সেস করার মাধ্যমে অন-প্রিমিস সার্ভিসের সাথে কানেক্টিভিটি পরীক্ষা করব।
ক্লাউড শেলের ভিতরে কনজিউমার ভিপিসিতে টেস্ট ইনস্ট্যান্সটি তৈরি করুন।
gcloud compute instances create consumer-vm \
--zone=us-central1-a \
--image-family=debian-10 \
--image-project=debian-cloud \
--subnet=subnet-101 \
--no-address
আপনার VM ইনস্ট্যান্সগুলিতে IAP-কে সংযোগ করার অনুমতি দিতে, এমন একটি ফায়ারওয়াল নিয়ম তৈরি করুন যা:
- এটি সেই সমস্ত VM ইনস্ট্যান্সের ক্ষেত্রে প্রযোজ্য, যেগুলোকে আপনি IAP ব্যবহার করে অ্যাক্সেসযোগ্য করতে চান।
- 35.235.240.0/20 আইপি রেঞ্জ থেকে ইনগ্রেস ট্র্যাফিকের অনুমতি দেয়। এই রেঞ্জে সেই সমস্ত আইপি অ্যাড্রেস রয়েছে যা IAP টিসিপি ফরওয়ার্ডিংয়ের জন্য ব্যবহার করে।
ক্লাউড শেলের ভিতরে কনজিউমার ভিপিসিতে টেস্ট ইনস্ট্যান্সটি তৈরি করুন।
gcloud compute firewall-rules create ssh-iap-consumer \
--network consumer-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
অন-প্রেমিস পরিষেবার সাথে সংযোগ যাচাই করতে, cloud Shell-এ IAP ব্যবহার করে consumer-vm-এ লগ ইন করুন এবং `service1.codelab.net` dns FQDN-এর বিরুদ্ধে `curl` কমান্ড চালান। টাইমআউট হলে পুনরায় চেষ্টা করুন।
gcloud compute ssh consumer-vm --project=$psclab --zone=us-central1-a --tunnel-through-iap
অন-প্রেমিস পরিষেবার সাথে সংযোগ যাচাই করতে `curl` কমান্ড চালান। যাচাই হয়ে গেলে VM থেকে বেরিয়ে ক্লাউড শেল প্রম্পটে ফিরে আসুন।
ক্লাউড শেলের ভিতরে একটি কার্ল (curl) চালান।
$ curl -v service1.codelab.net
* Trying 10.100.2.10...
* TCP_NODELAY set
* Expire in 200 ms for 4 (transfer 0x5650fc3390f0)
* Connected to service1.codelab.net (10.100.2.10) port 80 (#0)
> GET / HTTP/1.1
> Host: service1.codelab.net
> User-Agent: curl/7.64.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: text/html; charset=utf-8
< Accept-Ranges: bytes
< ETag: "3380914763"
< Last-Modified: Mon, 05 Dec 2022 15:10:56 GMT
< Expires: Mon, 05 Dec 2022 15:15:41 GMT
< Cache-Control: max-age=0
< Content-Length: 37
< Date: Mon, 05 Dec 2022 15:15:41 GMT
< Server: lighttpd/1.4.53
<
Welcome to my on-premise service!!
নীচে অন-প্রেমিস পরিষেবা থেকে নেওয়া একটি উদাহরণ ক্যাপচার দেওয়া হল, লক্ষ্য করুন যে সোর্স আইপি অ্যাড্রেস 172.16.0.2 হল TCP প্রক্সি সাবনেট রেঞ্জ 172.16.0.0/23 থেকে।

১৪. প্রযোজকের পরিচ্ছন্নতা
প্রযোজক উপাদানগুলি মুছুন
ক্লাউড শেলের ভিতরে প্রডিউসার কম্পোনেন্টগুলো ডিলিট করুন
gcloud compute instances delete test-box-us-central1 --zone=us-central1-a --quiet
gcloud compute service-attachments delete service-1 --region=us-central1 --quiet
gcloud compute forwarding-rules delete tcp-ilb-psc --region=us-central1 --quiet
gcloud compute target-tcp-proxies delete on-premise-svc-tcpproxy --region=us-central1 --quiet
gcloud compute backend-services delete on-premise-service-backend --region=us-central1 --quiet
gcloud compute network-endpoint-groups delete on-prem-service-neg --zone=us-central1-a --quiet
gcloud compute networks subnets delete psc-nat-subnet subnet-201 proxy-subnet-us-central --region=us-central1 --quiet
gcloud compute firewall-rules delete ssh-iap fw-allow-proxy-only-subnet allow-to-ingress-nat-subnet fw-allow-health-check --quiet
gcloud compute health-checks delete on-prem-service-hc --region=us-central1 --quiet
gcloud compute networks delete producer-vpc --quiet
১৫. ভোক্তা পরিচ্ছন্নতা
ভোক্তা উপাদানগুলি মুছে ফেলুন
ক্লাউড শেলের ভিতরে কনজিউমার কম্পোনেন্টগুলো ডিলিট করুন
gcloud compute instances delete consumer-vm --zone=us-central1-a --quiet
gcloud compute forwarding-rules delete psc-consumer-1 --region=us-central1 --quiet
gcloud compute addresses delete psc-consumer-ip-1 --region=us-central1 --quiet
gcloud compute networks subnets delete subnet-101 subnet-102 --region=us-central1 --quiet
gcloud compute firewall-rules delete ssh-iap-consumer --quiet
gcloud dns record-sets delete service1.codelab.net --type=A --zone=codelab-zone --quiet
gcloud dns managed-zones delete codelab-zone --quiet
gcloud compute networks delete consumer-vpc --quiet
১৬. অভিনন্দন
অভিনন্দন, আপনি সফলভাবে প্রাইভেট সার্ভিস কানেক্ট উইথ টিসিপি প্রক্সি কনফিগার এবং যাচাই করেছেন।
আপনি প্রডিউসার ইনফ্রাস্ট্রাকচার তৈরি করেছেন এবং প্রডিউসার ভিপিসি-তে একটি অন-প্রিমিস সার্ভিসের দিকে নির্দেশ করে একটি সার্ভিস অ্যাটাচমেন্ট যুক্ত করেছেন। আপনি শিখেছেন কীভাবে কনজিউমার ভিপিসি-তে একটি কনজিউমার এন্ডপয়েন্ট তৈরি করতে হয়, যা অন-প্রিমিস সার্ভিসের সাথে সংযোগ স্থাপন করতে দেয়।
এরপর কী?
এই কোডল্যাবগুলো দেখে নিন...
- GKE ব্যবহার করে প্রাইভেট সার্ভিসের মাধ্যমে সার্ভিস প্রকাশ ও গ্রহণ করা
- প্রাইভেট সার্ভিস কানেক্ট ব্যবহার করে পরিষেবাগুলি প্রকাশ এবং গ্রহণ করা