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

1. परिचय

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

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

  • ज़्यादा बेहतर तरीके से जांच करने और लॉग करने की सुविधा
  • Cloud Armor इंटिग्रेशन
  • कस्टम यूआरएल
  • ऐडवांस ट्रैफ़िक मैनेजमेंट
  • कस्टम टीएलएस सर्टिफ़िकेट

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

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

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

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

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

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

आपके बनाए गए एनवायरमेंट में, कंज्यूमर वीपीसी और प्रोड्यूसर वीपीसी शामिल होंगे. प्रोड्यूसर वीपीसी में, आपको मैनेज किया गया इंस्टेंस ग्रुप डिप्लॉय करना होगा. यह इंस्टेंस ग्रुप, इंस्टेंस टेंप्लेट से डिप्लॉय किया जाएगा. यह इंस्टेंस टेंप्लेट, ओपन सोर्स 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 Console में बिलिंग चालू करनी होगी, ताकि Cloud संसाधनों/एपीआई का इस्तेमाल किया जा सके. इस कोडलैब को पूरा करने में ज़्यादा समय नहीं लगेगा. इस ट्यूटोरियल के बाद बिलिंग से बचने के लिए, संसाधनों को बंद किया जा सकता है. इसके लिए, बनाए गए संसाधनों को मिटाएं या प्रोजेक्ट को मिटाएं. Google Cloud के नए उपयोगकर्ताओं को, 300 डॉलर का क्रेडिट मिलेगा. वे इसे मुफ़्त में आज़मा सकते हैं.

Cloud Shell शुरू करें

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

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. Producer VPC सेटअप करना

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

Cloud Shell से

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

सबनेट बनाना

सामान्य मकसद के लिए इस्तेमाल होने वाले दो सबनेट, प्रोड्यूसर-वीपीसी में डिप्लॉय किए जाएंगे. इस सेवा-सबनेट का इस्तेमाल, Apache वेब सेवा के वीएम और लोड बैलेंसर फ़ॉरवर्डिंग नियम को डिप्लॉय करने के लिए किया जाएगा. 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 वेब सेवा बनाएंगे, जो "पीएससी सेवा" दिखाती है.

Create Instance Template

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 में सभी कमांड चलाई जा सकती हैं. पहला चरण पूरा होने के बाद, यहां वापस आएं. YOUR COMMON NAME MUST BE CONFIGURED WITH 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 के किसी भी इंटरनल लोड बैलेंसर का इस्तेमाल करने का विकल्प है. टीएलएस को मैनेज करने के लिए, लोड बैलेंसर के दस्तावेज़ में दिए गए निर्देशों का पालन करें.

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

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

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

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. उपभोक्ता वीपीसी सेटअप करना

VPC नेटवर्क बनाना

Cloud Shell से

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

सबनेट बनाएं

उपयोगकर्ता के नेटवर्क में एक सबनेट होना चाहिए, जहां Private Service Connect Network Endpoint Group (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 COMMON NAME MUST BE CONFIGURED WITH <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. उपभोक्ता पीएससी कनेक्शन की जांच करना

टेस्ट करने से पहले, 7 से 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 के सार्वजनिक ज़ोन को कॉन्फ़िगर करना