স্বয়ংক্রিয় DNS কনফিগারেশনের সাথে ব্যক্তিগত পরিষেবা সংযোগ করুন

১. ভূমিকা

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

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

এই কোডল্যাবে, আপনি একটি বিশদ প্রাইভেট সার্ভিস কানেক্ট আর্কিটেকচার তৈরি করবেন যা চিত্র ১-এ প্রদর্শিত স্বয়ংক্রিয় ডিএনএস-এর ব্যবহার তুলে ধরে।

নিম্নলিখিত কারণগুলির মাধ্যমে স্বয়ংক্রিয় ডিএনএস সম্ভব হয়:

  1. প্রডিউসার সার্ভিস অ্যাটাচমেন্ট, প্রাইভেট সার্ভিস কানেক্ট সার্ভিস অ্যাটাচমেন্ট তৈরি করার সময় '–domain-names' ফ্ল্যাগ ব্যবহার করে একটি মালিকানাধীন পাবলিক ডোমেইন সরবরাহ করার মাধ্যমে স্বয়ংক্রিয়ভাবে DNS তৈরি করে।
  2. ভোক্তা একটি এন্ডপয়েন্ট নাম নির্ধারণ করে।
  3. অটোমেটিক ডিএনএস, কনজিউমার এন্ডপয়েন্ট নামটি সম্বলিত একটি সার্ভিস ডিরেক্টরি এন্ট্রি তৈরির পাশাপাশি, goog-psc-default-us-central1 নামে একটি ডিএনএস জোন এবং cosmopup.net নামে একটি ডিএনএস নেমও তৈরি করে।

স্বয়ংক্রিয় DNS এর সুবিধা (4) এ দেখানো হয়েছে যেখানে একজন শেষ ব্যবহারকারী DNS, FQDN stargazer.cosmopup.net এর মাধ্যমে গ্রাহক এন্ডপয়েন্টের সাথে যোগাযোগ করতে পারে।

চিত্র ১

5e26a358454d1336.png

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

  • অভ্যন্তরীণ HTTP(S) লোড ব্যালেন্সার কীভাবে তৈরি করবেন
  • স্বয়ংক্রিয় DNS সহ একটি পরিষেবা সংযুক্তি কীভাবে তৈরি করবেন
  • কীভাবে একটি প্রাইভেট সার্ভিস কানেক্ট প্রোডিউসার পরিষেবা প্রতিষ্ঠা করবেন
  • স্বয়ংক্রিয় ডিএনএস ব্যবহার করে কীভাবে একটি কনজিউমার এন্ডপয়েন্ট অ্যাক্সেস করবেন

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

  • গুগল ক্লাউড প্রজেক্ট
  • একটি পাবলিক ডোমেইন যার মালিক আপনি

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

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

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

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

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

৩. প্রযোজক সেটআপ

প্রযোজক VPC তৈরি করুন

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

gcloud compute networks create producer-vpc --project=$projectname --subnet-mode=custom

প্রযোজক সাবনেটগুলি তৈরি করুন

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

gcloud compute networks subnets create gce-subnet --project=$projectname --range=172.16.20.0/28 --network=producer-vpc --region=us-central1

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

gcloud compute networks subnets create load-balancer-subnet --project=$projectname --range=172.16.10.0/28 --network=producer-vpc --region=us-central1

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

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

gcloud compute addresses create lb-ip \
    --region=us-central1 \
    --subnet=load-balancer-subnet \
    --purpose=GCE_ENDPOINT

বরাদ্দকৃত আইপি ঠিকানা দেখুন

বরাদ্দকৃত আইপি ঠিকানা দেখতে `compute addresses describe` কমান্ডটি ব্যবহার করুন।

gcloud compute addresses describe lb-ip  --region=us-central1 | grep address:

আঞ্চলিক প্রক্সি সাবনেট তৈরি করুন

প্রক্সি বরাদ্দকরণ ভিপিসি নেটওয়ার্ক পর্যায়ে করা হয়, লোড ব্যালান্সার পর্যায়ে নয়। আপনি যে ভার্চুয়াল নেটওয়ার্ক (ভিপিসি) অঞ্চলে এনভয়-ভিত্তিক লোড ব্যালান্সার ব্যবহার করেন, তার প্রতিটি অঞ্চলে আপনাকে অবশ্যই একটি প্রক্সি-অনলি সাবনেট তৈরি করতে হবে। যদি আপনি একই অঞ্চলে এবং একই ভিপিসি নেটওয়ার্কে একাধিক লোড ব্যালান্সার স্থাপন করেন, তবে লোড ব্যালান্সিংয়ের জন্য তারা একই প্রক্সি-অনলি সাবনেট ব্যবহার করবে।

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

আপনার VPC নেটওয়ার্ক অটো মোডে থাকুক বা কাস্টম মোডে থাকুক, আপনাকে অবশ্যই প্রক্সি-অনলি সাবনেট তৈরি করতে হবে। একটি প্রক্সি-অনলি সাবনেটে অবশ্যই ৬৪ বা তার বেশি আইপি অ্যাড্রেস থাকতে হবে। এটি /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 \
    --project $projectname \
    --network producer-vpc \
    --region us-central1 \
    --range 100.100.10.0/24 \
    --purpose PRIVATE_SERVICE_CONNECT

প্রযোজক ফায়ারওয়াল নিয়ম তৈরি করুন

প্রাইভেট সার্ভিস কানেক্ট NAT সাবনেট এবং ILB প্রক্সি অনলি সাবনেটের মধ্যে ট্র্যাফিকের অনুমতি দেওয়ার জন্য ফায়ারওয়াল নিয়ম কনফিগার করুন।

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

gcloud compute --project=$projectname 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

লোড ব্যালেন্সারকে TCP পোর্ট ৮০-তে ব্যাকএন্ড ইনস্ট্যান্সগুলোর সাথে যোগাযোগের অনুমতি দেওয়ার জন্য প্রক্সি-অনলি সাবনেটের জন্য একটি ইনগ্রেস অ্যালাউ ফায়ারওয়াল রুল তৈরি করুন।

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

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

কোডল্যাবে সফটওয়্যার প্যাকেজ ইনস্টলেশনের জন্য ক্লাউড ন্যাট (Cloud NAT) ব্যবহার করা হয়, কারণ ভিএম ইনস্ট্যান্সটির কোনো এক্সটার্নাল আইপি অ্যাড্রেস নেই।

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

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

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

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

ইনস্ট্যান্স গ্রুপ কনফিগারেশন

পরবর্তী অংশে, আপনি কম্পিউট ইঞ্জিন ইনস্ট্যান্স এবং আনম্যানেজড ইনস্ট্যান্স গ্রুপ তৈরি করবেন। পরবর্তী ধাপগুলোতে এই ইনস্ট্যান্স গ্রুপটি লোড ব্যালান্সার ব্যাকএন্ড সার্ভিস হিসেবে ব্যবহৃত হবে।

ক্লাউড শেলের ভিতরে, প্রডিউসার সার্ভিসে পাঠানোর জন্য আঞ্চলিক হেলথ-চেকটি তৈরি করুন।

gcloud compute instances create app-server-1 \
    --project=$projectname \
    --machine-type=e2-micro \
    --image-family debian-10 \
    --no-address \
    --image-project debian-cloud \
    --zone us-central1-a \
    --subnet=gce-subnet \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install apache2 -y
      sudo service apache2 restart
      echo 'Welcome to App-Server-1 !!' | tee /var/www/html/index.html
      EOF"

ক্লাউড শেলের ভিতরে, আনম্যানেজড ইনস্ট্যান্স গ্রুপটি তৈরি করুন।

gcloud compute instance-groups unmanaged create psc-instance-group --zone=us-central1-a

gcloud compute instance-groups unmanaged set-named-ports psc-instance-group --project=$projectname --zone=us-central1-a --named-ports=http:80

gcloud compute instance-groups unmanaged add-instances psc-instance-group --zone=us-central1-a --instances=app-server-1

লোড ব্যালেন্সার কনফিগার করুন

পরবর্তী ধাপগুলোতে আপনি অভ্যন্তরীণ HTTP লোড ব্যালেন্সারটি কনফিগার করবেন, যা পরবর্তী ধাপে একটি সার্ভিস অ্যাটাচমেন্ট হিসেবে প্রকাশ করা হবে।

ক্লাউড শেলের ভিতরে আঞ্চলিক স্বাস্থ্য-পরীক্ষাটি তৈরি করুন।

gcloud compute health-checks create http http-health-check \
    --region=us-central1 \
    --use-serving-port

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

 gcloud compute backend-services create l7-ilb-backend-service \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --protocol=HTTP \
      --health-checks=http-health-check \
      --health-checks-region=us-central1 \
      --region=us-central1

ক্লাউড শেলের ভিতরে, ব্যাকএন্ড সার্ভিসে ব্যাকএন্ডগুলো যোগ করুন।

gcloud compute backend-services add-backend l7-ilb-backend-service \
  --balancing-mode=UTILIZATION \
  --instance-group=psc-instance-group \
  --instance-group-zone=us-central1-a \
  --region=us-central1

ক্লাউড শেলের ভিতরে, আগত অনুরোধগুলিকে ব্যাকএন্ড পরিষেবাতে রাউট করার জন্য ইউআরএল ম্যাপ তৈরি করুন।

gcloud compute url-maps create l7-ilb-map \
    --default-service l7-ilb-backend-service \
    --region=us-central1

HTTP টার্গেট প্রক্সি তৈরি করুন।

gcloud compute target-http-proxies create l7-ilb-proxy\
    --url-map=l7-ilb-map \
    --url-map-region=us-central1 \
    --region=us-central1

ইনকামিং রিকোয়েস্ট প্রক্সিতে রাউট করার জন্য একটি ফরওয়ার্ডিং রুল তৈরি করুন। ফরওয়ার্ডিং রুলটি তৈরি করতে প্রক্সি-অনলি সাবনেট ব্যবহার করবেন না।

 gcloud compute forwarding-rules create l7-ilb-forwarding-rule \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --network=producer-vpc \
      --subnet=load-balancer-subnet \
      --address=lb-ip \
      --ports=80 \
      --region=us-central1 \
      --target-http-proxy=l7-ilb-proxy \
      --target-http-proxy-region=us-central1

৪. লোড ব্যালেন্সারটি যাচাই করুন

ক্লাউড কনসোল থেকে নেটওয়ার্ক সার্ভিসেস → লোড ব্যালান্সিং → লোড ব্যালান্সারস -এ যান। ব্যাকএন্ড সার্ভিসের সফল হেলথ চেকটি লক্ষ্য করুন।

881567cc11627009.png

'l7-ilb-map' নির্বাচন করলে ফ্রন্টএন্ডের আইপি অ্যাড্রেস পাওয়া যায়, যা আগের ধাপে আপনার grep করা আইপি অ্যাড্রেসের সাথে মিলে যাওয়া উচিত এবং এটি ব্যাকএন্ড সার্ভিসটিকে শনাক্ত করে।

bab89b0a7b4f95e9.png

৫. প্রাইভেট সার্ভিস কানেক্ট সার্ভিস অ্যাটাচমেন্ট তৈরি করুন

পরিষেবা সংযুক্তি তৈরি করুন

ক্লাউড শেলের ভিতরে সার্ভিস অ্যাটাচমেন্টটি তৈরি করুন। ডোমেইন নামের শেষে অবশ্যই '.' যোগ করতে ভুলবেন না।

gcloud compute service-attachments create published-service --region=us-central1 --producer-forwarding-rule=l7-ilb-forwarding-rule --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=psc-nat-subnet --domain-names=cosmopup.net.

ঐচ্ছিক: যদি একটি শেয়ার্ড ভিপিসি ব্যবহার করেন, তাহলে সার্ভিস প্রজেক্টে সার্ভিস অ্যাটাচমেন্টটি তৈরি করুন।

gcloud compute service-attachments create published-service --region=us-central1 --producer-forwarding-rule=l7-ilb-forwarding-rule --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=projects/<hostproject>/regions/us-central1/subnetworks/psc-nat-subnet --domain-names=cosmopup.net.

নতুন স্থাপিত পরিষেবা সংযুক্তিটি দেখতে নেটওয়ার্ক পরিষেবা → ব্যক্তিগত পরিষেবা সংযোগ- এ যান।

d27fee9073dbbe2.png

প্রকাশিত-পরিষেবা নির্বাচন করলে আরও বিস্তারিত তথ্য পাওয়া যায়, যার মধ্যে রয়েছে গ্রাহক কর্তৃক একটি ব্যক্তিগত পরিষেবা সংযোগ (Private Service Connection) স্থাপনের জন্য ব্যবহৃত পরিষেবা সংযুক্তি ইউআরআই (service attachment URI) এবং ডোমেইন নাম।

503df63730c62df2.png

পরিষেবা সংযুক্তি বিবরণ:

projects/<প্রকল্পের নাম>/regions/us-central1/serviceAttachments/published-service

৬. গ্রাহক সেটআপ

ভোক্তা এপিআই সক্ষম করুন

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

gcloud services enable dns.googleapis.com
gcloud services enable servicedirectory.googleapis.com

কনজিউমার ভিপিসি নেটওয়ার্ক তৈরি করুন

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

gcloud compute networks create consumer-vpc --project=$projectname --subnet-mode=custom

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

ক্লাউড শেলের ভিতরে টেস্ট ইনস্ট্যান্সের জন্য সাবনেট তৈরি করুন।

gcloud compute networks subnets create db1-subnet --project=$projectname --range=10.20.0.0/28 --network=consumer-vpc --region=us-central1

ক্লাউড শেলের ভিতরে, কনজিউমার এন্ডপয়েন্টের জন্য একটি সাবনেট তৈরি করুন।

gcloud compute networks subnets create consumer-ep-subnet --project=$projectname --range=10.10.0.0/28 --network=consumer-vpc --region=us-central1

কনজিউমার এন্ডপয়েন্ট (ফরওয়ার্ডিং নিয়ম) তৈরি করুন

ক্লাউড শেলের ভিতরে, কনজিউমার এন্ডপয়েন্টের জন্য ব্যবহৃত হবে এমন স্ট্যাটিক আইপি অ্যাড্রেসটি তৈরি করুন।

gcloud compute addresses create psc-consumer-ip-1 --region=us-central1 --subnet=consumer-ep-subnet --addresses 10.10.0.10

আমরা কনজিউমার এন্ডপয়েন্ট তৈরি করার জন্য পূর্বে তৈরি করা সার্ভিস অ্যাটাচমেন্ট ইউআরআই ব্যবহার করি।

ক্লাউড শেলের ভিতরে কনজিউমার এন্ডপয়েন্টটি তৈরি করুন।

gcloud compute forwarding-rules create stargazer --region=us-central1 --network=consumer-vpc --address=psc-consumer-ip-1 --target-service-attachment=projects/$projectname/regions/us-central1/serviceAttachments/published-service

৭. গ্রাহকের VPC নেটওয়ার্কে সংযোগটি যাচাই করুন।

কনজিউমার ভিপিসি নেটওয়ার্ক থেকে, Network Services → Private Service Connect → Connected Endpoints- এ গিয়ে একটি সফল প্রাইভেট সার্ভিস কানেকশন যাচাই করুন। আমাদের পূর্বে তৈরি করা প্রতিষ্ঠিত স্টারগেজার কানেকশন এবং সংশ্লিষ্ট আইপি অ্যাড্রেসটি নোট করে রাখুন।

c60812433c3e1676.png

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

14d3e3b1e0aee3c2.png

৮. প্রডিউসারের VPC নেটওয়ার্কে সংযোগটি যাচাই করুন।

প্রডিউসারের VPC নেটওয়ার্ক থেকে Network Services → Private Service Connect → Published Service-এ গিয়ে একটি সফল প্রাইভেট সার্ভিস কানেকশন যাচাই করুন। লক্ষ্য করুন, প্রকাশিত সার্ভিস কানেকশনটি এখন ১টি ফরওয়ার্ডিং রুল (কানেকশন এন্ডপয়েন্ট) নির্দেশ করছে।

911dbd7421bcfd3a.png

৯. স্বয়ংক্রিয় ডিএনএস কনফিগারেশন যাচাই করুন

চলুন DNS এবং সার্ভিস ডিরেক্টরি কনফিগারেশন মূল্যায়ন করা যাক।

ক্লাউড ডিএনএস কনফিগারেশন

নেটওয়ার্ক সার্ভিসেস → ক্লাউড ডিএনএস → জোনস-এ যান। goog-psc-default-us-central জোন এবং cosmopup.net ডিএনএস নামটি স্বয়ংক্রিয়ভাবে তৈরি হয়ে যাবে।

4395e7b33fc42faa.png

DNS এবং পরিষেবা ডিরেক্টরি কনফিগারেশন দেখুন

জোন নামটি নির্বাচন করলে আমরা দেখতে পারি যে সার্ভিস ডিরেক্টরি কীভাবে ক্লাউড ডিএনএস-এর সাথে সমন্বিত হয়েছে।

e4fe44d945b20451.png

পরিষেবা ডিরেক্টরি কনফিগারেশন

নেটওয়ার্ক সার্ভিসেস → সার্ভিস ডিরেক্টরিতে যান

' stargazer ' কনজিউমার এন্ডপয়েন্ট নামটি মনে আছে? এটি সার্ভিস ডিরেক্টরিতে স্বয়ংক্রিয়ভাবে প্রোগ্রাম করা থাকে, যার ফলে আমরা stargazer.goog-psc-default–us-central1 FQDN ব্যবহার করে কনজিউমার এন্ডপয়েন্টটিতে পৌঁছাতে পারি।

602deab65b5ac315.png

১০. প্রযোজকের পরিষেবাতে গ্রাহকের প্রবেশাধিকার যাচাই করুন।

কনজিউমারের VPC নেটওয়ার্ক থেকে, আমরা কনজিউমার এন্ডপয়েন্ট stargazer.cosmopup.net অ্যাক্সেস করে প্রকাশিত সার্ভিসটির কানেক্টিভিটি পরীক্ষা করার জন্য একটি VM তৈরি করব।

ক্লাউড শেলের ভিতরে কনজিউমার ভিপিসিতে টেস্ট ইনস্ট্যান্সটি তৈরি করুন।

gcloud compute instances create db1 \
    --zone=us-central1-a \
    --image-family=debian-10 \
    --image-project=debian-cloud \
    --subnet=db1-subnet \
    --no-address

আপনার VM ইনস্ট্যান্সগুলিতে IAP-কে সংযোগ করার অনুমতি দিতে, এমন একটি ফায়ারওয়াল নিয়ম তৈরি করুন যা:

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

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

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

ক্লাউড শেলে IAP ব্যবহার করে কনজিউমার-ভিএম-এ লগ ইন করুন এবং `curl` কমান্ড চালিয়ে প্রডিউসার সার্ভিসের সাথে সংযোগ যাচাই করুন। টাইমআউট হলে পুনরায় চেষ্টা করুন।

gcloud compute ssh db1 --project=$projectname --zone=us-central1-a --tunnel-through-iap

প্রডিউসার সার্ভিসের সাথে সংযোগ যাচাই করতে `curl` কমান্ড চালান। যাচাই হয়ে গেলে VM থেকে বেরিয়ে ক্লাউড শেল প্রম্পটে ফিরে আসুন।

ক্লাউড শেলের ভিতরে আপনার কাস্টম ডোমেনের বিরুদ্ধে একটি `curl` কমান্ড চালান, উদাহরণস্বরূপ `stargazer.[custom-domain.com]`। নীচের আউটপুটে, `stargazer.cosmopup.net` এর বিরুদ্ধে একটি `curl` কমান্ড চালানো হয়েছে।

user@db1:~$ curl -v stargazer.cosmopup.net
*   Trying 10.10.0.10...
* TCP_NODELAY set
* Expire in 200 ms for 4 (transfer 0x55d3aa8190f0)
* Connected to stargazer.cosmopup.net (10.10.0.10) port 80 (#0)
> GET / HTTP/1.1
> Host: stargazer.cosmopup.net
> User-Agent: curl/7.64.0
> Accept: */*
> 
< HTTP/1.1 200 OK
< date: Thu, 22 Dec 2022 00:16:25 GMT
< server: Apache/2.4.38 (Debian)
< last-modified: Wed, 21 Dec 2022 20:26:32 GMT
< etag: "1b-5f05c5e43a083"
< accept-ranges: bytes
< content-length: 27
< content-type: text/html
< via: 1.1 google
< 
Welcome to App-Server-1 !!

পরিষ্কার করার কাজগুলো শুরু করতে ভিএম থেকে বেরিয়ে ক্লাউড শেল প্রম্পটে ফিরে আসুন।

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

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

gcloud compute forwarding-rules delete stargazer --region=us-central1 --quiet

gcloud compute instances delete db1 --zone=us-central1-a --quiet 

gcloud compute addresses delete psc-consumer-ip-1 --region=us-central1 --quiet 

gcloud compute networks subnets delete consumer-ep-subnet db1-subnet --region=us-central1 --quiet 

gcloud compute firewall-rules delete ssh-iap-consumer --quiet 

gcloud compute networks delete consumer-vpc --quiet 

gcloud compute service-attachments delete published-service --region=us-central1 --quiet 

gcloud compute forwarding-rules delete l7-ilb-forwarding-rule --region=us-central1 --quiet 

gcloud compute target-http-proxies delete l7-ilb-proxy --region=us-central1 --quiet 
 
gcloud compute url-maps delete l7-ilb-map --region=us-central1 --quiet 
 
gcloud compute backend-services delete l7-ilb-backend-service --region=us-central1 --quiet
 
gcloud compute instance-groups unmanaged delete psc-instance-group --zone=us-central1-a --quiet
 
gcloud compute instances delete app-server-1 --zone=us-central1-a --quiet 
 
gcloud compute firewall-rules delete allow-to-ingress-nat-subnet fw-allow-health-check fw-allow-proxy-only-subnet --quiet 
 
gcloud compute addresses delete lb-ip --region=us-central1 --quiet 
 
gcloud compute networks subnets delete gce-subnet load-balancer-subnet psc-nat-subnet proxy-subnet-us-central --region=us-central1 --quiet 
 
gcloud compute routers delete cloud-router-for-nat --region=us-central1 --quiet 
 
gcloud compute networks delete producer-vpc --quiet 

১২. অভিনন্দন

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

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

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

8c2a10eb841f7b01.jpeg

এরপর কী?

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

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

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