इंटरनल एचटीटीपी या लोड बैलेंसर के साथ, Private Service Connect और हाइब्रिड NEG का इस्तेमाल करके, हाइब्रिड नेटवर्किंग की मदद से कंपनी की सेवाओं से कनेक्ट करें

1. परिचय

क्लाउड लोड बैलेंसिंग की मदद से, Google Cloud से बाहर मौजूद एंडपॉइंट पर भी ट्रैफ़िक को लोड-बैलेंस किया जा सकता है. जैसे, ऑन-प्रिमाइसेस डेटा सेंटर और अन्य सार्वजनिक क्लाउड. इन तक पहुंचने के लिए, हाइब्रिड कनेक्टिविटी का इस्तेमाल किया जा सकता है.

हाइब्रिड रणनीति, बाज़ार की बदलती मांगों के हिसाब से अपने ऐप्लिकेशन को ढालने और उन्हें धीरे-धीरे आधुनिक बनाने का एक व्यावहारिक समाधान है. यह हाइब्रिड डिप्लॉयमेंट, क्लाउड पर आधारित आधुनिक समाधान पर माइग्रेट करने के लिए कुछ समय के लिए किया जा सकता है. इसके अलावा, इसे आपके संगठन के आईटी इन्फ़्रास्ट्रक्चर में हमेशा के लिए भी सेट किया जा सकता है.

हाइब्रिड लोड बैलेंसिंग सेट अप करने से, Cloud Load Balancing की नेटवर्किंग सुविधाओं का फ़ायदा उन सेवाओं को भी मिलता है जो Google Cloud के बाहर, आपके मौजूदा इंफ़्रास्ट्रक्चर पर चल रही हैं.

अगर आपको हाइब्रिड सेवा को अन्य वीपीसी नेटवर्क में उपलब्ध कराना है, तो Private Service Connect का इस्तेमाल करके सेवा को पब्लिश किया जा सकता है. अपने इंटरनल रीजनल एचटीटीपी(एस) लोड बैलेंसर के सामने सर्विस अटैचमेंट रखकर, अन्य वीपीसी नेटवर्क में मौजूद क्लाइंट को, हाइब्रिड सेवाओं तक पहुंचने की अनुमति दी जा सकती है. ये सेवाएं, ऑन-प्रिमाइसेस या अन्य क्लाउड एनवायरमेंट में चल रही होती हैं.

आपको क्या बनाने को मिलेगा

इस कोडलैब में, आपको नेटवर्क एंडपॉइंट ग्रुप का इस्तेमाल करके, ऑन-प्रिमाइसेस सेवा से हाइब्रिड कनेक्टिविटी वाला इंटरनल एचटीटीपी(एस) लोड बैलेंसर बनाना है. उपभोक्ता वीपीसी, पोर्ट 80 का इस्तेमाल करके ऑन-प्रिमाइसेस सेवा से कम्यूनिकेट कर पाएगा. पोर्ट 443, कोडलैब के दायरे में नहीं है.

4ad647fa51b3473e.png

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

  • हाइब्रिड एनईजी बैकएंड के साथ इंटरनल एचटीटीपी या एचटीटीपीएस लोड बैलेंसर बनाने का तरीका
  • Private Service Connect प्रोड्यूसर (सर्विस अटैचमेंट) और कंज्यूमर (फ़ॉरवर्डिंग नियम) कैसे बनाएं

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

  • हाइब्रिड नेटवर्किंग की सुविधा उपलब्ध हो.जैसे, एचए वीपीएन, इंटरकनेक्ट, SW-WAN
  • Google Cloud प्रोजेक्ट

हाइब्रिड कनेक्टिविटी सेट अप करना

आपके Google Cloud और ऑन-प्रिमाइसेस या अन्य क्लाउड एनवायरमेंट, हाइब्रिड कनेक्टिविटी के ज़रिए कनेक्ट होने चाहिए. इसके लिए, Cloud Router के साथ Cloud Interconnect वीएलएएन अटैचमेंट या Cloud वीपीएन टनल का इस्तेमाल करें. हमारा सुझाव है कि आप हाई अवेलेबिलिटी कनेक्शन का इस्तेमाल करें.

ग्लोबल डाइनैमिक राउटिंग की सुविधा चालू होने पर, Cloud Router को बीजीपी के ज़रिए किसी खास एंडपॉइंट के बारे में पता चलता है. इसके बाद, वह इसे आपके Google Cloud वीपीसी नेटवर्क में प्रोग्राम करता है. रीजनल डाइनैमिक राउटिंग की सुविधा उपलब्ध नहीं है. स्टैटिक राउट भी काम नहीं करते.

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

निर्देशों के लिए, यहां जाएं:

कस्टम रूट ऐडवर्टाइज़मेंट

नीचे दिए गए सबनेट के लिए, Cloud Router से ऑन-प्रिमाइसेस नेटवर्क तक कस्टम विज्ञापन दिखाने की ज़रूरत होती है. इससे यह पक्का किया जा सकता है कि ऑन-प्रिमाइसेस फ़ायरवॉल के नियम अपडेट किए गए हों.

सबनेट

ब्यौरा

172.16.0.0/23

इस प्रॉक्सी सबनेट का इस्तेमाल, सीधे तौर पर ऑन-प्रिमाइसेस सेवा से कम्यूनिकेट करने के लिए किया जाता है

130.211.0.0/22, 35.191.0.0/16

Google Cloud हेल्थ चेक

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

कोडलैब के साथ काम करने के लिए प्रोजेक्ट को अपडेट करना

इस कोडलैब में, Cloud Shell में gcloud कॉन्फ़िगरेशन लागू करने में मदद करने के लिए, $variables का इस्तेमाल किया गया है.

Cloud Shell में जाकर, यह कार्रवाई करें

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

3. Producer Setup

प्रोड्यूसर वीपीसी बनाना

Cloud Shell में जाकर, यह कार्रवाई करें

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

प्रोड्यूसर सबनेट बनाना

Cloud Shell में जाकर, यह कार्रवाई करें

gcloud compute networks subnets create subnet-201 --project=$psclab --range=10.10.1.0/24 --network=producer-vpc --region=us-central1
gcloud compute networks subnets create subnet-202 --project=$psclab --range=10.20.1.0/24 --network=producer-vpc --region=us-central1

इंटरनल लोड बैलेंसर के लिए आईपी पता रिज़र्व करना

Cloud Shell में जाकर यह कार्रवाई करें. Private Service Connect के साथ SHARED_VIP का इस्तेमाल नहीं किया जा सकता. इसके बजाय, GCE_ENDPOINT का इस्तेमाल करें

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

अलॉट किया गया आईपी पता देखने के लिए, compute addresses describe command का इस्तेमाल करें

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

रीजनल प्रॉक्सी सबनेट बनाना

प्रॉक्सी का असाइनमेंट, वीपीसी लेवल पर होता है, न कि लोड बैलेंसर लेवल पर. आपको वर्चुअल नेटवर्क (वीपीसी) के हर उस क्षेत्र में एक सिर्फ़ प्रॉक्सी वाला सबनेट बनाना होगा जिसमें Envoy पर आधारित लोड बैलेंसर का इस्तेमाल किया जाता है. अगर एक ही क्षेत्र और एक ही वीपीसी नेटवर्क में कई लोड बैलेंसर डिप्लॉय किए जाते हैं, तो वे लोड बैलेंसिंग के लिए, प्रॉक्सी-ओनली सबनेट का इस्तेमाल करते हैं.

  1. क्लाइंट, लोड बैलेंसर के फ़ॉरवर्डिंग नियम के आईपी पते और पोर्ट से कनेक्ट होता है.
  2. हर प्रॉक्सी, लोड बैलेंसर के फ़ॉरवर्डिंग नियम में बताए गए आईपी पते और पोर्ट पर सुनता है. कोई प्रॉक्सी, क्लाइंट के नेटवर्क कनेक्शन को स्वीकार करती है और उसे बंद कर देती है.
  3. प्रॉक्सी, एनईजी में मौजूद सही बैकएंड वीएम या एंडपॉइंट से कनेक्शन बनाता है. यह कनेक्शन, लोड बैलेंसर के यूआरएल मैप और बैकएंड सेवाओं के हिसाब से बनता है.

आपको प्रॉक्सी-ओनली सबनेट बनाने होंगे. इससे कोई फ़र्क़ नहीं पड़ता कि आपका नेटवर्क ऑटो-मोड में है या कस्टम मोड में. प्रॉक्सी-ओनली वाले सबनेट में 64 या उससे ज़्यादा आईपी पते होने चाहिए. यह /26 या उससे कम लंबाई के प्रीफ़िक्स से मेल खाता है. सबनेट का सुझाया गया साइज़ /23 (सिर्फ़ प्रॉक्सी के लिए 512 पते) है.

Cloud Shell में जाकर, यह कार्रवाई करें

gcloud compute networks subnets create proxy-subnet-us-central \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=us-central1 \
  --network=producer-vpc \
  --range=172.16.0.0/23

Private Service Connect NAT सबनेट बनाना

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

Cloud Shell में जाकर, यह कार्रवाई करें

gcloud compute networks subnets create psc-nat-subnet --network=producer-vpc --region=us-central1 --range=100.100.10.0/24 --purpose=private-service-connect

प्रोड्यूसर के लिए फ़ायरवॉल के नियम बनाना

प्राइवेट सर्विस कनेक्ट एंडपॉइंट और सर्विस अटैचमेंट के बीच ट्रैफ़िक की अनुमति देने के लिए, फ़ायरवॉल के नियम कॉन्फ़िगर करें. इस कोडलैब में, एक इनग्रेस फ़ायरवॉल नियम बनाया गया है. इससे NAT सबनेट 100.100.10.0/24 को Private Service Connect सेवा अटैचमेंट (इंटरनल लोड बैलेंसर) को ऐक्सेस करने की अनुमति मिलती है.

Cloud Shell में जाकर, यह कार्रवाई करें

gcloud compute --project=$psclab firewall-rules create allow-to-ingress-nat-subnet --direction=INGRESS --priority=1000 --network=producer-vpc --action=ALLOW --rules=all --source-ranges=100.100.10.0/24

Cloud Shell में, fw-allow-health-check नियम बनाएं, ताकि Google Cloud के हेल्थ चेक, टीसीपी पोर्ट 80 पर मौजूद ऑन-प्रिमाइसेस सेवा (बैकएंड सेवा) तक पहुंच सकें

gcloud compute firewall-rules create fw-allow-health-check \
    --network=producer-vpc \
    --action=allow \
    --direction=ingress \
    --source-ranges=130.211.0.0/22,35.191.0.0/16 \
    --rules=tcp:80

प्रॉक्सी-ओनली सबनेट के लिए, फ़ायरवॉल के लिए इन्ग्रेस डेटा ट्रैफ़िक को अनुमति देने वाला नियम बनाएं. इससे लोड बैलेंसर, टीसीपी पोर्ट 80 पर बैकएंड इंस्टेंस के साथ कम्यूनिकेट कर पाएगा

gcloud compute firewall-rules create fw-allow-proxy-only-subnet \
    --network=producer-vpc \
    --action=allow \
    --direction=ingress \
    --source-ranges=172.16.0.0/23 \
    --rules=tcp:80

हाइब्रिड कनेक्टिविटी वाला NEG सेट अप करना

NEG बनाते समय, ऐसे ज़ोन का इस्तेमाल करें जिससे Google Cloud और कंपनी की इमारत या किसी अन्य क्लाउड प्लैटफ़ॉर्म के बीच की भौगोलिक दूरी कम हो. उदाहरण के लिए, अगर आपको जर्मनी के फ़्रैंकफ़र्ट में ऑन-प्रिमाइसेस एनवायरमेंट में कोई सेवा होस्ट करनी है, तो NEG बनाते समय europe-west3-a Google Cloud ज़ोन की जानकारी दी जा सकती है.

इसके अलावा, अगर Cloud Interconnect का इस्तेमाल किया जा रहा है, तो NEG बनाने के लिए इस्तेमाल किया गया ज़ोन, उसी क्षेत्र में होना चाहिए जहां Cloud Interconnect अटैचमेंट को कॉन्फ़िगर किया गया था.

उपलब्ध क्षेत्रों और ज़ोन के बारे में जानने के लिए, Compute Engine का दस्तावेज़: उपलब्ध क्षेत्र और ज़ोन देखें.

Cloud Shell में, gcloud compute network-endpoint-groups create कमांड का इस्तेमाल करके, हाइब्रिड कनेक्टिविटी वाला एनईजी बनाएं

gcloud compute network-endpoint-groups create on-prem-service-neg \
    --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
    --zone=us-central1-a \
    --network=producer-vpc

Cloud Shell में, हाइब्रिड एनईजी में ऑन-प्रिमाइसेस आईपी:पोर्ट एंडपॉइंट जोड़ें.

gcloud compute network-endpoint-groups update on-prem-service-neg \
    --zone=us-central1-a \
    --add-endpoint="ip=192.168.1.5,port=80"

लोड बैलेंसर को कॉन्फ़िगर करना

यहां दिए गए चरणों में, लोड बैलेंसर (फ़ॉरवर्डिंग का नियम) को कॉन्फ़िगर किया जाएगा. साथ ही, इसे नेटवर्क एंडपॉइंट ग्रुप से जोड़ा जाएगा

Cloud Shell में, ऑन-प्रिमाइसेस सेवा को पास किया गया रीजनल हेल्थ-चेक बनाएं

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

Cloud Shell में, हाइब्रिड NEG का फ़ायदा लेने वाले ऑन-प्रिमाइसेस बैकएंड के लिए बैकएंड सेवा बनाएं

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

Cloud Shell में, हाइब्रिड NEG बैकएंड को बैकएंड सेवा में जोड़ें. RATE के लिए, वह ज़्यादा से ज़्यादा RATE डालें जिसे बैकएंड को हैंडल करना चाहिए.

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

Cloud Shell में, यूआरएल मैप बनाएं, ताकि आने वाले अनुरोधों को बैकएंड सेवा पर रूट किया जा सके

gcloud compute url-maps create on-prem-svc-url-map \
    --default-service on-premise-service-backend \
    --region=us-central1

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

gcloud compute target-http-proxies create proxy-subnet-us-central\
    --url-map=on-prem-svc-url-map \
    --url-map-region=us-central1 \
    --region=us-central1

प्रॉक्सी पर आने वाले अनुरोधों को रूट करने के लिए, फ़ॉरवर्ड करने का नियम बनाएं. फ़ॉरवर्ड करने का नियम बनाने के लिए, सिर्फ़ प्रॉक्सी वाले सबनेट का इस्तेमाल न करें.

 gcloud compute forwarding-rules create http-hybrid-neg-fwd-rule \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --network=producer-vpc \
      --subnet=subnet-202 \
      --address=lb-ip \
      --ports=80 \
      --region=us-central1 \
      --target-http-proxy=proxy-subnet-us-central \
      --target-http-proxy-region=us-central1

4. लोड बैलेंसर की पुष्टि करना

Cloud Console में, नेटवर्क सेवाएं → लोड बैलेंसिंग → लोड बैलेंसर पर जाएं. ध्यान दें कि 1 NEG ‘ग्रीन' है. इसका मतलब है कि ऑन-प्रिमाइसेस सेवा के लिए हेल्थ चेक पूरा हो गया है

bb5d117dee3b8b04.png

‘on-premise-svc-url-map' चुनने पर, फ़्रंट एंड आईपी पता मिलता है और बैकएंड सेवा की पहचान होती है

128a7e85e8069097.png

5. ऑन-प्रिमाइसेस से सीखे गए रास्तों को देखना

VPC नेटवर्क → रूट पर जाएं. ध्यान दें, ऑन-प्रिमाइसेस सेवा का सबनेट 192.168.1.0/27 है

d1ab51b79aeea9d8.png

6. कंपनी की इमारत में मौजूद सेवा से कनेक्टिविटी की पुष्टि करना

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

Cloud Shell में, प्रोड्यूसर वीपीसी में टेस्ट इंस्टेंस बनाएं

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

आईएपी को अपने वीएम इंस्टेंस से कनेक्ट करने की अनुमति देने के लिए, फ़ायरवॉल का ऐसा नियम बनाएं जो:

  • यह उन सभी वीएम इंस्टेंस पर लागू होता है जिन्हें आपको आईएपी का इस्तेमाल करके ऐक्सेस करना है.
  • इसकी मदद से, 35.235.240.0/20 आईपी रेंज से इन्ग्रेस ट्रैफ़िक को आने की अनुमति मिलती है. इस रेंज में वे सभी आईपी पते शामिल हैं जिनका इस्तेमाल IAP, टीसीपी फ़ॉरवर्डिंग के लिए करता है.

Cloud Shell में, प्रोड्यूसर वीपीसी में टेस्ट इंस्टेंस बनाएं

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

Cloud Shell में IAP का इस्तेमाल करके, test-box-us-central1 में लॉग इन करें. इसके बाद, लोड बैलेंस आईपी पते के ख़िलाफ़ कर्ल करके, ऑन-प्रिमाइसेस सेवा से कनेक्टिविटी की पुष्टि करें. अगर समयसीमा खत्म हो गई है, तो फिर से कोशिश करें.

gcloud compute ssh test-box-us-central1 --project=$psclab --zone=us-central1-a --tunnel-through-iap

कंपनी की इमारत में मौजूद सेवा से कनेक्टिविटी की पुष्टि करने के लिए, कर्ल करें. पुष्टि हो जाने के बाद, वीएम से बाहर निकलें और Cloud Shell प्रॉम्प्ट पर वापस जाएं. चौथे चरण में पहचाने गए आउटपुट के आधार पर, इंटरनल लोड बैलेंसर के आईपी पते को बदलें.

user@test-box-us-central1:~$ curl -v 10.20.1.2
* Expire in 0 ms for 6 (transfer 0x55b7725c10f0)
*   Trying 10.20.1.2...
* TCP_NODELAY set
* Expire in 200 ms for 4 (transfer 0x55b7725c10f0)
* Connected to 10.20.1.2 (10.20.1.2) port 80 (#0)
> GET / HTTP/1.1
> Host: 10.20.1.2
> User-Agent: curl/7.64.0
> Accept: */*
> 
< HTTP/1.1 200 OK
< content-type: text/html; charset=utf-8
< accept-ranges: bytes
< etag: "3380914763"
< last-modified: Mon, 05 Dec 2022 15:10:56 GMT
< expires: Mon, 12 Dec 2022 03:17:20 GMT
< cache-control: max-age=0
< content-length: 37
< date: Mon, 12 Dec 2022 03:17:20 GMT
< server: lighttpd/1.4.53
< via: 1.1 google
< 
Welcome to my on-premise service!!

7. Private Service Connect सेवा अटैचमेंट बनाना

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

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

Cloud Shell में, सेवा अटैचमेंट बनाएं

gcloud compute service-attachments create service-1 --region=us-central1 --producer-forwarding-rule=http-hybrid-neg-fwd-rule --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=psc-nat-subnet

ज़रूरी नहीं: अगर शेयर किए गए वीपीसी का इस्तेमाल किया जा रहा है, तो सेवा से जुड़े प्रोजेक्ट में सर्विस अटैचमेंट बनाएं

gcloud compute service-attachments create service-1 --region=us-central1 --producer-forwarding-rule=http-hybrid-neg-fwd-rule --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=projects/<hostproject>/regions/<region>/subnetworks/<natsubnet>

टीसीपी सेवा अटैचमेंट की पुष्टि करना

gcloud compute service-attachments describe service-1 --region us-central1

ज़रूरी नहीं: नई सर्विस अटैचमेंट देखने के लिए, नेटवर्क सेवाएं → Private Service Connect पर जाएं

2f84578c9f2cc361.png

Service-1 को चुनने पर, ज़्यादा जानकारी मिलती है. इसमें वह सेवा अटैचमेंट यूआरआई भी शामिल होता है जिसका इस्तेमाल उपभोक्ता, Private Service Connection बनाने के लिए करता है. यूआरआई को नोट कर लें, क्योंकि इसका इस्तेमाल बाद के चरण में किया जाएगा.

41639cb160231275.png

सर्विस अटैचमेंट की जानकारी: projects/<projectname>/regions/us-central1/serviceAttachments/service-1

8. उपयोगकर्ता का सेटअप

उपयोगकर्ता वीपीसी बनाना

Cloud Shell में जाकर, यह कार्रवाई करें

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

उपयोगकर्ता के सबनेट बनाना

Cloud Shell में, GCE सबनेट बनाएं

gcloud compute networks subnets create subnet-101 --project=$psclab --range=10.100.1.0/24 --network=consumer-vpc --region=us-central1

Cloud Shell में, कंज्यूमर एंडपॉइंट सबनेट बनाएं

gcloud compute networks subnets create subnet-102 --project=$psclab --range=10.100.2.0/24 --network=consumer-vpc --region=us-central1

उपयोगकर्ता के लिए एंडपॉइंट (फ़ॉरवर्ड करने का नियम) बनाना

Cloud Shell में, ऐसा स्टैटिक आईपी पता बनाएं जिसका इस्तेमाल उपभोक्ता एंडपॉइंट के तौर पर किया जाएगा

gcloud compute addresses create psc-consumer-ip-1 --region=us-central1 --subnet=subnet-102 --addresses 10.100.2.10

इससे पहले से जनरेट किए गए सर्विस अटैचमेंट यूआरआई का इस्तेमाल करके, उपभोक्ता एंडपॉइंट बनाया जा सकता है

Cloud Shell में जाकर, कंज्यूमर एंडपॉइंट बनाएं

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

9. Validate Consumer Private Service Connect - Consumer VPC

उपभोक्ता वीपीसी से, Private Service Connect के कनेक्शन की पुष्टि करें. इसके लिए, नेटवर्क सेवाएं → Private Service Connect→ कनेक्ट किए गए एंडपॉइंट पर जाएं. हमने पहले से ही psc-consumer-1 कनेक्शन और उससे जुड़ा आईपी पता बना रखा है. इसे नोट करें.

b91ee5d5c854e60b.png

psc-consumer-1 को चुनने पर, सेवा अटैचमेंट यूआरआई सहित अन्य जानकारी दी जाती है

1dbc63217819dcd5.png

10. Validate Consumer Private Service Connect - Producer VPC

प्रोड्यूसर वीपीसी में, Private Service Connect की मदद से कनेक्शन की पुष्टि करें. इसके लिए, नेटवर्क सेवाएं → Private Service Connect→पब्लिश की गई सेवा पर जाएं. ध्यान दें कि पब्लिश की गई सेवा-1 के कनेक्शन में अब कॉल को दूसरे नंबर पर भेजे जाने से जुड़ा एक नियम (कनेक्शन एंडपॉइंट) दिखता है.

951090b812a8d119.png

11. प्राइवेट डीएनएस ज़ोन और ए रिकॉर्ड बनाना

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

Cloud Shell से

gcloud dns --project=$psclab managed-zones create codelab-zone --description="" --dns-name="codelab.net." --visibility="private" --networks="consumer-vpc"

gcloud dns --project=$psclab record-sets create service1.codelab.net. --zone="codelab-zone" --type="A" --ttl="300" --rrdatas="10.100.2.10"

12. वीएम का इस्तेमाल करके, पुष्टि करें कि उपभोक्ता के पास सेवा देने वाली कंपनियों की सेवा का ऐक्सेस है

हम Consumers VPC से एक वीएम बनाएंगे. इससे हम consumer endpoint service1.codelabs.net को ऐक्सेस करके, ऑन-प्रिमाइसेस सेवा से कनेक्टिविटी की जांच करेंगे

Cloud Shell में, कंज्यूमर वीपीसी में टेस्ट इंस्टेंस बनाएं

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

आईएपी को अपने वीएम इंस्टेंस से कनेक्ट करने की अनुमति देने के लिए, फ़ायरवॉल का ऐसा नियम बनाएं जो:

  • यह उन सभी वीएम इंस्टेंस पर लागू होता है जिन्हें आपको आईएपी का इस्तेमाल करके ऐक्सेस करना है.
  • इसकी मदद से, 35.235.240.0/20 आईपी रेंज से इन्ग्रेस ट्रैफ़िक को आने की अनुमति मिलती है. इस रेंज में वे सभी आईपी पते शामिल हैं जिनका इस्तेमाल IAP, टीसीपी फ़ॉरवर्डिंग के लिए करता है.

Cloud Shell में, कंज्यूमर वीपीसी में टेस्ट इंस्टेंस बनाएं

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

Cloud Shell में IAP का इस्तेमाल करके, consumer-vm में लॉग इन करें. इसके बाद, dns FQDN service1.codelab.net के ख़िलाफ़ कर्ल करके, ऑन-प्रिमाइसेस सेवा से कनेक्टिविटी की पुष्टि करें. अगर टाइम आउट होता है, तो फिर से कोशिश करें.

gcloud compute ssh consumer-vm --project=$psclab --zone=us-central1-a --tunnel-through-iap

कंपनी की इमारत में मौजूद सेवा से कनेक्टिविटी की पुष्टि करने के लिए, कर्ल करें. पुष्टि हो जाने के बाद, वीएम से बाहर निकलें और Cloud Shell प्रॉम्प्ट पर वापस जाएं

Cloud Shell में curl कमांड का इस्तेमाल करें

$ curl -v service1.codelab.net
*   Trying 10.100.2.10...
* TCP_NODELAY set
* Expire in 200 ms for 4 (transfer 0x5650fc3390f0)
* Connected to service1.codelab.net (10.100.2.10) port 80 (#0)
> GET / HTTP/1.1
> Host: service1.codelab.net
> User-Agent: curl/7.64.0
> Accept: */*
> 
< HTTP/1.1 200 OK
< Content-Type: text/html; charset=utf-8
< Accept-Ranges: bytes
< ETag: "3380914763"
< Last-Modified: Mon, 05 Dec 2022 15:10:56 GMT
< Expires: Mon, 05 Dec 2022 15:15:41 GMT
< Cache-Control: max-age=0
< Content-Length: 37
< Date: Mon, 05 Dec 2022 15:15:41 GMT
< Server: lighttpd/1.4.53
< 
Welcome to my on-premise service!!

यहां ऑन-प्रिमाइसेस सेवा से कैप्चर किए गए डेटा का एक उदाहरण दिया गया है. ध्यान दें कि सोर्स आईपी पता 172.16.0.13, प्रॉक्सी सबनेट रेंज 172.16.0.0/23 से है

30802152f51ff751.png

13. Producer Clean up

Producer कॉम्पोनेंट मिटाना

Cloud Shell में जाकर, प्रोड्यूसर वीपीसी में मौजूद टेस्ट इंस्टेंस मिटाएं

gcloud compute instances delete test-box-us-central1 --zone=us-central1-a --quiet

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

gcloud compute forwarding-rules delete http-hybrid-neg-fwd-rule --region=us-central1 --quiet

gcloud compute target-http-proxies delete proxy-subnet-us-central --region=us-central1 --quiet

gcloud compute url-maps delete on-prem-svc-url-map --region=us-central1 --quiet

gcloud compute backend-services delete on-premise-service-backend --region=us-central1 --quiet

gcloud compute network-endpoint-groups delete on-prem-service-neg --zone=us-central1-a --quiet

gcloud compute addresses delete lb-ip --region=us-central1 --quiet

gcloud compute networks subnets delete psc-nat-subnet subnet-201 subnet-202 proxy-subnet-us-central --region=us-central1 --quiet

gcloud compute firewall-rules delete ssh-iap fw-allow-proxy-only-subnet allow-to-ingress-nat-subnet fw-allow-health-check --quiet

gcloud compute health-checks delete http-health-check --region=us-central1 --quiet

gcloud compute networks delete producer-vpc --quiet

14. उपयोगकर्ता के डेटा को हटाने की सुविधा

उपभोक्ता के लिए उपलब्ध कॉम्पोनेंट मिटाना

Cloud Shell में जाकर, Consumer VPC में मौजूद टेस्ट इंस्टेंस मिटाएं

gcloud compute instances delete consumer-vm --zone=us-central1-a --quiet

gcloud compute forwarding-rules delete psc-consumer-1 --region=us-central1 --quiet

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

gcloud compute networks subnets delete subnet-101 subnet-102 --region=us-central1 --quiet

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

gcloud dns record-sets delete service1.codelab.net --type=A --zone=codelab-zone --quiet

gcloud dns managed-zones delete codelab-zone --quiet 

gcloud compute networks delete consumer-vpc --quiet 

15. बधाई हो

बधाई हो, आपने इंटरनल एचटीटीपी या एचटीटीपीएस लोड बैलेंसर के साथ Private Service Connect को कॉन्फ़िगर और पुष्टि कर लिया है.

आपने प्रोड्यूसर इंफ़्रास्ट्रक्चर बनाया है. साथ ही, आपने प्रोड्यूसर वीपीसी में एक सेवा अटैचमेंट जोड़ा है, जो ऑन-प्रिमाइसेस सेवा की ओर इशारा करता है. आपने Consumer VPC में एक उपभोक्ता एंडपॉइंट बनाने का तरीका सीखा. इससे ऑन-प्रिमाइसेस सेवा से कनेक्ट किया जा सकता है.

आगे क्या करना है?

यहां दिए गए कुछ कोडलैब आज़माएं...

ज़्यादा जानकारी और वीडियो

रेफ़रंस दस्तावेज़