Private Service Connect - प्रोड्यूसर सेवा को ऐक्सेस करने के लिए, PSC बैकएंड का इस्तेमाल करना

1. परिचय

Private Service Connect की मदद से, सेवा देने वाली कंपनियां एक वीपीएन नेटवर्क से दूसरे वीपीएन नेटवर्क पर निजी तौर पर सेवाएं उपलब्ध करा सकती हैं. उपभोक्ता, पीएससी एंडपॉइंट या पीएससी बैकएंड के ज़रिए, प्रोड्यूसर की सेवाओं को ऐक्सेस कर सकते हैं.

इस कोडलैब में, पीएससी के बैकएंड पर फ़ोकस किया गया है. PSC बैकएंड का इस्तेमाल, Google Cloud के प्रॉक्सी लोड बैलेंसर (ऐप्लिकेशन या नेटवर्क) के साथ किया जाता है. पीएससी बैकएंड का इस्तेमाल करने से, उपभोक्ता के पास ज़्यादा कंट्रोल होते हैं. जैसे:

  • बेहतर तरीके से निगरानी करना और लॉग करना
  • Cloud Armor इंटिग्रेशन
  • कस्‍टम URL
  • बेहतर ट्रैफ़िक मैनेजमेंट
  • कस्टम टीएलएस सर्टिफ़िकेट

इस कोडलैब में, आपको ग्लोबल एक्सटर्नल ऐप्लिकेशन लोड बैलेंसर की मदद से Private Service Connect बैकएंड बनाने का तरीका बताया जाएगा. इससे, किसी दूसरे नेटवर्क में प्रोड्यूसर सेवा को निजी तौर पर ऐक्सेस किया जा सकता है.

आपको क्या सीखने को मिलेगा

  • ग्लोबल एक्सटर्नल ऐप्लिकेशन लोड बैलेंसर से जुड़ा पीएससी बैकएंड बनाना और कॉन्फ़िगर करना
  • Apache की ओर से मैनेज की जाने वाली वेब सेवा को कॉन्फ़िगर करना और सेवा अटैचमेंट की मदद से, उसे पीएससी सेवा के तौर पर एक्सपोज़ करना
  • इंटरनल और एक्सटर्नल ऐप्लिकेशन लोड बैलेंसर पर एसएसएल को खत्म करने के लिए एसएसएल सर्टिफ़िकेट बनाना
  • PSC सेवा को ऐक्सेस करने के लिए, Cloud DNS का सार्वजनिक ज़ोन कॉन्फ़िगर करना

आपको इन चीज़ों की ज़रूरत होगी

  • मालिक की अनुमतियां वाला Google Cloud प्रोजेक्ट

2. टेस्ट एनवायरमेंट

आपके बनाए जाने वाले एनवायरमेंट में, Consumer VPC और Producer VPC शामिल होंगे. प्रोड्यूसर वीपीसी में, आपको ऐसे इंस्टेंस टेंप्लेट से मैनेज किया जाने वाला इंस्टेंस ग्रुप डिप्लॉय करना होगा जो ओपन सोर्स Apache वेब सेवा बनाता है. आपको एक टेस्ट-वीएम भी डिप्लॉय करना होगा, ताकि यह पक्का किया जा सके कि सेवा सही तरीके से काम कर रही है. आपको सेवा अटैचमेंट की मदद से, Apache सेवा को पीएससी प्रोड्यूसर सेवा के तौर पर दिखाना होगा.

कंज्यूमर वीपीसी में, आपको Apache सेवा पर ले जाने वाली पीएससी बैकएंड सेवा के साथ ग्लोबल एक्सटर्नल ऐप्लिकेशन लोड बैलेंसर डिप्लॉय करना होगा. इसके बाद, आपको सार्वजनिक इंटरनेट पर पीएससी सेवा को ऐक्सेस करने के लिए, एक सार्वजनिक डीएनएस ज़ोन सेट अप करना होगा.

31e7497bf3d9035c.png

3. सेटअप और ज़रूरी शर्तें

अपने हिसाब से एनवायरमेंट सेट अप करना

  1. Google Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से कोई Gmail या Google Workspace खाता नहीं है, तो आपको एक खाता बनाना होगा.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों के लिए डिसप्ले नेम होता है. यह एक वर्ण स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करते. इसे कभी भी अपडेट किया जा सकता है.
  • प्रोजेक्ट आईडी, Google Cloud के सभी प्रोजेक्ट के लिए यूनीक होता है. साथ ही, इसे सेट करने के बाद बदला नहीं जा सकता. Cloud Console, अपने-आप एक यूनीक स्ट्रिंग जनरेट करता है. आम तौर पर, आपको यह जानने की ज़रूरत नहीं होती कि यह स्ट्रिंग क्या है. ज़्यादातर कोडलैब में, आपको अपने प्रोजेक्ट आईडी का रेफ़रंस देना होगा. आम तौर पर, इसे PROJECT_ID के तौर पर पहचाना जाता है. अगर आपको जनरेट किया गया आईडी पसंद नहीं आता है, तो कोई दूसरा आईडी जनरेट किया जा सकता है. इसके अलावा, आपके पास खुद का कोई दूसरा नाम चुनने का विकल्प भी है. इस चरण के बाद, इसे बदला नहीं जा सकता. यह प्रोजेक्ट के दौरान बना रहता है.
  • आपकी जानकारी के लिए बता दें कि तीसरी वैल्यू, प्रोजेक्ट नंबर होती है. इसका इस्तेमाल कुछ एपीआई करते हैं. इन तीनों वैल्यू के बारे में ज़्यादा जानने के लिए, दस्तावेज़ देखें.
  1. इसके बाद, आपको Cloud के संसाधनों/एपीआई का इस्तेमाल करने के लिए, Cloud Console में बिलिंग की सुविधा चालू करनी होगी. इस कोडलैब को चलाने के लिए, आपसे कोई शुल्क नहीं लिया जाएगा. इस ट्यूटोरियल के बाद बिलिंग से बचने के लिए, बनाए गए संसाधनों को बंद किया जा सकता है या प्रोजेक्ट को मिटाया जा सकता है. Google Cloud के नए उपयोगकर्ता, 300 डॉलर के मुफ़्त ट्रायल वाले कार्यक्रम में शामिल हो सकते हैं.

Cloud Shell शुरू करना

Google Cloud को आपके लैपटॉप से रिमोट तौर पर इस्तेमाल किया जा सकता है. हालांकि, इस कोडलैब में आपको Google Cloud Shell का इस्तेमाल करना होगा. यह Cloud में चलने वाला कमांड-लाइन एनवायरमेंट है.

Google Cloud Console में, सबसे ऊपर दाएं टूलबार में मौजूद Cloud Shell आइकॉन पर क्लिक करें:

55efc1aaa7a4d3ad.png

एनवायरमेंट से कनेक्ट होने और उसे प्रोवाइड करने में सिर्फ़ कुछ मिनट लगेंगे. इसके पूरा होने पर, आपको कुछ ऐसा दिखेगा:

7ffe5cbb04455448.png

इस वर्चुअल मशीन में, डेवलपमेंट के लिए ज़रूरी सभी टूल लोड होते हैं. यह 5 जीबी की होम डायरेक्ट्री उपलब्ध कराता है. यह Google Cloud पर चलता है, जिससे नेटवर्क की परफ़ॉर्मेंस और पुष्टि करने की सुविधा बेहतर होती है. इस कोडलैब में, सारा काम ब्राउज़र में किया जा सकता है. आपको कुछ भी इंस्टॉल करने की ज़रूरत नहीं है.

4. शुरू करने से पहले

एपीआई चालू करें

Cloud Shell में, पक्का करें कि आपका प्रोजेक्ट आईडी सेट अप हो

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 नेटवर्क बनाना

Cloud Shell से

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

सबनेट बनाना

प्रोड्यूसर-वीपीसी में, सामान्य तौर पर इस्तेमाल होने वाली दो सबनेट डिप्लॉय की जाएंगी. service-subnet का इस्तेमाल, Apache वेब सेवा के VM के साथ-साथ लोड बैलेंसर फ़ॉरवर्डिंग नियम को डिप्लॉय करने के लिए किया जाएगा. test-client-subnet किसी दूसरे इलाके में होगा. इसका इस्तेमाल, ग्लोबल ऐक्सेस की सुविधा चालू करके Apache सेवा की जांच करने के लिए, किसी वर्चुअल मशीन को डिप्लॉय करने के लिए किया जाएगा.

Cloud Shell से

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

Cloud Shell से

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

हमें सिर्फ़ प्रॉक्सी सबनेट भी डिप्लॉय करना होगा, ताकि इसका इस्तेमाल रीजनल इंटरनल ऐप्लिकेशन लोड बैलेंसर के साथ किया जा सके.

Cloud Shell से

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 सबनेट की ज़रूरत होती है, ताकि उसे सेवा अटैचमेंट से जोड़ा जा सके. कनेक्ट किए जाने वाले अनुमानित एंडपॉइंट की संख्या के आधार पर, इस सबनेट का साइज़ सही होना चाहिए.

Cloud Shell से

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 बनाना

प्रोड्यूसर की सेवाओं के लिए सही पैकेज इंस्टॉल करने के लिए, Cloud NAT की ज़रूरत होती है.

Cloud Shell से

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

Cloud Shell से

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

नेटवर्क फ़ायरवॉल की नीति और नियम बनाना

Cloud Shell से

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 आईपी रेंज से आने वाले ट्रैफ़िक को अनुमति देता है. इस रेंज में वे सभी आईपी पते शामिल होते हैं जिनका इस्तेमाल IAP, टीसीपी फ़ॉरवर्डिंग के लिए करता है.

Cloud Shell से

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) पर लोड बैलेंसर की परफ़ॉर्मेंस की जांच करने की अनुमति देने के लिए भी एक नियम की ज़रूरत होगी.

Cloud Shell से

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. Apache वेब सेवा बनाना

हम एक आसान Apache वेब सेवा बनाएंगे, जो "पीएससी सेवा" दिखाती है.

इंस्टेंस टेंप्लेट बनाना

Cloud Shell से

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'

MIG के लिए, हेल्थ चेक की सुविधा बनाना

Cloud Shell से

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

मैनेज किया जाने वाला इंस्टेंस ग्रुप बनाना

Cloud Shell से

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. खुद का हस्ताक्षर वाला सर्टिफ़िकेट बनाना

खुद से हस्ताक्षर वाला सर्टिफ़िकेट बनाने के लिए, यहां दिए गए निर्देशों का पहला चरण पूरा करें. Cloud Shell में सभी कमांड चलाए जा सकते हैं. पहला चरण पूरा करने के बाद, यहां वापस आएं. आपका सामान्य नाम, EXAMPLE.COM के साथ कॉन्फ़िगर होना चाहिए.

अपने लोड बैलेंसर से जोड़ने के लिए, सर्टिफ़िकेट का संसाधन बनाएं. सर्टिफ़िकेट और निजी पासकोड पैरामीटर को अपनी फ़ाइल के नाम से बदलें.

Cloud Shell से

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

8. इंटरनल रीजनल ऐप्लिकेशन लोड बैलेंसर बनाना

इसके बाद, हम सेवा के लिए लोड बैलेंसर कॉम्पोनेंट बनाएंगे. हम इंटरनल रीजनल ऐप्लिकेशन लोड बैलेंसर का इस्तेमाल कर रहे हैं. हालांकि, आपके पास Google Cloud के किसी भी इंटरनल लोड बैलेंसर का इस्तेमाल करने का विकल्प है. TLS को मैनेज करने के लिए, लोड बैलेंसर के दस्तावेज़ में दिए गए निर्देशों का पालन करें.

वह इंटरनल आईपी पता बनाएं जिसका इस्तेमाल आपके लोड बैलेंसर के फ़ॉरवर्डिंग नियम के लिए किया जाएगा. साथ ही, उस आईपी को नोट कर लें जिसका इस्तेमाल बाद में, सेवा के लिए टेस्ट कॉल करते समय किया जाएगा.

Cloud Shell से

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

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

लोड बैलेंसर की हेल्थ चेक बनाएं.

Cloud Shell से

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

बैकएंड सेवा बनाएं.

Cloud Shell से

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

यूआरएल मैप बनाएं.

Cloud Shell से

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

टारगेट एचटीटीपीएस प्रॉक्सी बनाएं.

Cloud Shell से

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

फ़ॉरवर्ड करने का नियम बनाएं.

Cloud Shell से

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 बनाना और सेवा को स्थानीय तौर पर टेस्ट करना

सेवा अटैचमेंट बनाने से पहले, हम किसी दूसरे क्षेत्र में टेस्ट क्लाइंट VM बनाएंगे. इससे यह जांच की जा सकेगी कि लोड बैलेंसर, ग्लोबल ऐक्सेस और टीएलएस के साथ सही तरीके से कॉन्फ़िगर किया गया है या नहीं.

Cloud Shell से

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

प्रोवाइज़न करने की प्रोसेस पूरी होने में करीब एक मिनट लगेगा. इसके बाद, इंस्टेंस में एसएसएच करें.

Cloud Shell से

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-client से

exit

10. सेवा अटैचमेंट बनाना

इस उदाहरण में, हम अपने सेवा अटैचमेंट को कॉन्फ़िगर कर रहे हैं, ताकि सिर्फ़ इस प्रोजेक्ट से पीएससी कनेक्शन की अनुमति मिल सके. इसे एक या एक से ज़्यादा खास प्रोजेक्ट या नेटवर्क को स्वीकार करने के लिए कॉन्फ़िगर किया जा सकता है, लेकिन दोनों को नहीं. हमने ज़्यादा से ज़्यादा पांच कनेक्शन की सीमा तय की है. हर प्रोजेक्ट या नेटवर्क के लिए, एक सीमा सेट होनी चाहिए.

Cloud Shell से

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

आपको सेवा अटैचमेंट यूआरआई (selfLink) को नोट कर लेना चाहिए, क्योंकि आपको पीएससी बैकएंड कॉन्फ़िगरेशन के अगले चरण में इसकी ज़रूरत पड़ेगी. इसे पाने के लिए, Cloud Shell में यह तरीका अपनाएं.

Cloud Shell से

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

projects से शुरू होने वाला यूआरआई कॉपी करें

उदाहरण: projects/$project/regions/$region/serviceAttachments/apache-service-attachment

11. उपभोक्ता वीपीसी सेटअप

वीपीसी नेटवर्क बनाना

Cloud Shell से

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

सबनेट बनाना

उपभोक्ता की ओर से, एक सबनेट की ज़रूरत होती है, जहां Private Service Connect नेटवर्क एंडपॉइंट ग्रुप (NEG) को डिप्लॉय किया जाएगा.

Cloud Shell से

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

12. एक्सटर्नल आईपी रिज़र्व करना और ग्राहक साइड का सेल्फ़-साइन किया गया सर्टिफ़िकेट बनाना

बाहरी आईपी

बाहरी स्टैटिक आईपी पता बनाएं. इसका इस्तेमाल बाद में, हमारे लोड बैलेंसर फ़ॉरवर्डिंग नियम के लिए किया जाएगा. साथ ही, आईपी पते को Cloud Shell वैरिएबल में कैप्चर करें.

Cloud Shell से

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

उपभोक्ता का खुद का हस्ताक्षर वाला सर्टिफ़िकेट

खुद का हस्ताक्षर वाला सर्टिफ़िकेट बनाने के लिए, यहां दिए गए निर्देशों का पहला चरण दोबारा पूरा करें. Cloud Shell में सभी कमांड चलाए जा सकते हैं. पहला चरण पूरा होने के बाद, यहां वापस आएं. हम अपने सार्वजनिक डीएनएस ज़ोन के बजाय, nip.io नाम की ओपन सोर्स सार्वजनिक वाइल्डकार्ड डीएनएस सेवा का इस्तेमाल करेंगे. आपकी पीएससी सेवा का सार्वजनिक यूआरएल, उस बाहरी आईपी पते का इस्तेमाल करेगा जिसे आपने अभी कॉन्फ़िगर किया है. आपके सामान्य नाम को <YOUR-EXTERNAL-IP.nip.io> के साथ कॉन्फ़िगर किया जाना चाहिए

अपने बाहरी लोड बैलेंसर से जोड़ने के लिए, सर्टिफ़िकेट का संसाधन बनाएं. सर्टिफ़िकेट और निजी पासकोड पैरामीटर को अपनी फ़ाइल के नाम से बदलें.

Cloud Shell से

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

13. लोड बैलेंसर कॉम्पोनेंट बनाना

हम एक ग्लोबल एक्सटर्नल ऐप्लिकेशन लोड बैलेंसर बनाएंगे. इसमें, पीएससी एनईजी का इस्तेमाल करके, बैकएंड सेवा के तौर पर हमारी नई बनाई गई सेवा अटैचमेंट को जोड़ा जाएगा.

पिछले चरण में नोट किया गया, सेवा का अटैचमेंट यूआरआई तैयार रखें. यहां दिए गए psc-target-service को अपने यूआरआई से बदलें.

Cloud Shell से

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

बैकएंड सेवा बनाएं.

Cloud Shell से

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

यूआरएल मैप बनाना

Cloud Shell से

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

टारगेट एचटीटीपीएस प्रॉक्सी बनाएं.

Cloud Shell से

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

फ़ॉरवर्ड करने का नियम बनाना

Cloud Shell से

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. सार्वजनिक डीएनएस ज़ोन बनाना

Cloud Shell से

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

Cloud Shell से

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. उपभोक्ता के पीएससी कनेक्शन की जांच करना

जांच करने से पहले सात से 10 मिनट इंतज़ार करें, ताकि पब्लिक डीएनएस प्रोपेगेट हो सके.

Cloud Shell से

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

अपने ब्राउज़र या डेस्कटॉप टर्मिनल में https://<YOUR-EXTERNAL-IP>.nip.io डालकर भी जांच की जा सकती है.

संभावित नतीजा

PSC Service

16. क्लीनअप करने का तरीका

Cloud Shell के किसी एक टर्मिनल से, लैब के कॉम्पोनेंट मिटाना

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. बधाई हो!

कोडलैब पूरा करने के लिए बधाई.

हमने क्या-क्या शामिल किया है

  • ग्लोबल एक्सटर्नल ऐप्लिकेशन लोड बैलेंसर से जुड़ा पीएससी बैकएंड कॉन्फ़िगर करना
  • Apache की ओर से मैनेज की जाने वाली वेब सेवा को कॉन्फ़िगर करना और सेवा अटैचमेंट की मदद से, उसे पीएससी सेवा के तौर पर एक्सपोज़ करना
  • इंटरनल और एक्सटर्नल ऐप्लिकेशन लोड बैलेंसर पर एसएसएल को खत्म करने के लिए एसएसएल सर्टिफ़िकेट बनाना
  • पीएससी सेवा को ऐक्सेस करने के लिए, Cloud DNS का सार्वजनिक ज़ोन कॉन्फ़िगर करना