PSC এর সাথে GCP L7 লোড ব্যালেন্সারগুলির স্পষ্ট চেইনিং

১. ভূমিকা

প্রাইভেট সার্ভিস কানেক্ট (PSC) নেটওয়ার্ক এন্ডপয়েন্ট গ্রুপ (NEG) একটি ইন্টারনাল HTTPS লোড ব্যালেন্সারকে একটি এক্সটারনাল HTTPS লোড ব্যালেন্সারের সাথে চেইন করার সুবিধা দেয়। এটি গ্রাহক-নির্ধারিত রেঞ্জ ব্যবহার করে অন-প্রেমে ডিস্ট্রিবিউটেড হেলথ-চেক এবং ডেটা প্লেন ট্র্যাফিক সরবরাহ করে। এছাড়াও, এই টপোলজির মাধ্যমে একাধিক আঞ্চলিক ইন্টারকানেক্ট ব্যবহার করে অন-প্রেমে সংযুক্ত একাধিক VPC-কেও সমর্থন করা হয়।

এই কোডল্যাবে, আমরা নিচের টপোলজির উপর ভিত্তি করে কীভাবে এটিকে শুরু থেকে শেষ পর্যন্ত কনফিগার করতে হয় তা দেখাব। বাম থেকে ডানে, অন-প্রেমিস গ্রাহকদের কাছে HTTP পরিষেবা সিমুলেট করার জন্য একটি VM, হাইব্রিড কানেক্টিভিটি (HA-VPN বা InterConnect) এবং ইন্টারনাল HTTPS লোড ব্যালেন্সারের মাধ্যমে পরিষেবা উন্মুক্ত করার জন্য একটি হাইব্রিড NEG থাকে। PSC, সার্ভিস অ্যাটাচমেন্ট হিসেবে ইন্টারনাল HTTPS LB ব্যবহার করে। PSC NEG এই অ্যাটাচমেন্টগুলোকে ব্যাকএন্ড পরিষেবা হিসেবে গ্রহণ করে, যা এক্সটারনাল HTTPS LB-তে উন্মুক্ত থাকে। ইন্টারনেট ব্যবহারকারীরা অন-প্রেমিস HTTP পরিষেবাগুলোর অ্যাক্সেস ত্বরান্বিত করতে গুগল গ্লোবাল নেটওয়ার্ক ব্যবহার করতে পারেন।

e3f26d8497323a42.png

চিত্র ১. প্রাইভেট সার্ভিস কানেক্ট নেটওয়ার্ক এন্ডপয়েন্ট গ্রুপ এবং সার্ভিস অ্যাটাচমেন্ট ব্যবহার করে এক্সটার্নাল HTTPS লোড ব্যালেন্সারকে ইন্টারনাল HTTPS লোড ব্যালেন্সারের সাথে সংযুক্ত করে এবং ব্যাকএন্ডকে অন-প্রেম পর্যন্ত সম্প্রসারিত করে।

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

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

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

  • হাইব্রিড কানেক্টিভিটি, যেমন HA-VPN সম্পর্কে জ্ঞান
  • অভ্যন্তরীণ/বাহ্যিক HTTPS লোড ব্যালান্সিং সম্পর্কে জ্ঞান
  • প্রাইভেট সার্ভিস কানেক্ট সম্পর্কে জ্ঞান

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

দ্রষ্টব্য: কোডল্যাবটি প্রদর্শিত টপোলজির উপর ভিত্তি করে কনফিগারেশন এবং যাচাইকরণের ধাপসমূহ প্রদান করে; আপনার প্রতিষ্ঠানের প্রয়োজন মেটাতে পদ্ধতিটি প্রয়োজনমতো পরিবর্তন করুন। IAM পারমিশন এই কোডল্যাবের আওতাভুক্ত নয়।

কোডল্যাব সম্পূর্ণ প্রক্রিয়াটি সিমুলেট করতে একটি প্রজেক্ট ব্যবহার করবে। একাধিক প্রজেক্টও সমর্থন করা হয়।

একক প্রকল্প - উৎপাদক এবং ভোক্তা নেটওয়ার্ককে সমর্থন করার জন্য প্রকল্পটি আপডেট করুন

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

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

৩. অন-প্রেম রিসোর্স তৈরি করুন

পরবর্তী অংশে, আমরা গ্রাহকের অন-প্রেমিস পরিষেবাগুলো সিমুলেট করার জন্য একটি অন-প্রেম ভিপিসি এবং ভিএম সেট আপ করব।

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

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

gcloud compute networks create vpc-demo-onprem --project=$prodproject --subnet-mode=custom

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

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

gcloud compute networks subnets create vpc-demo-onprem-asia-southeast1 --project=$prodproject --range=10.0.0.0/24 --network=vpc-demo-onprem --region=asia-southeast1

ফায়ারওয়াল নিয়ম তৈরি করুন।

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

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

gcloud compute firewall-rules create vpc-demo-health-checks --allow tcp:80,tcp:443 --network vpc-demo-onprem --source-ranges 10.0.3.0/24 --enable-logging

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

gcloud compute firewall-rules create psclab-iap-prod --network vpc-demo-onprem --allow tcp:22 --source-ranges=35.235.240.0/20 --enable-logging

৪. অন-প্রেম ভিএম ইনস্ট্যান্স তৈরি করুন

এই ভিএমটি অন-প্রেমিস পরিষেবাগুলোকে অনুকরণ করে, এবং এটিকে হাইব্রিড এনইজি ব্যবহার করে ইন্টারনাল এইচটিটিপিএস লোড ব্যালান্সারের মাধ্যমে উন্মুক্ত করতে হবে।

ক্লাউড শেল থেকে www01 ইনস্ট্যান্স তৈরি করুন

gcloud compute instances create www01 \
    --zone=asia-southeast1-b \
    --image-family=debian-11 \
    --image-project=debian-cloud \
    --network-interface=network-tier=PREMIUM,nic-type=GVNIC,stack-type=IPV4_ONLY,subnet=vpc-demo-onprem-asia-southeast1 \
    --shielded-secure-boot \
    --shielded-vtpm \
    --shielded-integrity-monitoring \
    --metadata=startup-script='#! /bin/bash
sudo apt-get update
sudo apt-get install nginx -y
vm_hostname="$(curl -H "Metadata-Flavor:Google" \
http://169.254.169.254/computeMetadata/v1/instance/name)"
filter="{print \$NF}"
vm_zone="$(curl -H "Metadata-Flavor:Google" \
http://169.254.169.254/computeMetadata/v1/instance/zone \
| awk -F/ "${filter}")"
echo "Page on $vm_hostname in $vm_zone" | \
tee /var/www/html/index.nginx-debian.html
sudo systemctl restart nginx'

পরবর্তী অংশে, আমরা letsencrypt ব্যবহার করে সার্টিফিকেট তৈরি করব এবং Nginx-এ তা ইনস্টল করব। পরবর্তী ধাপের জন্য পাবলিক এবং প্রাইভেট কী ফাইলটি ডাউনলোড করে নিন। সার্টিফিকেট তৈরির জন্য আপনাকে সাময়িকভাবে ইন্টারনেটের জন্য TCP পোর্ট ৮০ খুলতে হবে।

নিশ্চিত করুন যে এই VM-টির একটি পাবলিকলি রিজলভড ডোমেইন নেম আছে। উদাহরণস্বরূপ, ক্লাউড ডিএনএস-এ [www01.yinghli.demo.altostrat.com](http://www01.yinghli.demo.altostrat.com) নামে একটি A রেকর্ড যোগ করুন এবং এটিকে VM-এর পাবলিক আইপি অ্যাড্রেসের দিকে নির্দেশ করুন।

gcloud dns --project=$prodproject record-sets create www01.yinghli.demo.altostrat.com. --zone="yinghli-demo" --type="A" --ttl="300" --rrdatas="34.87.77.186"

VM www01 কনসোল থেকে, Nginx-এ সার্টিফিকেট ইনস্টল করার জন্য নির্দেশনা অনুসরণ করুন এবং পরবর্তী ধাপগুলোর জন্য fullchain.pem ও private.pem ফাইলের একটি কপি তৈরি করুন।

sudo apt install snapd
sudo snap install core; sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot --nginx

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

দ্রষ্টব্য: এই কনফিগারেশনে হাইব্রিড নেটওয়ার্কিং কনফিগারেশন অন্তর্ভুক্ত নয়।

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

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

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

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

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

gcloud compute networks subnets create vpc-demo-asia-southeast1 --project=$prodproject --range=10.0.2.0/24 --network=vpc-demo-producer --region=asia-southeast1

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

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

gcloud compute networks subnets create proxy-subnet-asia-southeast1 \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=asia-southeast1 \
  --network=vpc-demo-producer \
  --range=10.0.3.0/24

হাইব্রিড সংযোগ

অন-প্রেম এবং প্রোডিউসার ভিপিসি-এর মধ্যে HA-VPN কানেক্টিভিটি বাস্তবায়ন করতে ক্লাউড ভিপিএন ডকুমেন্টেশন অনুসরণ করুন। ক্লাউড রাউটারে ডিফল্ট কনফিগারেশন রাখুন, আমাদের BGP অ্যাডভার্টাইজমেন্টে 130.211.0.0/22, 35.191.0.0/16 যোগ করার প্রয়োজন নেই।

৬. উৎপাদক হাইব্রিড নেগ তৈরি করুন

একটি হাইব্রিড নেটওয়ার্ক এন্ডপয়েন্ট গ্রুপ তৈরি করুন এবং অন-প্রেম ভিএম-এর আইপি:পোর্ট NEG-তে যোগ করুন।

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

gcloud compute network-endpoint-groups create on-prem-service-neg \
    --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
    --zone=asia-southeast1-b \
    --network=vpc-demo-producer

gcloud compute network-endpoint-groups update on-prem-service-neg \
    --zone=asia-southeast1-b \
    --add-endpoint="ip=10.0.0.2,port=443"

৭. প্রডিউসার তৈরি করুন অভ্যন্তরীণ HTTPS লোড ব্যালেন্সার

বর্তমানে এক্সটার্নাল HTTPS লোড ব্যালেন্সার শুধুমাত্র HTTPS প্রোটোকলকে PSC NEG ( ডকুমেন্টেশন ) পর্যন্ত সাপোর্ট করে। সার্ভিস পাবলিশ করার সময়, আমাদের ইন্টারনাল HTTPS লোড ব্যালেন্সার ব্যবহার করতে হবে এবং ফরওয়ার্ডিং রুলগুলোর গ্লোবাল অ্যাক্সেস এনাবল করতে হবে।

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

gcloud compute health-checks create https on-prem-service-hc \
    --region=asia-southeast1 \
    --use-serving-port

ক্লাউড শেল থেকে ব্যাকএন্ড সার্ভিস তৈরি করুন এবং হাইব্রিড এনইজি (Hybrid NEG) যোগ করুন।

gcloud compute backend-services create on-premise-service-backend \
   --load-balancing-scheme=INTERNAL_MANAGED \
   --protocol=HTTPS \
   --region=asia-southeast1 \
   --health-checks=on-prem-service-hc \
   --health-checks-region=asia-southeast1

gcloud compute backend-services add-backend on-premise-service-backend \
   --network-endpoint-group=on-prem-service-neg \
   --network-endpoint-group-zone=asia-southeast1-b \
   --region=asia-southeast1 \
   --balancing-mode=RATE \
   --max-rate-per-endpoint=100

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

gcloud compute url-maps create on-premise-url \
    --default-service on-premise-service-backend \
    --region=asia-southeast1

ক্লাউড শেল থেকে আঞ্চলিক SSL সার্টিফিকেটগুলো তৈরি করুন। VM থেকে দুটি সার্টিফিকেট ফাইল ডাউনলোড করা হয়।

gcloud compute ssl-certificates create www01 \
    --certificate=fullchain.pem \
    --private-key=private.pem \
    --region=asia-southeast1

ক্লাউড শেল থেকে https-target-proxy তৈরি করুন

gcloud compute target-https-proxies create on-premise-httpsproxy \
    --ssl-certificates=www01 \
    --url-map=on-premise-url \
    --url-map-region=asia-southeast1 \
    --region=asia-southeast1

ক্লাউড শেল থেকে একটি অভ্যন্তরীণ স্ট্যাটিক আইপি রিজার্ভ করুন এবং ফরওয়ার্ডিং নিয়ম তৈরি করুন।

gcloud compute addresses create ilbaddress \
  --region=asia-southeast1 \
  --subnet=vpc-demo-asia-southeast1  \
  --addresses=10.0.2.100 

gcloud compute forwarding-rules create https-ilb-psc \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --network=vpc-demo-producer \
      --subnet=vpc-demo-asia-southeast1  \
      --address=ilbaddress \
      --ports=443 \
      --region=asia-southeast1 \
      --target-https-proxy=on-premise-httpsproxy \
      --target-https-proxy-region=asia-southeast1
      --allow-global-access

৮. প্রোডিউসার ভিএম ইনস্ট্যান্স তৈরি করুন

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

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

gcloud compute instances create test01 \
    --zone=asia-southeast1-b \
    --image-family=debian-11 \
    --image-project=debian-cloud \
    --network-interface=network-tier=PREMIUM,nic-type=GVNIC,stack-type=IPV4_ONLY,subnet=vpc-demo-asia-southeast1 \
    --shielded-secure-boot \
    --shielded-vtpm \
    --shielded-integrity-monitoring

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

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

gcloud compute firewall-rules create psclab-iap-prod --network vpc-demo-producer --allow tcp:22 --source-ranges=35.235.240.0/20 --enable-logging

প্রডিউসার ভিএম কনসোল থেকে, [ www01.yinghli.demo.altostrat.com ](https://www01.yinghli.demo.altostrat.com) অ্যাক্সেস করুন এবং ইন্টারনাল HTTPS লোড ব্যালান্সারের আইপি অ্যাড্রেসটি রিজলভ করুন। HTTP 200 নির্দেশ করে যে কনফিগারেশনটি প্রত্যাশা অনুযায়ী কাজ করেছে।

curl -v --resolve www01.yinghli.demo.altostrat.com:443:10.0.2.100 https://www01.yinghli.demo.altostrat.com

* Added www01.yinghli.demo.altostrat.com:443:10.0.2.100 to DNS cache
* Hostname www01.yinghli.demo.altostrat.com was found in DNS cache
*   Trying 10.0.2.100:443...
* Connected to www01.yinghli.demo.altostrat.com (10.0.2.100) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: CN=www01.yinghli.demo.altostrat.com
*  start date: Jun  4 10:36:43 2023 GMT
*  expire date: Sep  2 10:36:42 2023 GMT
*  subjectAltName: host "www01.yinghli.demo.altostrat.com" matched cert's "www01.yinghli.demo.altostrat.com"
*  issuer: C=US; O=Let's Encrypt; CN=R3
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x55865ef982e0)
> GET / HTTP/2
> Host: www01.yinghli.demo.altostrat.com
> user-agent: curl/7.74.0
> accept: */*
> 
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
< HTTP/2 200 
< server: nginx/1.18.0
< date: Mon, 05 Jun 2023 02:29:38 GMT
< content-type: text/html
< content-length: 35
< last-modified: Sun, 04 Jun 2023 09:02:16 GMT
< etag: "647c5318-23"
< accept-ranges: bytes
< via: 1.1 google
< 
Page on www01 in asia-southeast1-b
* Connection #0 to host www01.yinghli.demo.altostrat.com left intact

দ্রষ্টব্য: আপনি সরাসরি ভিএম 10.0.0.2 HTTPS পরিষেবাগুলি অ্যাক্সেস করতে পারবেন না, কারণ অন-প্রেম ফায়ারওয়াল শুধুমাত্র প্রক্সি সাবনেট 10.0.3.0/24-কে অ্যাক্সেসের অনুমতি দেয়।

৯. PSC NAT সাবনেট তৈরি করুন

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

gcloud compute networks subnets create psc-nat-subnet \
--network=vpc-demo-producer \
--region=asia-southeast1 \
--range=10.0.5.0/24 \
--purpose=private-service-connect

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

ক্লাউড শেল থেকে HTTPs পরিষেবা সংযুক্তি তৈরি করুন

gcloud compute service-attachments create ilbserviceattach \
--region=asia-southeast1 \
--producer-forwarding-rule=https-ilb-psc \
--connection-preference=ACCEPT_AUTOMATIC \
--nat-subnets=psc-nat-subnet

HTTPs পরিষেবা সংযুক্তি যাচাই করুন

gcloud compute service-attachments describe ilbserviceattach --region asia-southeast1

রেকর্ড পরিষেবা সংযুক্তি নাম:

projects/<project>/regions/asia-southeast1/serviceAttachments/ilbserviceattach

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

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

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

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

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

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

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

gcloud compute networks subnets create consumer-subnet --project=$prodproject  --range=10.0.6.0/24 --network=vpc-demo-consumer --region=asia-southeast1

১২. পিএসসি নেটওয়ার্ক এন্ডপয়েন্ট গ্রুপ তৈরি করুন

PSC NEG তৈরি করুন

পূর্ববর্তী https পরিষেবা অ্যাটাচমেন্টের নামটি কপি করে --psc-target-service প্যারামিটারগুলিতে পেস্ট করুন।

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

gcloud beta compute network-endpoint-groups create consumerpscneg \
--project=$prodproject \
--region=asia-southeast1 \
--network-endpoint-type=PRIVATE_SERVICE_CONNECT \
--psc-target-service=projects/<project>/regions/asia-southeast1/serviceAttachments/ilbserviceattach \
--network=vpc-demo-consumer \
--subnet=consumer-subnet

PSC NEG সফলভাবে সেটআপ করার পর, UI থেকে Private Service Connect -> Published Services অনুসরণ করুন -> লক্ষ্য করুন যে প্রকাশিত ilbserviceattach সংযোগটি এখন ১টি ফরওয়ার্ডিং নিয়ম নির্দেশ করছে।

320741b7dedc7984.png

১৩. কনজিউমার এক্সটার্নাল HTTPS লোড ব্যালেন্সার তৈরি করুন

একটি এক্সটার্নাল HTTPS লোড ব্যালেন্সার তৈরি করুন এবং ব্যাকএন্ড পরিষেবা হিসাবে PSC NEG ব্যবহার করুন ( ডকুমেন্টেশন )।

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

gcloud compute addresses create httpspsclb \
    --ip-version=IPV4 --global

gcloud compute backend-services create consumer-bs \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --protocol=HTTPS \
    --global

gcloud compute backend-services add-backend consumer-bs \
  --network-endpoint-group=consumerpscneg \
  --network-endpoint-group-region=asia-southeast1 \
  --global

gcloud compute url-maps create consumer-url \
  --default-service=consumer-backend-service \
  --global

gcloud compute ssl-certificates create wwwglobal \
    --certificate=fullchain.pem \
    --private-key=private.pem \
    --global

gcloud compute target-https-proxies create consumer-url-target-proxy \
  --url-map=consumer-url \
  --ssl-certificates=wwwglobal

gcloud compute forwarding-rules create consumer-url-forwarding-rule \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --network-tier=PREMIUM \
    --address=httpspsclb \
    --target-https-proxy=consumer-url-target-proxy \
    --ports=443 \
    --global

www01.yinghli.demo.altostrat.com- এর জন্য DNS রেকর্ড আপডেট করুন এবং এটিকে এক্সটার্নাল HTTPS লোড ব্যালেন্সারের পাবলিক IP অ্যাড্রেসের দিকে নির্দেশ করুন।

gcloud dns --project=$prodproject record-sets update www01.yinghli.demo.altostrat.com. --type="A" --zone="yinghli-demo" --rrdatas="34.102.178.214" --ttl="300"

১৪. বৈধতা যাচাই

আপনার ল্যাপটপ থেকে curl ব্যবহার করে https://www01.yinghli.demo.altostrat.com- এ প্রবেশ করুন।

curl -v https://www01.yinghli.demo.altostrat.com
*   Trying 34.102.178.214:443...
* Connected to www01.yinghli.demo.altostrat.com (34.102.178.214) port 443 (#0)
* ALPN: offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN: server accepted h2
* Server certificate:
*  subject: CN=www01.yinghli.demo.altostrat.com
*  start date: Jun  4 10:36:43 2023 GMT
*  expire date: Sep  2 10:36:42 2023 GMT
*  subjectAltName: host "www01.yinghli.demo.altostrat.com" matched cert's "www01.yinghli.demo.altostrat.com"
*  issuer: C=US; O=Let's Encrypt; CN=R3
*  SSL certificate verify ok.
* using HTTP/2
* h2h3 [:method: GET]
* h2h3 [:path: /]
* h2h3 [:scheme: https]
* h2h3 [:authority: www01.yinghli.demo.altostrat.com]
* h2h3 [user-agent: curl/8.0.0]
* h2h3 [accept: */*]
* Using Stream ID: 1 (easy handle 0x149019a00)
> GET / HTTP/2
> Host: www01.yinghli.demo.altostrat.com
> user-agent: curl/8.0.0
> accept: */*
>
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
< HTTP/2 200
< server: nginx/1.18.0
< date: Mon, 05 Jun 2023 02:48:43 GMT
< content-type: text/html
< content-length: 35
< last-modified: Sun, 04 Jun 2023 09:02:16 GMT
< etag: "647c5318-23"
< accept-ranges: bytes
< via: 1.1 google, 1.1 google
< alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
<
Page on www01 in asia-southeast1-b
* Connection #0 to host www01.yinghli.demo.altostrat.com left intact

১৫. পরিষ্কার করার পদক্ষেপ

প্রযোজক নেটওয়ার্ক পরিষ্কার করার পদক্ষেপ

দ্রষ্টব্য: পরিষ্করণ ধাপগুলোতে শুধুমাত্র লোড ব্যালেন্সার এবং পিএসসি সম্পর্কিত কনফিগারেশন দেখানো হয়, ভিপিসি এবং হাইব্রিড কানেক্টিভিটি অন্তর্ভুক্ত নয়।

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

gcloud compute forwarding-rules delete consumer-url-forwarding-rule --global
gcloud compute target-https-proxies delete consumer-url-target-proxy
gcloud compute ssl-certificates delete wwwglobal --global
gcloud compute url-maps delete consumer-url
gcloud compute backend-services delete consumer-bs --global
gcloud compute addresses delete httpspsclb --global

gcloud beta compute network-endpoint-groups delete consumerpscneg --region=asia-southeast1

gcloud compute service-attachments delete ilbserviceattach --region=asia-southeast1
gcloud compute networks subnets delete psc-nat-subnet --region=asia-southeast1

gcloud compute forwarding-rules delete https-ilb-psc --region=asia-southeast1
gcloud compute addresses delete ilbaddress --region=asia-southeast1
gcloud compute target-https-proxies delete on-premise-httpsproxy --region=asia-southeast1
gcloud compute ssl-certificates delete www01 --region=asia-southeast1
gcloud compute url-maps delete on-premise-url --region=asia-southeast1
gcloud compute backend-services delete on-premise-service-backend --region=asia-southeast1
gcloud compute health-checks delete on-prem-service-hc --region=asia-southeast1

gcloud compute network-endpoint-groups delete on-prem-service-neg --zone=asia-southeast1-b
gcloud compute networks subnets delete proxy-subnet-asia-southeast1 --region=asia-southeast1

১৬. অভিনন্দন!

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

আমরা যা আলোচনা করেছি

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