ব্যক্তিগত পরিষেবা সংযোগ - একটি প্রযোজক পরিষেবা অ্যাক্সেস করতে PSC ব্যাকএন্ড ব্যবহার করে, ব্যক্তিগত পরিষেবা সংযোগ - একটি প্রযোজক পরিষেবা অ্যাক্সেস করতে PSC ব্যাকএন্ড ব্যবহার করে, ব্যক্তিগত পরিষেবা সংযোগ - একটি প্রযোজক পরিষেবা অ্যাক্সেস করতে PSC ব্যাকএন্ড ব্যবহার করে, ব্যক্তিগত পরিষেবা সংযোগ - একটি প্রযোজক অ্যাক্সেস করতে PSC ব্যাকএন্ড ব্যবহার করে সেবা

1. ভূমিকা

প্রাইভেট সার্ভিস কানেক্ট সেবা প্রযোজকদের এক ভিপিসি নেটওয়ার্ক থেকে অন্য ভিপিসি নেটওয়ার্কে ব্যক্তিগতভাবে পরিষেবা প্রকাশ করতে সক্ষম করে। ভোক্তারা PSC এন্ডপয়েন্ট বা PSC ব্যাকএন্ডের মাধ্যমে প্রযোজক পরিষেবাগুলি অ্যাক্সেস করতে পারে।

এই কোডল্যাবের ফোকাস হল পিএসসি ব্যাকএন্ডস। পিএসসি ব্যাকএন্ডগুলি Google ক্লাউড প্রক্সি লোড ব্যালেন্সার (অ্যাপ্লিকেশন বা নেটওয়ার্ক) এর সাথে ব্যবহার করা হয়। PSC ব্যাকএন্ড ব্যবহার করা আরও দানাদার ভোক্তা পক্ষের নিয়ন্ত্রণ প্রদান করে যেমন:

  • গভীর পর্যবেক্ষণযোগ্যতা এবং লগিং
  • ক্লাউড আর্মার ইন্টিগ্রেশন
  • কাস্টম ইউআরএল
  • উন্নত ট্রাফিক ব্যবস্থাপনা
  • কাস্টম TLS শংসাপত্র

এই কোডল্যাবে, আপনি শিখবেন কিভাবে একটি প্রাইভেট সার্ভিস কানেক্ট ব্যাকএন্ড গ্লোবাল এক্সটার্নাল অ্যাপ্লিকেশান লোড ব্যালেন্সারের সাথে অন্য নেটওয়ার্কে একটি প্রযোজক পরিষেবা ব্যক্তিগতভাবে অ্যাক্সেস করতে।

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

  • গ্লোবাল এক্সটার্নাল অ্যাপ্লিকেশান লোড ব্যালেন্সারের সাথে যুক্ত একটি PSC ব্যাকএন্ড তৈরি এবং কনফিগার করুন
  • একটি Apache পরিচালিত ওয়েব পরিষেবা কনফিগার করুন এবং একটি পরিষেবা সংযুক্তির মাধ্যমে এটি একটি PSC পরিষেবা হিসাবে প্রকাশ করুন
  • অভ্যন্তরীণ এবং বহিরাগত অ্যাপ্লিকেশন লোড ব্যালেন্সারগুলিতে SSL সমাপ্ত করতে SSL শংসাপত্র তৈরি করুন৷
  • PSC পরিষেবা অ্যাক্সেস করার জন্য একটি ক্লাউড DNS পাবলিক জোন কনফিগার করুন

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

  • মালিকের অনুমতি সহ একটি Google ক্লাউড প্রকল্প৷

2. পরীক্ষা পরিবেশ

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

কনজিউমার ভিপিসি-তে আপনি একটি গ্লোবাল এক্সটার্নাল অ্যাপ্লিকেশান লোড ব্যালেন্সার স্থাপন করবেন একটি PSC ব্যাকএন্ড পরিষেবার সাথে Apache পরিষেবার দিকে নির্দেশ করে৷ তারপরে আপনি সর্বজনীন ইন্টারনেটে PSC পরিষেবা অ্যাক্সেস করতে একটি সর্বজনীন DNS জোন সেট আপ করবেন৷

31e7497bf3d9035c.png

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

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

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

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

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

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

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

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

55efc1aaa7a4d3ad.png

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

7ffe5cbb04455448.png

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

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

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

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

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
export project=YOUR-PROJECT-NAME
export region=us-central1
echo $project
echo $region

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

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

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

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

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

gcloud compute networks create producer-vpc --subnet-mode custom

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

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

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

gcloud compute networks subnets create service-subnet \
    --network=producer-vpc \
    --range=10.0.0.0/28 \
    --region=$region

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

gcloud compute networks subnets create test-client-subnet \
    --network=producer-vpc \
    --range=10.0.1.0/28 \
    --region=us-east4

আঞ্চলিক অভ্যন্তরীণ অ্যাপ্লিকেশন লোড ব্যালেন্সারের সাথে ব্যবহার করার জন্য আমাদের অবশ্যই একটি প্রক্সি শুধুমাত্র সাবনেট স্থাপন করতে হবে।

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

gcloud compute networks subnets create central-proxy-subnet \
    --network=producer-vpc \
    --range=10.100.101.0/24 \
    --region=$region \
    --purpose=REGIONAL_MANAGED_PROXY \
    --role=ACTIVE

যখন একটি PSC পরিষেবা স্থাপন করা হয়, তখন প্রতিটি অনন্য পরিষেবার জন্য একটি অনুরূপ PSC NAT সাবনেট প্রয়োজন পরিষেবা সংযুক্তির সাথে যুক্ত হতে৷ প্রত্যাশিত সংযুক্ত এন্ডপয়েন্টের সংখ্যার উপর নির্ভর করে এই সাবনেটটি যথাযথভাবে মাপ করা উচিত।

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

gcloud compute networks subnets create psc-nat-subnet \
    --network=producer-vpc \
    --region=$region \
    --range=10.100.100.0/24 \
    --purpose=PRIVATE_SERVICE_CONNECT

Cloud NAT তৈরি করুন

আমাদের প্রযোজক পরিষেবাগুলির জন্য সঠিক প্যাকেজগুলি ইনস্টল করার জন্য একটি ক্লাউড NAT প্রয়োজন৷

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

gcloud compute routers create central-cr \
    --network=producer-vpc \
    --region=$region

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

gcloud compute routers nats create central-nat \
    --router=central-cr \
    --region=$region \
    --nat-all-subnet-ip-ranges \
    --auto-allocate-nat-external-ips

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

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

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

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

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

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

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

লোড ব্যালেন্সার প্রক্সি অনলি সাবনেট (2000) থেকে প্রাপ্ত লোড ব্যালেন্সার ব্যাকএন্ডে প্রবেশের জন্য দুটি অতিরিক্ত ফায়ারওয়াল নিয়মের প্রয়োজন হবে, সেইসাথে ব্যাক এন্ড ইনস্ট্যান্সে (2001) লোড ব্যালেন্সার হেলথ চেকের অনুমতি দেওয়ার জন্য একটি নিয়ম।

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

gcloud compute network-firewall-policies rules create 2000 \
    --action ALLOW \
    --firewall-policy producer-vpc-policy \
    --description "allow traffic from load balancer proxy subnet" \
    --direction INGRESS \
    --src-ip-ranges 10.100.101.0/24 \
    --layer4-configs tcp:443 \
    --global-firewall-policy


gcloud compute network-firewall-policies rules create 2001 \
    --action ALLOW \
    --firewall-policy producer-vpc-policy \
    --description "allow load balancer health checks" \
    --direction INGRESS \
    --src-ip-ranges 130.211.0.0/22,35.191.0.0/16 \
    --layer4-configs tcp:443 \
    --global-firewall-policy

6. অ্যাপাচি ওয়েব সার্ভিস তৈরি করুন

আমরা একটি সাধারণ অ্যাপাচি ওয়েব পরিষেবা তৈরি করব যা "PSC পরিষেবা" প্রদর্শন করে।

ইনস্ট্যান্স টেমপ্লেট তৈরি করুন

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

gcloud compute instance-templates create apache-service-template \
    --network producer-vpc \
    --subnet service-subnet \
    --region $region \
    --no-address \
    --metadata startup-script='#! /bin/bash
    sudo apt-get update
    apt-get install apache2 -y
    a2enmod ssl
    sudo a2ensite default-ssl
    echo "PSC Service" | \
    tee /var/www/html/index.html
    systemctl restart apache2'

এমআইজির জন্য স্বাস্থ্য পরীক্ষা তৈরি করুন

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

gcloud compute health-checks create https service-mig-healthcheck \
    --port=443 \
    --global

ম্যানেজড ইনস্ট্যান্স গ্রুপ তৈরি করুন

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

gcloud compute instance-groups managed create psc-service-mig \
    --region $region \
    --size=2 \
    --template=apache-service-template \
    --health-check=service-mig-healthcheck

gcloud compute instance-groups managed set-named-ports psc-service-mig \
    --named-ports=https:443 \
    --region=$region

7. একটি স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করুন

একটি স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করতে এখানে নির্দেশাবলীর ধাপ 1 সম্পূর্ণ করুন। আপনি ক্লাউড শেলের সমস্ত কমান্ড চালাতে পারেন। ধাপ 1 সম্পূর্ণ হলে এই জায়গায় ফিরে যান। আপনার সাধারণ নাম অবশ্যই EXAMPLE.COM এর সাথে কনফিগার করা উচিত।

আপনার লোড ব্যালেন্সারের সাথে যুক্ত করার জন্য একটি শংসাপত্র সম্পদ তৈরি করুন। আপনার নির্দিষ্ট ফাইলের নাম দিয়ে শংসাপত্র এবং ব্যক্তিগত-কী পরামিতি প্রতিস্থাপন করুন।

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

gcloud compute ssl-certificates create producer-service-cert \
    --certificate=<your-producer-certfile.cert> \
    --private-key=<your-producer-keyfile.pem> \
    --region=$region

8. অভ্যন্তরীণ আঞ্চলিক অ্যাপ্লিকেশন লোড ব্যালেন্সার তৈরি করুন

পরবর্তী আমরা পরিষেবার জন্য লোড ব্যালেন্সার উপাদান তৈরি করব। আমরা অভ্যন্তরীণ আঞ্চলিক অ্যাপ্লিকেশন লোড ব্যালেন্সার ব্যবহার করছি, কিন্তু আপনার কাছে যেকোনো Google ক্লাউড অভ্যন্তরীণ লোড ব্যালেন্সার ব্যবহার করার বিকল্প রয়েছে। TLS পরিচালনার জন্য উপযুক্ত লোড ব্যালেন্সার ডকুমেন্টেশন অনুসরণ করুন।

অভ্যন্তরীণ আইপি ঠিকানা তৈরি করুন যা আপনার লোড ব্যালেন্সারের ফরোয়ার্ডিং নিয়মের জন্য ব্যবহার করা হবে এবং আপনি যখন পরিষেবাটিতে একটি পরীক্ষা কল করবেন তখন পরবর্তীতে ব্যবহার করা হবে তা নোট করুন৷

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

gcloud compute addresses create apache-service-ip \
 --region=$region \
 --subnet=service-subnet

gcloud compute addresses describe apache-service-ip \
   --format="get(address)" \
   --region=$region

লোড ব্যালেন্সার স্বাস্থ্য পরীক্ষা তৈরি করুন।

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

gcloud compute health-checks create https lb-apache-service-hc \
    --region=$region \
    --port-name=https

ব্যাকএন্ড পরিষেবা তৈরি করুন।

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

gcloud compute backend-services create apache-bes\
  --load-balancing-scheme=INTERNAL_MANAGED \
  --protocol=HTTPS \
  --port-name=https \
  --health-checks=lb-apache-service-hc \
  --health-checks-region=$region \
  --region=$region


gcloud compute backend-services add-backend apache-bes \
  --balancing-mode=UTILIZATION \
  --instance-group=psc-service-mig \
  --region=$region

ইউআরএল ম্যাপ তৈরি করুন।

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

gcloud compute url-maps create producer-url-map \
  --default-service=apache-bes \
  --region=$region

লক্ষ্য HTTPS প্রক্সি তৈরি করুন.

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

gcloud compute target-https-proxies create https-proxy \
  --url-map=producer-url-map \
  --region=$region \
  --ssl-certificates=producer-service-cert

ফরোয়ার্ড করার নিয়ম তৈরি করুন।

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

gcloud compute forwarding-rules create apache-fr \
  --load-balancing-scheme=INTERNAL_MANAGED \
  --network=producer-vpc \
  --subnet=service-subnet \
  --address=apache-service-ip \
  --ports=443 \
  --region=$region \
  --target-https-proxy=https-proxy \
  --target-https-proxy-region=$region \
  --allow-global-access

9. একটি টেস্ট VM তৈরি করুন এবং পরিষেবাটি স্থানীয়ভাবে পরীক্ষা করুন৷

আমরা পরিষেবা সংযুক্তি তৈরি করার আগে, গ্লোবাল অ্যাক্সেস এবং TLS এর সাথে লোড ব্যালেন্সার সঠিকভাবে কনফিগার করা হয়েছে তা পরীক্ষা করার জন্য আমরা একটি ভিন্ন অঞ্চলে একটি টেস্ট ক্লায়েন্ট vm তৈরি করব।

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

gcloud compute instances create vm-client \
    --zone=us-east4-a \
    --subnet=test-client-subnet \
    --no-address

প্রভিশনিং সম্পূর্ণ হওয়ার জন্য প্রায় এক মিনিট অপেক্ষা করুন এবং তারপরে উদাহরণে SSH করুন।

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

gcloud compute ssh \
    --zone "us-east4-a" "vm-client" \
    --tunnel-through-iap \
    --project $project

লোড ব্যালেন্সারের মাধ্যমে 443-এর বেশি সংযোগ করে Apache পরিষেবা পরীক্ষা করুন। অভ্যন্তরীণ আইপি ঠিকানাটি আপনি সংরক্ষিত এবং আগে উল্লেখ করেছেন।

curl https://example.com:443 -k --connect-to example.com:443:<YOUR-INTERNAL-IP>:443

প্রত্যাশিত ফলাফল

PSC Service

VM থেকে প্রস্থান করুন।

ভিএম-ক্লায়েন্ট থেকে

exit

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

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

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

gcloud compute service-attachments create apache-service-attachment \
    --region=$region \
    --producer-forwarding-rule=apache-fr \
    --connection-preference=ACCEPT_MANUAL \
    --consumer-accept-list=$project=5 \
    --nat-subnets=psc-nat-subnet

PSC ব্যাকএন্ড কনফিগারেশনের জন্য পরবর্তী ধাপে আপনাকে সার্ভিস অ্যাটাচমেন্ট URI ( selfLink ) নোট করে রাখতে হবে। আপনি ক্লাউড শেলে নিম্নলিখিতগুলি সম্পাদন করে এটি পেতে পারেন।

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

gcloud compute service-attachments describe apache-service-attachment \
    --region $region

প্রকল্প থেকে শুরু করে URI কপি করুন

উদাহরণ: প্রকল্প/$project/regions/$region/serviceAttachments/apache-service-attachment

11. ভোক্তা VPC সেটআপ

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

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

gcloud compute networks create consumer-vpc --subnet-mode custom

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

ভোক্তাদের দিকে একটি সাবনেট প্রয়োজন যেখানে প্রাইভেট সার্ভিস কানেক্ট নেটওয়ার্ক এন্ডপয়েন্ট গ্রুপ (এনইজি) স্থাপন করা হবে।

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

gcloud compute networks subnets create consumer-subnet \
    --network=consumer-vpc \
    --region=$region \
    --range=10.0.0.0/28

12. এক্সটার্নাল আইপি রিজার্ভ করুন এবং কনজিউমার সাইড স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করুন

বাহ্যিক আইপি

বাহ্যিক স্ট্যাটিক আইপি ঠিকানা তৈরি করুন যা আমাদের লোড ব্যালেন্সার ফরওয়ার্ডিং নিয়মের জন্য পরে ব্যবহার করা হবে এবং একটি ক্লাউড শেল ভেরিয়েবলে আইপি ঠিকানা ক্যাপচার করুন।

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

gcloud compute addresses create external-psc-ip \
    --network-tier=PREMIUM \
    --ip-version=IPV4 \
    --global

export externalip=$(gcloud compute addresses describe external-psc-ip \
    --format="get(address)" \
    --global)

echo $externalip

ভোক্তা স্ব-স্বাক্ষরিত শংসাপত্র

দ্বিতীয়বারের জন্য, একটি স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করতে এখানে নির্দেশাবলীর ধাপ 1 সম্পূর্ণ করুন। আপনি ক্লাউড শেলের সমস্ত কমান্ড চালাতে পারেন। ধাপ 1 সম্পূর্ণ হলে এই জায়গায় ফিরে যান। আমরা আমাদের নিজস্ব পাবলিক ডিএনএস জোনের মালিকানার জায়গায় nip.io নামে একটি ওপেন সোর্স পাবলিক ওয়াইল্ডকার্ড DNS পরিষেবা ব্যবহার করব। আপনার PSC পরিষেবার সর্বজনীন URL আপনার কনফিগার করা বহিরাগত IP ঠিকানা ব্যবহার করবে। আপনার সাধারণ নাম অবশ্যই <Your-EXTERNAL-IP.nip.io> দিয়ে কনফিগার করা উচিত

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

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

gcloud compute ssl-certificates create consumer-service-cert \
    --certificate=<your-consumer-certfile.cert> \
    --private-key=<your-consumer-keyfile.pem> \
    --global

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

আমরা একটি PSC NEG সহ একটি বৈশ্বিক বহিরাগত অ্যাপ্লিকেশন লোড ব্যালেন্সার তৈরি করব যা ব্যাকএন্ড পরিষেবা হিসাবে আমাদের নতুন তৈরি পরিষেবা সংযুক্তির দিকে নির্দেশ করে৷

আমরা শেষ ধাপে উল্লেখিত পরিষেবা সংযুক্তি ইউআরআইটি ব্যবহার করুন। নিচের psc-target-serviceটি আপনার URI দিয়ে প্রতিস্থাপন করুন।

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

gcloud compute network-endpoint-groups create apache-psc-neg \
--network-endpoint-type=private-service-connect \
--psc-target-service=projects/$project/regions/$region/serviceAttachments/apache-service-attachment \
--region=$region \
--network=consumer-vpc \
--subnet=consumer-subnet

ব্যাকএন্ড পরিষেবা তৈরি করুন।

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

gcloud compute backend-services create apache-pscneg-bes \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --protocol=HTTPS \
    --global

gcloud compute backend-services add-backend apache-pscneg-bes \
    --network-endpoint-group=apache-psc-neg \
    --network-endpoint-group-region=$region \
    --global

ইউআরএল ম্যাপ তৈরি করুন

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

gcloud compute url-maps create consumer-url-map \
    --default-service=apache-pscneg-bes \
    --global

লক্ষ্য HTTPS প্রক্সি তৈরি করুন.

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

gcloud compute target-https-proxies create psc-https-proxy \
    --url-map=consumer-url-map \
    --ssl-certificates=consumer-service-cert

ফরোয়ার্ড করার নিয়ম তৈরি করুন

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

gcloud compute forwarding-rules create external-fr \
  --load-balancing-scheme=EXTERNAL_MANAGED \
  --network-tier=PREMIUM \
  --address=external-psc-ip \
  --global \
  --target-https-proxy=psc-https-proxy \
  --ports=443

14. পাবলিক DNS জোন তৈরি করুন

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

gcloud dns managed-zones create "psc-service" \
    --dns-name=$externalip.nip.io. \
    --description="public dns for psc service" \
    --visibility=public

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

gcloud dns record-sets transaction start \
   --zone="psc-service"

gcloud dns record-sets transaction add $externalip \
   --name=$externalip.nip.io \
   --ttl=300 \
   --type=A \
   --zone="psc-service"

gcloud dns record-sets transaction execute \
   --zone="psc-service"

15. ভোক্তা PSC সংযোগ পরীক্ষা করুন

পাবলিক DNS প্রচার করার জন্য পরীক্ষার আগে 7 থেকে 10 মিনিট অপেক্ষা করুন।

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

curl https://$externalip.nip.io -k

আপনি আপনার ব্রাউজার বা ডেস্কটপ টার্মিনালে https://<YOUR-EXTERNAL-IP>.nip.io ইনপুট করে আপনার ব্রাউজার থেকে পরীক্ষা করতে পারেন।

প্রত্যাশিত ফলাফল

PSC Service

16. পরিচ্ছন্নতার পদক্ষেপ

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

gcloud dns record-sets delete $externalip.nip.io --zone="psc-service" --type=A -q

gcloud dns managed-zones delete "psc-service" -q

gcloud compute forwarding-rules delete external-fr --global -q 

gcloud compute target-https-proxies delete psc-https-proxy -q

gcloud compute url-maps delete consumer-url-map --global -q

gcloud compute backend-services delete apache-pscneg-bes --global -q

gcloud compute network-endpoint-groups delete apache-psc-neg --region=$region -q

gcloud compute ssl-certificates delete consumer-service-cert --global -q

gcloud compute addresses delete external-psc-ip --global -q

gcloud compute networks subnets delete consumer-subnet --region $region -q

gcloud compute networks delete consumer-vpc -q

gcloud compute instances delete vm-client --zone=us-east4-a -q

gcloud compute service-attachments delete apache-service-attachment --region $region -q

gcloud compute forwarding-rules delete apache-fr --region $region -q

gcloud compute target-https-proxies delete https-proxy --region $region -q

gcloud compute url-maps delete producer-url-map --region $region -q

gcloud compute backend-services delete apache-bes --region $region -q

gcloud compute health-checks delete lb-apache-service-hc --region $region -q

gcloud compute addresses delete apache-service-ip --region $region -q

gcloud compute ssl-certificates delete producer-service-cert --region $region -q

gcloud compute instance-groups managed delete psc-service-mig --region $region -q

gcloud compute health-checks delete service-mig-healthcheck --global -q

gcloud compute instance-templates delete apache-service-template -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 routers nats delete central-nat --router=central-cr --region $region -q

gcloud compute routers delete central-cr --region $region -q

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

gcloud compute networks subnets delete service-subnet --region $region -q

gcloud compute networks subnets delete test-client-subnet --region us-east4 -q 

gcloud compute networks subnets delete central-proxy-subnet --region $region -q

gcloud compute networks delete producer-vpc -q

17. অভিনন্দন!

কোডল্যাব সম্পূর্ণ করার জন্য অভিনন্দন।

আমরা কভার করেছি কি

  • গ্লোবাল এক্সটার্নাল অ্যাপ্লিকেশান লোড ব্যালেন্সারের সাথে যুক্ত একটি PSC ব্যাকএন্ড কনফিগার করুন
  • একটি Apache পরিচালিত ওয়েব পরিষেবা কনফিগার করুন এবং একটি পরিষেবা সংযুক্তির মাধ্যমে এটি একটি PSC পরিষেবা হিসাবে প্রকাশ করুন
  • অভ্যন্তরীণ এবং বহিরাগত অ্যাপ্লিকেশন লোড ব্যালেন্সারগুলিতে SSL সমাপ্ত করতে SSL শংসাপত্র তৈরি করুন৷
  • PSC পরিষেবা অ্যাক্সেস করতে একটি ক্লাউড DNS পাবলিক জোন কনফিগার করুন
,

1. ভূমিকা

প্রাইভেট সার্ভিস কানেক্ট সেবা প্রযোজকদের এক ভিপিসি নেটওয়ার্ক থেকে অন্য ভিপিসি নেটওয়ার্কে ব্যক্তিগতভাবে পরিষেবা প্রকাশ করতে সক্ষম করে। ভোক্তারা PSC এন্ডপয়েন্ট বা PSC ব্যাকএন্ডের মাধ্যমে প্রযোজক পরিষেবাগুলি অ্যাক্সেস করতে পারে।

এই কোডল্যাবের ফোকাস হল পিএসসি ব্যাকএন্ডস। পিএসসি ব্যাকএন্ডগুলি Google ক্লাউড প্রক্সি লোড ব্যালেন্সার (অ্যাপ্লিকেশন বা নেটওয়ার্ক) এর সাথে ব্যবহার করা হয়। PSC ব্যাকএন্ড ব্যবহার করা আরও দানাদার ভোক্তা পক্ষের নিয়ন্ত্রণ প্রদান করে যেমন:

  • গভীর পর্যবেক্ষণযোগ্যতা এবং লগিং
  • ক্লাউড আর্মার ইন্টিগ্রেশন
  • কাস্টম ইউআরএল
  • উন্নত ট্রাফিক ব্যবস্থাপনা
  • কাস্টম TLS শংসাপত্র

এই কোডল্যাবে, আপনি শিখবেন কিভাবে একটি প্রাইভেট সার্ভিস কানেক্ট ব্যাকএন্ড গ্লোবাল এক্সটার্নাল অ্যাপ্লিকেশান লোড ব্যালেন্সারের সাথে অন্য নেটওয়ার্কে একটি প্রযোজক পরিষেবা ব্যক্তিগতভাবে অ্যাক্সেস করতে।

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

  • গ্লোবাল এক্সটার্নাল অ্যাপ্লিকেশান লোড ব্যালেন্সারের সাথে যুক্ত একটি PSC ব্যাকএন্ড তৈরি এবং কনফিগার করুন
  • একটি Apache পরিচালিত ওয়েব পরিষেবা কনফিগার করুন এবং একটি পরিষেবা সংযুক্তির মাধ্যমে এটি একটি PSC পরিষেবা হিসাবে প্রকাশ করুন
  • অভ্যন্তরীণ এবং বহিরাগত অ্যাপ্লিকেশন লোড ব্যালেন্সারগুলিতে SSL সমাপ্ত করতে SSL শংসাপত্র তৈরি করুন৷
  • PSC পরিষেবা অ্যাক্সেস করার জন্য একটি ক্লাউড DNS পাবলিক জোন কনফিগার করুন

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

  • মালিকের অনুমতি সহ একটি Google ক্লাউড প্রকল্প৷

2. পরীক্ষা পরিবেশ

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

কনজিউমার ভিপিসি-তে আপনি একটি গ্লোবাল এক্সটার্নাল অ্যাপ্লিকেশান লোড ব্যালেন্সার স্থাপন করবেন একটি PSC ব্যাকএন্ড পরিষেবার সাথে Apache পরিষেবার দিকে নির্দেশ করে৷ তারপরে আপনি সর্বজনীন ইন্টারনেটে PSC পরিষেবা অ্যাক্সেস করতে একটি সর্বজনীন DNS জোন সেট আপ করবেন৷

31e7497bf3d9035c.png

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

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

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

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

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

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

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

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

55efc1aaa7a4d3ad.png

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

7ffe5cbb04455448.png

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

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

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

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

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
export project=YOUR-PROJECT-NAME
export region=us-central1
echo $project
echo $region

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

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

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

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

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

gcloud compute networks create producer-vpc --subnet-mode custom

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

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

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

gcloud compute networks subnets create service-subnet \
    --network=producer-vpc \
    --range=10.0.0.0/28 \
    --region=$region

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

gcloud compute networks subnets create test-client-subnet \
    --network=producer-vpc \
    --range=10.0.1.0/28 \
    --region=us-east4

আঞ্চলিক অভ্যন্তরীণ অ্যাপ্লিকেশন লোড ব্যালেন্সারের সাথে ব্যবহার করার জন্য আমাদের অবশ্যই একটি প্রক্সি শুধুমাত্র সাবনেট স্থাপন করতে হবে।

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

gcloud compute networks subnets create central-proxy-subnet \
    --network=producer-vpc \
    --range=10.100.101.0/24 \
    --region=$region \
    --purpose=REGIONAL_MANAGED_PROXY \
    --role=ACTIVE

যখন একটি PSC পরিষেবা স্থাপন করা হয়, তখন প্রতিটি অনন্য পরিষেবার জন্য একটি অনুরূপ PSC NAT সাবনেট প্রয়োজন পরিষেবা সংযুক্তির সাথে যুক্ত হতে৷ প্রত্যাশিত সংযুক্ত এন্ডপয়েন্টের সংখ্যার উপর নির্ভর করে এই সাবনেটটি যথাযথভাবে মাপ করা উচিত।

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

gcloud compute networks subnets create psc-nat-subnet \
    --network=producer-vpc \
    --region=$region \
    --range=10.100.100.0/24 \
    --purpose=PRIVATE_SERVICE_CONNECT

Cloud NAT তৈরি করুন

আমাদের প্রযোজক পরিষেবাগুলির জন্য সঠিক প্যাকেজগুলি ইনস্টল করার জন্য একটি ক্লাউড NAT প্রয়োজন৷

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

gcloud compute routers create central-cr \
    --network=producer-vpc \
    --region=$region

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

gcloud compute routers nats create central-nat \
    --router=central-cr \
    --region=$region \
    --nat-all-subnet-ip-ranges \
    --auto-allocate-nat-external-ips

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

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

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

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

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

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

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

লোড ব্যালেন্সার প্রক্সি অনলি সাবনেট (2000) থেকে প্রাপ্ত লোড ব্যালেন্সার ব্যাকএন্ডে প্রবেশের জন্য দুটি অতিরিক্ত ফায়ারওয়াল নিয়মের প্রয়োজন হবে, সেইসাথে ব্যাক এন্ড ইনস্ট্যান্সে (2001) লোড ব্যালেন্সার হেলথ চেকের অনুমতি দেওয়ার জন্য একটি নিয়ম।

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

gcloud compute network-firewall-policies rules create 2000 \
    --action ALLOW \
    --firewall-policy producer-vpc-policy \
    --description "allow traffic from load balancer proxy subnet" \
    --direction INGRESS \
    --src-ip-ranges 10.100.101.0/24 \
    --layer4-configs tcp:443 \
    --global-firewall-policy


gcloud compute network-firewall-policies rules create 2001 \
    --action ALLOW \
    --firewall-policy producer-vpc-policy \
    --description "allow load balancer health checks" \
    --direction INGRESS \
    --src-ip-ranges 130.211.0.0/22,35.191.0.0/16 \
    --layer4-configs tcp:443 \
    --global-firewall-policy

6. অ্যাপাচি ওয়েব সার্ভিস তৈরি করুন

আমরা একটি সাধারণ অ্যাপাচি ওয়েব পরিষেবা তৈরি করব যা "PSC পরিষেবা" প্রদর্শন করে।

ইনস্ট্যান্স টেমপ্লেট তৈরি করুন

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

gcloud compute instance-templates create apache-service-template \
    --network producer-vpc \
    --subnet service-subnet \
    --region $region \
    --no-address \
    --metadata startup-script='#! /bin/bash
    sudo apt-get update
    apt-get install apache2 -y
    a2enmod ssl
    sudo a2ensite default-ssl
    echo "PSC Service" | \
    tee /var/www/html/index.html
    systemctl restart apache2'

এমআইজির জন্য স্বাস্থ্য পরীক্ষা তৈরি করুন

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

gcloud compute health-checks create https service-mig-healthcheck \
    --port=443 \
    --global

ম্যানেজড ইনস্ট্যান্স গ্রুপ তৈরি করুন

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

gcloud compute instance-groups managed create psc-service-mig \
    --region $region \
    --size=2 \
    --template=apache-service-template \
    --health-check=service-mig-healthcheck

gcloud compute instance-groups managed set-named-ports psc-service-mig \
    --named-ports=https:443 \
    --region=$region

7. একটি স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করুন

একটি স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করতে এখানে নির্দেশাবলীর ধাপ 1 সম্পূর্ণ করুন। আপনি ক্লাউড শেলের সমস্ত কমান্ড চালাতে পারেন। ধাপ 1 সম্পূর্ণ হলে এই জায়গায় ফিরে যান। আপনার সাধারণ নাম অবশ্যই EXAMPLE.COM এর সাথে কনফিগার করা উচিত।

আপনার লোড ব্যালেন্সারের সাথে যুক্ত করার জন্য একটি শংসাপত্র সম্পদ তৈরি করুন। আপনার নির্দিষ্ট ফাইলের নাম দিয়ে শংসাপত্র এবং ব্যক্তিগত-কী পরামিতি প্রতিস্থাপন করুন।

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

gcloud compute ssl-certificates create producer-service-cert \
    --certificate=<your-producer-certfile.cert> \
    --private-key=<your-producer-keyfile.pem> \
    --region=$region

8. অভ্যন্তরীণ আঞ্চলিক অ্যাপ্লিকেশন লোড ব্যালেন্সার তৈরি করুন

পরবর্তী আমরা পরিষেবার জন্য লোড ব্যালেন্সার উপাদান তৈরি করব। আমরা অভ্যন্তরীণ আঞ্চলিক অ্যাপ্লিকেশন লোড ব্যালেন্সার ব্যবহার করছি, কিন্তু আপনার কাছে যেকোনো Google ক্লাউড অভ্যন্তরীণ লোড ব্যালেন্সার ব্যবহার করার বিকল্প রয়েছে। TLS পরিচালনার জন্য উপযুক্ত লোড ব্যালেন্সার ডকুমেন্টেশন অনুসরণ করুন।

অভ্যন্তরীণ আইপি ঠিকানা তৈরি করুন যা আপনার লোড ব্যালেন্সারের ফরোয়ার্ডিং নিয়মের জন্য ব্যবহার করা হবে এবং আপনি যখন পরিষেবাটিতে একটি পরীক্ষা কল করবেন তখন পরবর্তীতে ব্যবহার করা হবে তা নোট করুন৷

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

gcloud compute addresses create apache-service-ip \
 --region=$region \
 --subnet=service-subnet

gcloud compute addresses describe apache-service-ip \
   --format="get(address)" \
   --region=$region

লোড ব্যালেন্সার স্বাস্থ্য পরীক্ষা তৈরি করুন।

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

gcloud compute health-checks create https lb-apache-service-hc \
    --region=$region \
    --port-name=https

ব্যাকএন্ড পরিষেবা তৈরি করুন।

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

gcloud compute backend-services create apache-bes\
  --load-balancing-scheme=INTERNAL_MANAGED \
  --protocol=HTTPS \
  --port-name=https \
  --health-checks=lb-apache-service-hc \
  --health-checks-region=$region \
  --region=$region


gcloud compute backend-services add-backend apache-bes \
  --balancing-mode=UTILIZATION \
  --instance-group=psc-service-mig \
  --region=$region

ইউআরএল ম্যাপ তৈরি করুন।

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

gcloud compute url-maps create producer-url-map \
  --default-service=apache-bes \
  --region=$region

লক্ষ্য HTTPS প্রক্সি তৈরি করুন.

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

gcloud compute target-https-proxies create https-proxy \
  --url-map=producer-url-map \
  --region=$region \
  --ssl-certificates=producer-service-cert

ফরোয়ার্ড করার নিয়ম তৈরি করুন।

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

gcloud compute forwarding-rules create apache-fr \
  --load-balancing-scheme=INTERNAL_MANAGED \
  --network=producer-vpc \
  --subnet=service-subnet \
  --address=apache-service-ip \
  --ports=443 \
  --region=$region \
  --target-https-proxy=https-proxy \
  --target-https-proxy-region=$region \
  --allow-global-access

9. একটি টেস্ট VM তৈরি করুন এবং পরিষেবাটি স্থানীয়ভাবে পরীক্ষা করুন৷

আমরা পরিষেবা সংযুক্তি তৈরি করার আগে, গ্লোবাল অ্যাক্সেস এবং TLS এর সাথে লোড ব্যালেন্সার সঠিকভাবে কনফিগার করা হয়েছে তা পরীক্ষা করার জন্য আমরা একটি ভিন্ন অঞ্চলে একটি টেস্ট ক্লায়েন্ট vm তৈরি করব।

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

gcloud compute instances create vm-client \
    --zone=us-east4-a \
    --subnet=test-client-subnet \
    --no-address

প্রভিশনিং সম্পূর্ণ হওয়ার জন্য প্রায় এক মিনিট অপেক্ষা করুন এবং তারপরে উদাহরণে SSH করুন।

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

gcloud compute ssh \
    --zone "us-east4-a" "vm-client" \
    --tunnel-through-iap \
    --project $project

লোড ব্যালেন্সারের মাধ্যমে 443-এর বেশি সংযোগ করে Apache পরিষেবা পরীক্ষা করুন। অভ্যন্তরীণ আইপি ঠিকানাটি আপনি সংরক্ষিত এবং আগে উল্লেখ করেছেন।

curl https://example.com:443 -k --connect-to example.com:443:<YOUR-INTERNAL-IP>:443

প্রত্যাশিত ফলাফল

PSC Service

VM থেকে প্রস্থান করুন।

ভিএম-ক্লায়েন্ট থেকে

exit

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

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

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

gcloud compute service-attachments create apache-service-attachment \
    --region=$region \
    --producer-forwarding-rule=apache-fr \
    --connection-preference=ACCEPT_MANUAL \
    --consumer-accept-list=$project=5 \
    --nat-subnets=psc-nat-subnet

PSC ব্যাকএন্ড কনফিগারেশনের জন্য পরবর্তী ধাপে আপনাকে সার্ভিস অ্যাটাচমেন্ট URI ( selfLink ) নোট করে রাখতে হবে। আপনি ক্লাউড শেলে নিম্নলিখিতগুলি সম্পাদন করে এটি পেতে পারেন।

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

gcloud compute service-attachments describe apache-service-attachment \
    --region $region

প্রকল্প থেকে শুরু করে URI কপি করুন

উদাহরণ: প্রকল্প/$project/regions/$region/serviceAttachments/apache-service-attachment

11. ভোক্তা VPC সেটআপ

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

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

gcloud compute networks create consumer-vpc --subnet-mode custom

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

ভোক্তাদের দিকে একটি সাবনেট প্রয়োজন যেখানে প্রাইভেট সার্ভিস কানেক্ট নেটওয়ার্ক এন্ডপয়েন্ট গ্রুপ (এনইজি) স্থাপন করা হবে।

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

gcloud compute networks subnets create consumer-subnet \
    --network=consumer-vpc \
    --region=$region \
    --range=10.0.0.0/28

12. এক্সটার্নাল আইপি রিজার্ভ করুন এবং কনজিউমার সাইড স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করুন

বাহ্যিক আইপি

বাহ্যিক স্ট্যাটিক আইপি ঠিকানা তৈরি করুন যা আমাদের লোড ব্যালেন্সার ফরওয়ার্ডিং নিয়মের জন্য পরে ব্যবহার করা হবে এবং একটি ক্লাউড শেল ভেরিয়েবলে আইপি ঠিকানা ক্যাপচার করুন।

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

gcloud compute addresses create external-psc-ip \
    --network-tier=PREMIUM \
    --ip-version=IPV4 \
    --global

export externalip=$(gcloud compute addresses describe external-psc-ip \
    --format="get(address)" \
    --global)

echo $externalip

ভোক্তা স্ব-স্বাক্ষরিত শংসাপত্র

দ্বিতীয়বারের জন্য, একটি স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করতে এখানে নির্দেশাবলীর ধাপ 1 সম্পূর্ণ করুন। আপনি ক্লাউড শেলের সমস্ত কমান্ড চালাতে পারেন। ধাপ 1 সম্পূর্ণ হলে এই জায়গায় ফিরে যান। আমরা আমাদের নিজস্ব পাবলিক ডিএনএস জোনের মালিকানার জায়গায় nip.io নামে একটি ওপেন সোর্স পাবলিক ওয়াইল্ডকার্ড DNS পরিষেবা ব্যবহার করব। আপনার PSC পরিষেবার সর্বজনীন URL আপনার কনফিগার করা বহিরাগত IP ঠিকানা ব্যবহার করবে। আপনার সাধারণ নাম অবশ্যই <Your-EXTERNAL-IP.nip.io> দিয়ে কনফিগার করা উচিত

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

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

gcloud compute ssl-certificates create consumer-service-cert \
    --certificate=<your-consumer-certfile.cert> \
    --private-key=<your-consumer-keyfile.pem> \
    --global

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

আমরা একটি PSC NEG সহ একটি বৈশ্বিক বহিরাগত অ্যাপ্লিকেশন লোড ব্যালেন্সার তৈরি করব যা ব্যাকএন্ড পরিষেবা হিসাবে আমাদের নতুন তৈরি পরিষেবা সংযুক্তির দিকে নির্দেশ করে৷

আমরা শেষ ধাপে উল্লেখিত পরিষেবা সংযুক্তি ইউআরআইটি ব্যবহার করুন। নিচের psc-target-serviceটি আপনার URI দিয়ে প্রতিস্থাপন করুন।

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

gcloud compute network-endpoint-groups create apache-psc-neg \
--network-endpoint-type=private-service-connect \
--psc-target-service=projects/$project/regions/$region/serviceAttachments/apache-service-attachment \
--region=$region \
--network=consumer-vpc \
--subnet=consumer-subnet

ব্যাকএন্ড পরিষেবা তৈরি করুন।

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

gcloud compute backend-services create apache-pscneg-bes \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --protocol=HTTPS \
    --global

gcloud compute backend-services add-backend apache-pscneg-bes \
    --network-endpoint-group=apache-psc-neg \
    --network-endpoint-group-region=$region \
    --global

ইউআরএল ম্যাপ তৈরি করুন

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

gcloud compute url-maps create consumer-url-map \
    --default-service=apache-pscneg-bes \
    --global

লক্ষ্য HTTPS প্রক্সি তৈরি করুন.

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

gcloud compute target-https-proxies create psc-https-proxy \
    --url-map=consumer-url-map \
    --ssl-certificates=consumer-service-cert

ফরোয়ার্ড করার নিয়ম তৈরি করুন

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

gcloud compute forwarding-rules create external-fr \
  --load-balancing-scheme=EXTERNAL_MANAGED \
  --network-tier=PREMIUM \
  --address=external-psc-ip \
  --global \
  --target-https-proxy=psc-https-proxy \
  --ports=443

14. পাবলিক DNS জোন তৈরি করুন

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

gcloud dns managed-zones create "psc-service" \
    --dns-name=$externalip.nip.io. \
    --description="public dns for psc service" \
    --visibility=public

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

gcloud dns record-sets transaction start \
   --zone="psc-service"

gcloud dns record-sets transaction add $externalip \
   --name=$externalip.nip.io \
   --ttl=300 \
   --type=A \
   --zone="psc-service"

gcloud dns record-sets transaction execute \
   --zone="psc-service"

15. ভোক্তা PSC সংযোগ পরীক্ষা করুন

পাবলিক DNS প্রচার করার জন্য পরীক্ষার আগে 7 থেকে 10 মিনিট অপেক্ষা করুন।

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

curl https://$externalip.nip.io -k

আপনি আপনার ব্রাউজার বা ডেস্কটপ টার্মিনালে https://<YOUR-EXTERNAL-IP>.nip.io ইনপুট করে আপনার ব্রাউজার থেকে পরীক্ষা করতে পারেন।

প্রত্যাশিত ফলাফল

PSC Service

16. পরিচ্ছন্নতার পদক্ষেপ

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

gcloud dns record-sets delete $externalip.nip.io --zone="psc-service" --type=A -q

gcloud dns managed-zones delete "psc-service" -q

gcloud compute forwarding-rules delete external-fr --global -q 

gcloud compute target-https-proxies delete psc-https-proxy -q

gcloud compute url-maps delete consumer-url-map --global -q

gcloud compute backend-services delete apache-pscneg-bes --global -q

gcloud compute network-endpoint-groups delete apache-psc-neg --region=$region -q

gcloud compute ssl-certificates delete consumer-service-cert --global -q

gcloud compute addresses delete external-psc-ip --global -q

gcloud compute networks subnets delete consumer-subnet --region $region -q

gcloud compute networks delete consumer-vpc -q

gcloud compute instances delete vm-client --zone=us-east4-a -q

gcloud compute service-attachments delete apache-service-attachment --region $region -q

gcloud compute forwarding-rules delete apache-fr --region $region -q

gcloud compute target-https-proxies delete https-proxy --region $region -q

gcloud compute url-maps delete producer-url-map --region $region -q

gcloud compute backend-services delete apache-bes --region $region -q

gcloud compute health-checks delete lb-apache-service-hc --region $region -q

gcloud compute addresses delete apache-service-ip --region $region -q

gcloud compute ssl-certificates delete producer-service-cert --region $region -q

gcloud compute instance-groups managed delete psc-service-mig --region $region -q

gcloud compute health-checks delete service-mig-healthcheck --global -q

gcloud compute instance-templates delete apache-service-template -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 routers nats delete central-nat --router=central-cr --region $region -q

gcloud compute routers delete central-cr --region $region -q

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

gcloud compute networks subnets delete service-subnet --region $region -q

gcloud compute networks subnets delete test-client-subnet --region us-east4 -q 

gcloud compute networks subnets delete central-proxy-subnet --region $region -q

gcloud compute networks delete producer-vpc -q

17. অভিনন্দন!

কোডল্যাব সম্পূর্ণ করার জন্য অভিনন্দন।

আমরা কভার করেছি কি

  • গ্লোবাল এক্সটার্নাল অ্যাপ্লিকেশান লোড ব্যালেন্সারের সাথে যুক্ত একটি PSC ব্যাকএন্ড কনফিগার করুন
  • একটি Apache পরিচালিত ওয়েব পরিষেবা কনফিগার করুন এবং একটি পরিষেবা সংযুক্তির মাধ্যমে এটি একটি PSC পরিষেবা হিসাবে প্রকাশ করুন
  • অভ্যন্তরীণ এবং বহিরাগত অ্যাপ্লিকেশন লোড ব্যালেন্সারগুলিতে SSL সমাপ্ত করতে SSL শংসাপত্র তৈরি করুন৷
  • PSC পরিষেবা অ্যাক্সেস করতে একটি ক্লাউড DNS পাবলিক জোন কনফিগার করুন
,

1. ভূমিকা

প্রাইভেট সার্ভিস কানেক্ট সেবা প্রযোজকদের এক ভিপিসি নেটওয়ার্ক থেকে অন্য ভিপিসি নেটওয়ার্কে ব্যক্তিগতভাবে পরিষেবা প্রকাশ করতে সক্ষম করে। ভোক্তারা PSC এন্ডপয়েন্ট বা PSC ব্যাকএন্ডের মাধ্যমে প্রযোজক পরিষেবাগুলি অ্যাক্সেস করতে পারে।

এই কোডল্যাবের ফোকাস হল পিএসসি ব্যাকএন্ডস। পিএসসি ব্যাকএন্ডগুলি Google ক্লাউড প্রক্সি লোড ব্যালেন্সার (অ্যাপ্লিকেশন বা নেটওয়ার্ক) এর সাথে ব্যবহার করা হয়। PSC ব্যাকএন্ড ব্যবহার করা আরও দানাদার ভোক্তা পক্ষের নিয়ন্ত্রণ প্রদান করে যেমন:

  • গভীর পর্যবেক্ষণযোগ্যতা এবং লগিং
  • ক্লাউড আর্মার ইন্টিগ্রেশন
  • কাস্টম ইউআরএল
  • উন্নত ট্রাফিক ব্যবস্থাপনা
  • কাস্টম TLS শংসাপত্র

এই কোডল্যাবে, আপনি শিখবেন কিভাবে একটি প্রাইভেট সার্ভিস কানেক্ট ব্যাকএন্ড গ্লোবাল এক্সটার্নাল অ্যাপ্লিকেশান লোড ব্যালেন্সারের সাথে অন্য নেটওয়ার্কে একটি প্রযোজক পরিষেবা ব্যক্তিগতভাবে অ্যাক্সেস করতে।

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

  • গ্লোবাল এক্সটার্নাল অ্যাপ্লিকেশান লোড ব্যালেন্সারের সাথে যুক্ত একটি PSC ব্যাকএন্ড তৈরি এবং কনফিগার করুন
  • একটি Apache পরিচালিত ওয়েব পরিষেবা কনফিগার করুন এবং একটি পরিষেবা সংযুক্তির মাধ্যমে এটি একটি PSC পরিষেবা হিসাবে প্রকাশ করুন
  • অভ্যন্তরীণ এবং বহিরাগত অ্যাপ্লিকেশন লোড ব্যালেন্সারগুলিতে SSL সমাপ্ত করতে SSL শংসাপত্র তৈরি করুন৷
  • PSC পরিষেবা অ্যাক্সেস করার জন্য একটি ক্লাউড DNS পাবলিক জোন কনফিগার করুন

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

  • মালিকের অনুমতি সহ একটি Google ক্লাউড প্রকল্প৷

2. পরীক্ষা পরিবেশ

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

কনজিউমার ভিপিসি-তে আপনি একটি গ্লোবাল এক্সটার্নাল অ্যাপ্লিকেশান লোড ব্যালেন্সার স্থাপন করবেন একটি PSC ব্যাকএন্ড পরিষেবার সাথে Apache পরিষেবার দিকে নির্দেশ করে৷ তারপরে আপনি সর্বজনীন ইন্টারনেটে PSC পরিষেবা অ্যাক্সেস করতে একটি সর্বজনীন DNS জোন সেট আপ করবেন৷

31e7497bf3d9035c.png

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

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

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

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

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

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

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

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

55efc1aaa7a4d3ad.png

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

7ffe5cbb04455448.png

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

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

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

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

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
export project=YOUR-PROJECT-NAME
export region=us-central1
echo $project
echo $region

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

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

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

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

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

gcloud compute networks create producer-vpc --subnet-mode custom

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

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

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

gcloud compute networks subnets create service-subnet \
    --network=producer-vpc \
    --range=10.0.0.0/28 \
    --region=$region

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

gcloud compute networks subnets create test-client-subnet \
    --network=producer-vpc \
    --range=10.0.1.0/28 \
    --region=us-east4

আঞ্চলিক অভ্যন্তরীণ অ্যাপ্লিকেশন লোড ব্যালেন্সারের সাথে ব্যবহার করার জন্য আমাদের অবশ্যই একটি প্রক্সি শুধুমাত্র সাবনেট স্থাপন করতে হবে।

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

gcloud compute networks subnets create central-proxy-subnet \
    --network=producer-vpc \
    --range=10.100.101.0/24 \
    --region=$region \
    --purpose=REGIONAL_MANAGED_PROXY \
    --role=ACTIVE

যখন একটি PSC পরিষেবা স্থাপন করা হয়, তখন প্রতিটি অনন্য পরিষেবার জন্য একটি অনুরূপ PSC NAT সাবনেট প্রয়োজন পরিষেবা সংযুক্তির সাথে যুক্ত হতে৷ প্রত্যাশিত সংযুক্ত এন্ডপয়েন্টের সংখ্যার উপর নির্ভর করে এই সাবনেটটি যথাযথভাবে মাপ করা উচিত।

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

gcloud compute networks subnets create psc-nat-subnet \
    --network=producer-vpc \
    --region=$region \
    --range=10.100.100.0/24 \
    --purpose=PRIVATE_SERVICE_CONNECT

Cloud NAT তৈরি করুন

আমাদের প্রযোজক পরিষেবাগুলির জন্য সঠিক প্যাকেজগুলি ইনস্টল করার জন্য একটি ক্লাউড NAT প্রয়োজন৷

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

gcloud compute routers create central-cr \
    --network=producer-vpc \
    --region=$region

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

gcloud compute routers nats create central-nat \
    --router=central-cr \
    --region=$region \
    --nat-all-subnet-ip-ranges \
    --auto-allocate-nat-external-ips

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

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

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

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

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

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

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

লোড ব্যালেন্সার প্রক্সি কেবল সাবনেট (2000) থেকে উত্সাহিত লোড ব্যালেন্সার ব্যাকেন্ডগুলিতে প্রবেশের ট্র্যাফিকের অনুমতি দেওয়ার জন্য দুটি অতিরিক্ত ফায়ারওয়াল নিয়মের প্রয়োজন হবে, পাশাপাশি পিছনের প্রান্তে (2001) লোড ব্যালেন্সার হেলথচেকসকে অনুমতি দেওয়ার একটি নিয়ম।

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

gcloud compute network-firewall-policies rules create 2000 \
    --action ALLOW \
    --firewall-policy producer-vpc-policy \
    --description "allow traffic from load balancer proxy subnet" \
    --direction INGRESS \
    --src-ip-ranges 10.100.101.0/24 \
    --layer4-configs tcp:443 \
    --global-firewall-policy


gcloud compute network-firewall-policies rules create 2001 \
    --action ALLOW \
    --firewall-policy producer-vpc-policy \
    --description "allow load balancer health checks" \
    --direction INGRESS \
    --src-ip-ranges 130.211.0.0/22,35.191.0.0/16 \
    --layer4-configs tcp:443 \
    --global-firewall-policy

6 .. অ্যাপাচি ওয়েব পরিষেবা তৈরি করুন

আমরা একটি সাধারণ অ্যাপাচি ওয়েব পরিষেবা তৈরি করব যা "পিএসসি পরিষেবা" প্রদর্শন করে।

উদাহরণ টেম্পলেট তৈরি করুন

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

gcloud compute instance-templates create apache-service-template \
    --network producer-vpc \
    --subnet service-subnet \
    --region $region \
    --no-address \
    --metadata startup-script='#! /bin/bash
    sudo apt-get update
    apt-get install apache2 -y
    a2enmod ssl
    sudo a2ensite default-ssl
    echo "PSC Service" | \
    tee /var/www/html/index.html
    systemctl restart apache2'

মিগের জন্য স্বাস্থ্য চেক তৈরি করুন

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

gcloud compute health-checks create https service-mig-healthcheck \
    --port=443 \
    --global

পরিচালিত উদাহরণ গ্রুপ তৈরি করুন

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

gcloud compute instance-groups managed create psc-service-mig \
    --region $region \
    --size=2 \
    --template=apache-service-template \
    --health-check=service-mig-healthcheck

gcloud compute instance-groups managed set-named-ports psc-service-mig \
    --named-ports=https:443 \
    --region=$region

7। একটি স্ব স্বাক্ষরিত শংসাপত্র তৈরি করুন

একটি স্ব স্বাক্ষরিত শংসাপত্র তৈরি করতে এখানে দিকনির্দেশের প্রথম ধাপ 1 সম্পূর্ণ করুন। আপনি ক্লাউড শেলের সমস্ত কমান্ড চালাতে পারেন। পদক্ষেপ 1 শেষ হয়ে গেলে এই জায়গায় ফিরে যান। আপনার সাধারণ নামটি অবশ্যই উদাহরণস্বরূপ ডটকমের সাথে কনফিগার করা উচিত।

আপনার লোড ব্যালেন্সারের সাথে সংযুক্ত করতে একটি শংসাপত্রের সংস্থান তৈরি করুন। আপনার নির্দিষ্ট ফাইলের নামগুলির সাথে শংসাপত্র এবং ব্যক্তিগত-কী পরামিতিগুলি প্রতিস্থাপন করুন।

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

gcloud compute ssl-certificates create producer-service-cert \
    --certificate=<your-producer-certfile.cert> \
    --private-key=<your-producer-keyfile.pem> \
    --region=$region

8। অভ্যন্তরীণ আঞ্চলিক অ্যাপ্লিকেশন লোড ব্যালেন্সার তৈরি করুন

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

অভ্যন্তরীণ আইপি ঠিকানা তৈরি করুন যা আপনার লোড ব্যালেন্সারের ফরোয়ার্ডিং নিয়মের জন্য ব্যবহৃত হবে এবং আপনি যখন পরিষেবাটিতে একটি পরীক্ষা কল করবেন তখন পরে আইপিটি ব্যবহার করার জন্য নোট করুন।

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

gcloud compute addresses create apache-service-ip \
 --region=$region \
 --subnet=service-subnet

gcloud compute addresses describe apache-service-ip \
   --format="get(address)" \
   --region=$region

লোড ব্যালেন্সার স্বাস্থ্য চেক তৈরি করুন।

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

gcloud compute health-checks create https lb-apache-service-hc \
    --region=$region \
    --port-name=https

ব্যাকএন্ড পরিষেবা তৈরি করুন।

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

gcloud compute backend-services create apache-bes\
  --load-balancing-scheme=INTERNAL_MANAGED \
  --protocol=HTTPS \
  --port-name=https \
  --health-checks=lb-apache-service-hc \
  --health-checks-region=$region \
  --region=$region


gcloud compute backend-services add-backend apache-bes \
  --balancing-mode=UTILIZATION \
  --instance-group=psc-service-mig \
  --region=$region

ইউআরএল মানচিত্র তৈরি করুন।

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

gcloud compute url-maps create producer-url-map \
  --default-service=apache-bes \
  --region=$region

লক্ষ্য এইচটিটিপিএস প্রক্সি তৈরি করুন।

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

gcloud compute target-https-proxies create https-proxy \
  --url-map=producer-url-map \
  --region=$region \
  --ssl-certificates=producer-service-cert

ফরোয়ার্ডিং নিয়ম তৈরি করুন।

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

gcloud compute forwarding-rules create apache-fr \
  --load-balancing-scheme=INTERNAL_MANAGED \
  --network=producer-vpc \
  --subnet=service-subnet \
  --address=apache-service-ip \
  --ports=443 \
  --region=$region \
  --target-https-proxy=https-proxy \
  --target-https-proxy-region=$region \
  --allow-global-access

9। একটি পরীক্ষা ভিএম তৈরি করুন এবং স্থানীয়ভাবে পরিষেবাটি পরীক্ষা করুন

আমরা পরিষেবা সংযুক্তি তৈরি করার আগে, আমরা লোড ব্যালেন্সারটি গ্লোবাল অ্যাক্সেস এবং টিএলএসের সাথে সঠিকভাবে কনফিগার করা হয়েছে তা পরীক্ষা করার জন্য একটি ভিন্ন অঞ্চলে একটি পরীক্ষার ক্লায়েন্ট ভিএম তৈরি করব।

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

gcloud compute instances create vm-client \
    --zone=us-east4-a \
    --subnet=test-client-subnet \
    --no-address

বিধানটি সম্পূর্ণ করার জন্য প্রায় এক মিনিট অপেক্ষা করুন এবং তারপরে উদাহরণটি এসএসএইচ করুন।

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

gcloud compute ssh \
    --zone "us-east4-a" "vm-client" \
    --tunnel-through-iap \
    --project $project

লোড ব্যালেন্সারের মাধ্যমে 443 এর বেশি সংযোগ করে অ্যাপাচি পরিষেবাটি পরীক্ষা করুন। অভ্যন্তরীণ আইপি ঠিকানাটি হ'ল আপনি সংরক্ষিত এবং আগে উল্লেখ করেছেন।

curl https://example.com:443 -k --connect-to example.com:443:<YOUR-INTERNAL-IP>:443

প্রত্যাশিত ফলাফল

PSC Service

ভিএম থেকে প্রস্থান করুন।

ভিএম-ক্লায়েন্ট থেকে

exit

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

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

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

gcloud compute service-attachments create apache-service-attachment \
    --region=$region \
    --producer-forwarding-rule=apache-fr \
    --connection-preference=ACCEPT_MANUAL \
    --consumer-accept-list=$project=5 \
    --nat-subnets=psc-nat-subnet

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

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

gcloud compute service-attachments describe apache-service-attachment \
    --region $region

প্রকল্পগুলি থেকে শুরু করে ইউআরআই অনুলিপি করুন

উদাহরণ: প্রকল্প/$ প্রকল্প/অঞ্চল/$ অঞ্চল/সার্ভিসেটট্যাচমেন্টস/অ্যাপাচি-পরিষেবা-সংযুক্তি

11। গ্রাহক ভিপিসি সেটআপ

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

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

gcloud compute networks create consumer-vpc --subnet-mode custom

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

ভোক্তার দিকে একটি সাবনেট প্রয়োজন যেখানে প্রাইভেট সার্ভিস কানেক্ট নেটওয়ার্ক এন্ডপয়েন্ট গ্রুপ (এনইজি) মোতায়েন করা হবে।

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

gcloud compute networks subnets create consumer-subnet \
    --network=consumer-vpc \
    --region=$region \
    --range=10.0.0.0/28

12। বাহ্যিক আইপি সংরক্ষণ করুন এবং গ্রাহক পক্ষের স্ব-স্বাক্ষরযুক্ত শংসাপত্র তৈরি করুন

বাহ্যিক আইপি

বাহ্যিক স্ট্যাটিক আইপি ঠিকানা তৈরি করুন যা আমাদের লোড ব্যালেন্সার ফরোয়ার্ডিং নিয়মের জন্য পরে ব্যবহৃত হবে এবং ক্লাউড শেল ভেরিয়েবলে আইপি ঠিকানাটি ক্যাপচার করবে।

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

gcloud compute addresses create external-psc-ip \
    --network-tier=PREMIUM \
    --ip-version=IPV4 \
    --global

export externalip=$(gcloud compute addresses describe external-psc-ip \
    --format="get(address)" \
    --global)

echo $externalip

গ্রাহক স্ব-স্বাক্ষরিত শংসাপত্র

দ্বিতীয়বারের জন্য, স্ব -স্বাক্ষরিত শংসাপত্র তৈরি করতে এখানে দিকনির্দেশের 1 ধাপ সম্পূর্ণ করুন। আপনি ক্লাউড শেলের সমস্ত কমান্ড চালাতে পারেন। পদক্ষেপ 1 শেষ হয়ে গেলে এই জায়গায় ফিরে যান। আমরা আমাদের নিজস্ব পাবলিক ডিএনএস জোনের মালিকানার জায়গায় Nip.io নামে একটি ওপেন সোর্স পাবলিক ওয়াইল্ডকার্ড ডিএনএস পরিষেবা ব্যবহার করব। আপনার পিএসসি পরিষেবার পাবলিক ইউআরএল আপনার সবেমাত্র কনফিগার করা বাহ্যিক আইপি ঠিকানা ব্যবহার করবে। আপনার সাধারণ নামটি অবশ্যই <আপনার-বাহ্য-আইপি.এনপ.আইও> দিয়ে কনফিগার করা উচিত

আপনার বাহ্যিক লোড ব্যালেন্সারের সাথে সংযুক্ত করতে একটি শংসাপত্রের সংস্থান তৈরি করুন। আপনার নির্দিষ্ট ফাইলের নামগুলির সাথে শংসাপত্র এবং ব্যক্তিগত-কী পরামিতিগুলি প্রতিস্থাপন করুন।

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

gcloud compute ssl-certificates create consumer-service-cert \
    --certificate=<your-consumer-certfile.cert> \
    --private-key=<your-consumer-keyfile.pem> \
    --global

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

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

আমরা শেষ ধাপে উল্লেখ করেছি পরিষেবা সংযুক্তি ইউআরআইটি কার্যকর করুন। আপনার ইউআরআই দিয়ে নীচে পিএসসি-টার্গেট-পরিষেবা প্রতিস্থাপন করুন।

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

gcloud compute network-endpoint-groups create apache-psc-neg \
--network-endpoint-type=private-service-connect \
--psc-target-service=projects/$project/regions/$region/serviceAttachments/apache-service-attachment \
--region=$region \
--network=consumer-vpc \
--subnet=consumer-subnet

ব্যাকএন্ড পরিষেবা তৈরি করুন।

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

gcloud compute backend-services create apache-pscneg-bes \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --protocol=HTTPS \
    --global

gcloud compute backend-services add-backend apache-pscneg-bes \
    --network-endpoint-group=apache-psc-neg \
    --network-endpoint-group-region=$region \
    --global

ইউআরএল মানচিত্র তৈরি করুন

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

gcloud compute url-maps create consumer-url-map \
    --default-service=apache-pscneg-bes \
    --global

লক্ষ্য এইচটিটিপিএস প্রক্সি তৈরি করুন।

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

gcloud compute target-https-proxies create psc-https-proxy \
    --url-map=consumer-url-map \
    --ssl-certificates=consumer-service-cert

ফরোয়ার্ডিং বিধি তৈরি করুন

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

gcloud compute forwarding-rules create external-fr \
  --load-balancing-scheme=EXTERNAL_MANAGED \
  --network-tier=PREMIUM \
  --address=external-psc-ip \
  --global \
  --target-https-proxy=psc-https-proxy \
  --ports=443

14। পাবলিক ডিএনএস জোন তৈরি করুন

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

gcloud dns managed-zones create "psc-service" \
    --dns-name=$externalip.nip.io. \
    --description="public dns for psc service" \
    --visibility=public

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

gcloud dns record-sets transaction start \
   --zone="psc-service"

gcloud dns record-sets transaction add $externalip \
   --name=$externalip.nip.io \
   --ttl=300 \
   --type=A \
   --zone="psc-service"

gcloud dns record-sets transaction execute \
   --zone="psc-service"

15। গ্রাহক পিএসসি সংযোগ পরীক্ষা করুন

পাবলিক ডিএনএসকে প্রচার করতে পরীক্ষার আগে 7 থেকে 10 মিনিট অপেক্ষা করুন।

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

curl https://$externalip.nip.io -k

আপনি আপনার ব্রাউজার বা ডেস্কটপ টার্মিনালে https: // <আপনার-বাহ্য-আইপি> .nip.io ইনপুট করে আপনার ব্রাউজার থেকে পরীক্ষা করতে পারেন।

প্রত্যাশিত ফলাফল

PSC Service

16। ক্লিনআপ পদক্ষেপ

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

gcloud dns record-sets delete $externalip.nip.io --zone="psc-service" --type=A -q

gcloud dns managed-zones delete "psc-service" -q

gcloud compute forwarding-rules delete external-fr --global -q 

gcloud compute target-https-proxies delete psc-https-proxy -q

gcloud compute url-maps delete consumer-url-map --global -q

gcloud compute backend-services delete apache-pscneg-bes --global -q

gcloud compute network-endpoint-groups delete apache-psc-neg --region=$region -q

gcloud compute ssl-certificates delete consumer-service-cert --global -q

gcloud compute addresses delete external-psc-ip --global -q

gcloud compute networks subnets delete consumer-subnet --region $region -q

gcloud compute networks delete consumer-vpc -q

gcloud compute instances delete vm-client --zone=us-east4-a -q

gcloud compute service-attachments delete apache-service-attachment --region $region -q

gcloud compute forwarding-rules delete apache-fr --region $region -q

gcloud compute target-https-proxies delete https-proxy --region $region -q

gcloud compute url-maps delete producer-url-map --region $region -q

gcloud compute backend-services delete apache-bes --region $region -q

gcloud compute health-checks delete lb-apache-service-hc --region $region -q

gcloud compute addresses delete apache-service-ip --region $region -q

gcloud compute ssl-certificates delete producer-service-cert --region $region -q

gcloud compute instance-groups managed delete psc-service-mig --region $region -q

gcloud compute health-checks delete service-mig-healthcheck --global -q

gcloud compute instance-templates delete apache-service-template -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 routers nats delete central-nat --router=central-cr --region $region -q

gcloud compute routers delete central-cr --region $region -q

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

gcloud compute networks subnets delete service-subnet --region $region -q

gcloud compute networks subnets delete test-client-subnet --region us-east4 -q 

gcloud compute networks subnets delete central-proxy-subnet --region $region -q

gcloud compute networks delete producer-vpc -q

17 .. অভিনন্দন!

কোডল্যাব শেষ করার জন্য অভিনন্দন।

আমরা কভার করেছি কি

  • গ্লোবাল বাহ্যিক অ্যাপ্লিকেশন লোড ব্যালেন্সারের সাথে সম্পর্কিত একটি পিএসসি ব্যাকএন্ড কনফিগার করুন
  • একটি অ্যাপাচি পরিচালিত ওয়েব পরিষেবা কনফিগার করুন এবং এটি একটি পরিষেবা সংযুক্তির মাধ্যমে পিএসসি পরিষেবা হিসাবে প্রকাশ করুন
  • অভ্যন্তরীণ এবং বাহ্যিক অ্যাপ্লিকেশন লোড ব্যালেন্সারগুলিতে এসএসএল সমাপ্ত করতে এসএসএল শংসাপত্রগুলি তৈরি করুন
  • পিএসসি পরিষেবাটি অ্যাক্সেস করতে ক্লাউড ডিএনএস পাবলিক জোন কনফিগার করুন
,

1. ভূমিকা

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

এই কোডল্যাবের ফোকাসটি পিএসসি ব্যাকেন্ড। পিএসসি ব্যাকেন্ডগুলি গুগল ক্লাউড প্রক্সি লোড ব্যালেন্সারদের (অ্যাপ্লিকেশন বা নেটওয়ার্ক) এর সাথে একত্রে ব্যবহৃত হয়। পিএসসি ব্যাকেন্ডগুলি ব্যবহার করে আরও দানাদার গ্রাহক পার্শ্ব নিয়ন্ত্রণ সরবরাহ করে যেমন:

  • গভীর পর্যবেক্ষণ এবং লগিং
  • ক্লাউড আর্মার ইন্টিগ্রেশন
  • কাস্টম ইউআরএল
  • উন্নত ট্রাফিক ব্যবস্থাপনা
  • কাস্টম টিএলএস শংসাপত্র

এই কোডল্যাব -এ, আপনি অন্য নেটওয়ার্কে কোনও প্রযোজক পরিষেবাতে ব্যক্তিগতভাবে অ্যাক্সেস করতে গ্লোবাল এক্সটার্নাল অ্যাপ্লিকেশন লোড ব্যালেন্সারের সাথে একটি প্রাইভেট সার্ভিস সংযোগ ব্যাকএন্ড তৈরি করতে শিখবেন।

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

  • গ্লোবাল বাহ্যিক অ্যাপ্লিকেশন লোড ব্যালেন্সারের সাথে সম্পর্কিত একটি পিএসসি ব্যাকএন্ড তৈরি এবং কনফিগার করুন
  • একটি অ্যাপাচি পরিচালিত ওয়েব পরিষেবা কনফিগার করুন এবং এটি একটি পরিষেবা সংযুক্তির মাধ্যমে পিএসসি পরিষেবা হিসাবে প্রকাশ করুন
  • অভ্যন্তরীণ এবং বাহ্যিক অ্যাপ্লিকেশন লোড ব্যালেন্সারগুলিতে এসএসএল সমাপ্ত করতে এসএসএল শংসাপত্রগুলি তৈরি করুন
  • পিএসসি পরিষেবা অ্যাক্সেসের জন্য ক্লাউড ডিএনএস পাবলিক জোন কনফিগার করুন

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

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

2। পরীক্ষার পরিবেশ

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

গ্রাহক ভিপিসিতে আপনি একটি পিএসসি ব্যাকএন্ড পরিষেবা সহ একটি গ্লোবাল বাহ্যিক অ্যাপ্লিকেশন লোড ব্যালেন্সার স্থাপন করবেন অ্যাপাচি পরিষেবার দিকে নির্দেশ করে। তারপরে আপনি পাবলিক ইন্টারনেটে পিএসসি পরিষেবাটি অ্যাক্সেস করতে একটি পাবলিক ডিএনএস জোন সেট আপ করবেন।

31e7497bf3d9035c.png

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

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

  1. গুগল ক্লাউড কনসোলে সাইন ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা একটি বিদ্যমান একটি পুনরায় ব্যবহার করুন। আপনার যদি ইতিমধ্যে কোনও জিমেইল বা গুগল ওয়ার্কস্পেস অ্যাকাউন্ট না থাকে তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে।

fbef9caa1602edd0.png

A99B7ACE416376C4.png

5e3ff691252acf41.png

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

মেঘ শেল শুরু করুন

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

গুগল ক্লাউড কনসোল থেকে, উপরের ডান সরঞ্জামদণ্ডে ক্লাউড শেল আইকনটি ক্লিক করুন:

55EFC1AAA7A4D3AD.PNG

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

7ffe5cbb04455448.png

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

4 আপনি শুরু করার আগে

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

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

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
export project=YOUR-PROJECT-NAME
export region=us-central1
echo $project
echo $region

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

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

5। প্রযোজক ভিপিসি সেটআপ

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

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

gcloud compute networks create producer-vpc --subnet-mode custom

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

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

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

gcloud compute networks subnets create service-subnet \
    --network=producer-vpc \
    --range=10.0.0.0/28 \
    --region=$region

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

gcloud compute networks subnets create test-client-subnet \
    --network=producer-vpc \
    --range=10.0.1.0/28 \
    --region=us-east4

আঞ্চলিক অভ্যন্তরীণ অ্যাপ্লিকেশন লোড ব্যালেন্সারের সাথে ব্যবহার করার জন্য আমাদের কেবলমাত্র একটি প্রক্সি কেবল সাবনেট স্থাপন করতে হবে।

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

gcloud compute networks subnets create central-proxy-subnet \
    --network=producer-vpc \
    --range=10.100.101.0/24 \
    --region=$region \
    --purpose=REGIONAL_MANAGED_PROXY \
    --role=ACTIVE

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

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

gcloud compute networks subnets create psc-nat-subnet \
    --network=producer-vpc \
    --region=$region \
    --range=10.100.100.0/24 \
    --purpose=PRIVATE_SERVICE_CONNECT

ক্লাউড নাট তৈরি করুন

আমাদের প্রযোজক পরিষেবার জন্য সঠিক প্যাকেজগুলি ইনস্টল করার জন্য একটি ক্লাউড নাট প্রয়োজন।

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

gcloud compute routers create central-cr \
    --network=producer-vpc \
    --region=$region

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

gcloud compute routers nats create central-nat \
    --router=central-cr \
    --region=$region \
    --nat-all-subnet-ip-ranges \
    --auto-allocate-nat-external-ips

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

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

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

আইএপিকে আপনার ভিএম দৃষ্টান্তগুলির সাথে সংযোগ স্থাপনের অনুমতি দেওয়ার জন্য, একটি ফায়ারওয়াল নিয়ম তৈরি করুন যা:

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

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

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

লোড ব্যালেন্সার প্রক্সি কেবল সাবনেট (2000) থেকে উত্সাহিত লোড ব্যালেন্সার ব্যাকেন্ডগুলিতে প্রবেশের ট্র্যাফিকের অনুমতি দেওয়ার জন্য দুটি অতিরিক্ত ফায়ারওয়াল নিয়মের প্রয়োজন হবে, পাশাপাশি পিছনের প্রান্তে (2001) লোড ব্যালেন্সার হেলথচেকসকে অনুমতি দেওয়ার একটি নিয়ম।

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

gcloud compute network-firewall-policies rules create 2000 \
    --action ALLOW \
    --firewall-policy producer-vpc-policy \
    --description "allow traffic from load balancer proxy subnet" \
    --direction INGRESS \
    --src-ip-ranges 10.100.101.0/24 \
    --layer4-configs tcp:443 \
    --global-firewall-policy


gcloud compute network-firewall-policies rules create 2001 \
    --action ALLOW \
    --firewall-policy producer-vpc-policy \
    --description "allow load balancer health checks" \
    --direction INGRESS \
    --src-ip-ranges 130.211.0.0/22,35.191.0.0/16 \
    --layer4-configs tcp:443 \
    --global-firewall-policy

6 .. অ্যাপাচি ওয়েব পরিষেবা তৈরি করুন

আমরা একটি সাধারণ অ্যাপাচি ওয়েব পরিষেবা তৈরি করব যা "পিএসসি পরিষেবা" প্রদর্শন করে।

উদাহরণ টেম্পলেট তৈরি করুন

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

gcloud compute instance-templates create apache-service-template \
    --network producer-vpc \
    --subnet service-subnet \
    --region $region \
    --no-address \
    --metadata startup-script='#! /bin/bash
    sudo apt-get update
    apt-get install apache2 -y
    a2enmod ssl
    sudo a2ensite default-ssl
    echo "PSC Service" | \
    tee /var/www/html/index.html
    systemctl restart apache2'

মিগের জন্য স্বাস্থ্য চেক তৈরি করুন

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

gcloud compute health-checks create https service-mig-healthcheck \
    --port=443 \
    --global

পরিচালিত উদাহরণ গ্রুপ তৈরি করুন

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

gcloud compute instance-groups managed create psc-service-mig \
    --region $region \
    --size=2 \
    --template=apache-service-template \
    --health-check=service-mig-healthcheck

gcloud compute instance-groups managed set-named-ports psc-service-mig \
    --named-ports=https:443 \
    --region=$region

7। একটি স্ব স্বাক্ষরিত শংসাপত্র তৈরি করুন

একটি স্ব স্বাক্ষরিত শংসাপত্র তৈরি করতে এখানে দিকনির্দেশের প্রথম ধাপ 1 সম্পূর্ণ করুন। আপনি ক্লাউড শেলের সমস্ত কমান্ড চালাতে পারেন। পদক্ষেপ 1 শেষ হয়ে গেলে এই জায়গায় ফিরে যান। আপনার সাধারণ নামটি অবশ্যই উদাহরণস্বরূপ ডটকমের সাথে কনফিগার করা উচিত।

আপনার লোড ব্যালেন্সারের সাথে সংযুক্ত করতে একটি শংসাপত্রের সংস্থান তৈরি করুন। আপনার নির্দিষ্ট ফাইলের নামগুলির সাথে শংসাপত্র এবং ব্যক্তিগত-কী পরামিতিগুলি প্রতিস্থাপন করুন।

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

gcloud compute ssl-certificates create producer-service-cert \
    --certificate=<your-producer-certfile.cert> \
    --private-key=<your-producer-keyfile.pem> \
    --region=$region

8। অভ্যন্তরীণ আঞ্চলিক অ্যাপ্লিকেশন লোড ব্যালেন্সার তৈরি করুন

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

অভ্যন্তরীণ আইপি ঠিকানা তৈরি করুন যা আপনার লোড ব্যালেন্সারের ফরোয়ার্ডিং নিয়মের জন্য ব্যবহৃত হবে এবং আপনি যখন পরিষেবাটিতে একটি পরীক্ষা কল করবেন তখন পরে আইপিটি ব্যবহার করার জন্য নোট করুন।

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

gcloud compute addresses create apache-service-ip \
 --region=$region \
 --subnet=service-subnet

gcloud compute addresses describe apache-service-ip \
   --format="get(address)" \
   --region=$region

লোড ব্যালেন্সার স্বাস্থ্য চেক তৈরি করুন।

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

gcloud compute health-checks create https lb-apache-service-hc \
    --region=$region \
    --port-name=https

ব্যাকএন্ড পরিষেবা তৈরি করুন।

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

gcloud compute backend-services create apache-bes\
  --load-balancing-scheme=INTERNAL_MANAGED \
  --protocol=HTTPS \
  --port-name=https \
  --health-checks=lb-apache-service-hc \
  --health-checks-region=$region \
  --region=$region


gcloud compute backend-services add-backend apache-bes \
  --balancing-mode=UTILIZATION \
  --instance-group=psc-service-mig \
  --region=$region

ইউআরএল মানচিত্র তৈরি করুন।

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

gcloud compute url-maps create producer-url-map \
  --default-service=apache-bes \
  --region=$region

লক্ষ্য এইচটিটিপিএস প্রক্সি তৈরি করুন।

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

gcloud compute target-https-proxies create https-proxy \
  --url-map=producer-url-map \
  --region=$region \
  --ssl-certificates=producer-service-cert

ফরোয়ার্ডিং নিয়ম তৈরি করুন।

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

gcloud compute forwarding-rules create apache-fr \
  --load-balancing-scheme=INTERNAL_MANAGED \
  --network=producer-vpc \
  --subnet=service-subnet \
  --address=apache-service-ip \
  --ports=443 \
  --region=$region \
  --target-https-proxy=https-proxy \
  --target-https-proxy-region=$region \
  --allow-global-access

9। একটি পরীক্ষা ভিএম তৈরি করুন এবং স্থানীয়ভাবে পরিষেবাটি পরীক্ষা করুন

আমরা পরিষেবা সংযুক্তি তৈরি করার আগে, আমরা লোড ব্যালেন্সারটি গ্লোবাল অ্যাক্সেস এবং টিএলএসের সাথে সঠিকভাবে কনফিগার করা হয়েছে তা পরীক্ষা করার জন্য একটি ভিন্ন অঞ্চলে একটি পরীক্ষার ক্লায়েন্ট ভিএম তৈরি করব।

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

gcloud compute instances create vm-client \
    --zone=us-east4-a \
    --subnet=test-client-subnet \
    --no-address

বিধানটি সম্পূর্ণ করার জন্য প্রায় এক মিনিট অপেক্ষা করুন এবং তারপরে উদাহরণটি এসএসএইচ করুন।

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

gcloud compute ssh \
    --zone "us-east4-a" "vm-client" \
    --tunnel-through-iap \
    --project $project

লোড ব্যালেন্সারের মাধ্যমে 443 এর বেশি সংযোগ করে অ্যাপাচি পরিষেবাটি পরীক্ষা করুন। অভ্যন্তরীণ আইপি ঠিকানাটি হ'ল আপনি সংরক্ষিত এবং আগে উল্লেখ করেছেন।

curl https://example.com:443 -k --connect-to example.com:443:<YOUR-INTERNAL-IP>:443

প্রত্যাশিত ফলাফল

PSC Service

ভিএম থেকে প্রস্থান করুন।

ভিএম-ক্লায়েন্ট থেকে

exit

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

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

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

gcloud compute service-attachments create apache-service-attachment \
    --region=$region \
    --producer-forwarding-rule=apache-fr \
    --connection-preference=ACCEPT_MANUAL \
    --consumer-accept-list=$project=5 \
    --nat-subnets=psc-nat-subnet

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

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

gcloud compute service-attachments describe apache-service-attachment \
    --region $region

প্রকল্পগুলি থেকে শুরু করে ইউআরআই অনুলিপি করুন

উদাহরণ: প্রকল্প/$ প্রকল্প/অঞ্চল/$ অঞ্চল/সার্ভিসেটট্যাচমেন্টস/অ্যাপাচি-পরিষেবা-সংযুক্তি

11। গ্রাহক ভিপিসি সেটআপ

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

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

gcloud compute networks create consumer-vpc --subnet-mode custom

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

ভোক্তার দিকে একটি সাবনেট প্রয়োজন যেখানে প্রাইভেট সার্ভিস কানেক্ট নেটওয়ার্ক এন্ডপয়েন্ট গ্রুপ (এনইজি) মোতায়েন করা হবে।

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

gcloud compute networks subnets create consumer-subnet \
    --network=consumer-vpc \
    --region=$region \
    --range=10.0.0.0/28

12। বাহ্যিক আইপি সংরক্ষণ করুন এবং গ্রাহক পক্ষের স্ব-স্বাক্ষরযুক্ত শংসাপত্র তৈরি করুন

বাহ্যিক আইপি

বাহ্যিক স্ট্যাটিক আইপি ঠিকানা তৈরি করুন যা আমাদের লোড ব্যালেন্সার ফরোয়ার্ডিং নিয়মের জন্য পরে ব্যবহৃত হবে এবং ক্লাউড শেল ভেরিয়েবলে আইপি ঠিকানাটি ক্যাপচার করবে।

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

gcloud compute addresses create external-psc-ip \
    --network-tier=PREMIUM \
    --ip-version=IPV4 \
    --global

export externalip=$(gcloud compute addresses describe external-psc-ip \
    --format="get(address)" \
    --global)

echo $externalip

গ্রাহক স্ব-স্বাক্ষরিত শংসাপত্র

দ্বিতীয়বারের জন্য, স্ব -স্বাক্ষরিত শংসাপত্র তৈরি করতে এখানে দিকনির্দেশের 1 ধাপ সম্পূর্ণ করুন। আপনি ক্লাউড শেলের সমস্ত কমান্ড চালাতে পারেন। পদক্ষেপ 1 শেষ হয়ে গেলে এই জায়গায় ফিরে যান। আমরা আমাদের নিজস্ব পাবলিক ডিএনএস জোনের মালিকানার জায়গায় Nip.io নামে একটি ওপেন সোর্স পাবলিক ওয়াইল্ডকার্ড ডিএনএস পরিষেবা ব্যবহার করব। আপনার পিএসসি পরিষেবার পাবলিক ইউআরএল আপনার সবেমাত্র কনফিগার করা বাহ্যিক আইপি ঠিকানা ব্যবহার করবে। আপনার সাধারণ নামটি অবশ্যই <আপনার-বাহ্য-আইপি.এনপ.আইও> দিয়ে কনফিগার করা উচিত

আপনার বাহ্যিক লোড ব্যালেন্সারের সাথে সংযুক্ত করতে একটি শংসাপত্রের সংস্থান তৈরি করুন। আপনার নির্দিষ্ট ফাইলের নামগুলির সাথে শংসাপত্র এবং ব্যক্তিগত-কী পরামিতিগুলি প্রতিস্থাপন করুন।

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

gcloud compute ssl-certificates create consumer-service-cert \
    --certificate=<your-consumer-certfile.cert> \
    --private-key=<your-consumer-keyfile.pem> \
    --global

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

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

আমরা শেষ ধাপে উল্লেখ করেছি পরিষেবা সংযুক্তি ইউআরআইটি কার্যকর করুন। আপনার ইউআরআই দিয়ে নীচে পিএসসি-টার্গেট-পরিষেবা প্রতিস্থাপন করুন।

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

gcloud compute network-endpoint-groups create apache-psc-neg \
--network-endpoint-type=private-service-connect \
--psc-target-service=projects/$project/regions/$region/serviceAttachments/apache-service-attachment \
--region=$region \
--network=consumer-vpc \
--subnet=consumer-subnet

ব্যাকএন্ড পরিষেবা তৈরি করুন।

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

gcloud compute backend-services create apache-pscneg-bes \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --protocol=HTTPS \
    --global

gcloud compute backend-services add-backend apache-pscneg-bes \
    --network-endpoint-group=apache-psc-neg \
    --network-endpoint-group-region=$region \
    --global

ইউআরএল মানচিত্র তৈরি করুন

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

gcloud compute url-maps create consumer-url-map \
    --default-service=apache-pscneg-bes \
    --global

লক্ষ্য এইচটিটিপিএস প্রক্সি তৈরি করুন।

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

gcloud compute target-https-proxies create psc-https-proxy \
    --url-map=consumer-url-map \
    --ssl-certificates=consumer-service-cert

ফরোয়ার্ডিং বিধি তৈরি করুন

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

gcloud compute forwarding-rules create external-fr \
  --load-balancing-scheme=EXTERNAL_MANAGED \
  --network-tier=PREMIUM \
  --address=external-psc-ip \
  --global \
  --target-https-proxy=psc-https-proxy \
  --ports=443

14। পাবলিক ডিএনএস জোন তৈরি করুন

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

gcloud dns managed-zones create "psc-service" \
    --dns-name=$externalip.nip.io. \
    --description="public dns for psc service" \
    --visibility=public

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

gcloud dns record-sets transaction start \
   --zone="psc-service"

gcloud dns record-sets transaction add $externalip \
   --name=$externalip.nip.io \
   --ttl=300 \
   --type=A \
   --zone="psc-service"

gcloud dns record-sets transaction execute \
   --zone="psc-service"

15। গ্রাহক পিএসসি সংযোগ পরীক্ষা করুন

পাবলিক ডিএনএসকে প্রচার করতে পরীক্ষার আগে 7 থেকে 10 মিনিট অপেক্ষা করুন।

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

curl https://$externalip.nip.io -k

আপনি আপনার ব্রাউজার বা ডেস্কটপ টার্মিনালে https: // <আপনার-বাহ্য-আইপি> .nip.io ইনপুট করে আপনার ব্রাউজার থেকে পরীক্ষা করতে পারেন।

প্রত্যাশিত ফলাফল

PSC Service

16। ক্লিনআপ পদক্ষেপ

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

gcloud dns record-sets delete $externalip.nip.io --zone="psc-service" --type=A -q

gcloud dns managed-zones delete "psc-service" -q

gcloud compute forwarding-rules delete external-fr --global -q 

gcloud compute target-https-proxies delete psc-https-proxy -q

gcloud compute url-maps delete consumer-url-map --global -q

gcloud compute backend-services delete apache-pscneg-bes --global -q

gcloud compute network-endpoint-groups delete apache-psc-neg --region=$region -q

gcloud compute ssl-certificates delete consumer-service-cert --global -q

gcloud compute addresses delete external-psc-ip --global -q

gcloud compute networks subnets delete consumer-subnet --region $region -q

gcloud compute networks delete consumer-vpc -q

gcloud compute instances delete vm-client --zone=us-east4-a -q

gcloud compute service-attachments delete apache-service-attachment --region $region -q

gcloud compute forwarding-rules delete apache-fr --region $region -q

gcloud compute target-https-proxies delete https-proxy --region $region -q

gcloud compute url-maps delete producer-url-map --region $region -q

gcloud compute backend-services delete apache-bes --region $region -q

gcloud compute health-checks delete lb-apache-service-hc --region $region -q

gcloud compute addresses delete apache-service-ip --region $region -q

gcloud compute ssl-certificates delete producer-service-cert --region $region -q

gcloud compute instance-groups managed delete psc-service-mig --region $region -q

gcloud compute health-checks delete service-mig-healthcheck --global -q

gcloud compute instance-templates delete apache-service-template -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 routers nats delete central-nat --router=central-cr --region $region -q

gcloud compute routers delete central-cr --region $region -q

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

gcloud compute networks subnets delete service-subnet --region $region -q

gcloud compute networks subnets delete test-client-subnet --region us-east4 -q 

gcloud compute networks subnets delete central-proxy-subnet --region $region -q

gcloud compute networks delete producer-vpc -q

17 .. অভিনন্দন!

কোডল্যাব শেষ করার জন্য অভিনন্দন।

আমরা কভার করেছি কি

  • গ্লোবাল বাহ্যিক অ্যাপ্লিকেশন লোড ব্যালেন্সারের সাথে সম্পর্কিত একটি পিএসসি ব্যাকএন্ড কনফিগার করুন
  • একটি অ্যাপাচি পরিচালিত ওয়েব পরিষেবা কনফিগার করুন এবং এটি একটি পরিষেবা সংযুক্তির মাধ্যমে পিএসসি পরিষেবা হিসাবে প্রকাশ করুন
  • অভ্যন্তরীণ এবং বাহ্যিক অ্যাপ্লিকেশন লোড ব্যালেন্সারগুলিতে এসএসএল সমাপ্ত করতে এসএসএল শংসাপত্রগুলি তৈরি করুন
  • পিএসসি পরিষেবাটি অ্যাক্সেস করতে ক্লাউড ডিএনএস পাবলিক জোন কনফিগার করুন