ऑन-प्राइमिस के लिए, Looker पीएससी साउथबाउंड हाइब्रिड एनईजी

1. परिचय

इस कोडलैब में, आपको H-VPN पर ऑन-प्राइमिस Postgres डेटाबेस से साउथबाउंड कनेक्शन बनाने के लिए, इंटरनल टीसीपी प्रॉक्सी लोड बैलेंसर का इस्तेमाल करना होगा. साथ ही, आपको सेवा उपभोक्ता के तौर पर Looker पीएससी से हाइब्रिड नेटवर्क एंडपॉइंट ग्रुप को भी चालू करना होगा.

Private Service Connect, Google Cloud नेटवर्किंग की एक सुविधा है. इसकी मदद से, उपभोक्ता अपने VPC नेटवर्क से मैनेज की जा रही सेवाओं को निजी तौर पर ऐक्सेस कर सकते हैं. इसी तरह, मैनेज की जाने वाली सेवाओं के प्रोड्यूसर, इन सेवाओं को अपने अलग वीपीएन नेटवर्क में होस्ट कर सकते हैं. साथ ही, अपने उपभोक्ताओं को निजी कनेक्शन भी दे सकते हैं. उदाहरण के लिए, Looker को ऐक्सेस करने के लिए Private Service Connect का इस्तेमाल करने पर, आप सेवा का उपभोक्ता होते हैं और Google सेवा देने वाला होता है. इसकी जानकारी, पहले चित्र में हाइलाइट की गई है.

चित्र 1.

145ea4672c3a3b14.png

साउथबाउंड ऐक्सेस, जिसे रिवर्स पीएससी भी कहा जाता है, की मदद से उपभोक्ता, पब्लिश की गई सेवा को प्रोड्यूसर के तौर पर बना सकता है. इससे Looker को, ऑन-प्राइमिस, VPC, मैनेज की जाने वाली सेवाओं, और हाइब्रिड एंडपॉइंट का ऐक्सेस मिलता है. साउथबाउंड कनेक्शन किसी भी क्षेत्र में डिप्लॉय किए जा सकते हैं. भले ही, Looker PSC को किसी भी जगह पर डिप्लॉय किया गया हो, जैसा कि दूसरे चित्र में हाइलाइट किया गया है.

चित्र 2.

259493afd914f68b.png

आपको इनके बारे में जानकारी मिलेगी

  • नेटवर्क की ज़रूरी शर्तें
  • Private Service Connect प्रोड्यूसर सेवा बनाना
  • Looker में Private Service Connect एंडपॉइंट बनाना
  • टेस्ट कनेक्शन का इस्तेमाल करके, Looker से ऑन-प्राइमिस PostgreSQL डेटाबेस से कनेक्ट करना

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

def88091b42bfe4d.png

2. आपको क्या बनाना है

आपको एक प्रोड्यूसर नेटवर्क, looker-psc-demo बनाना होगा. इससे, Private Service Connect (पीएससी) के ज़रिए, सेवा के तौर पर पब्लिश किए गए इंटरनल टीसीपी प्रॉक्सी लोड बैलेंसर और हाइब्रिड एनईजी को डिप्लॉय किया जा सकेगा. ऑन-प्राइम डेटाबेस को दिखाने के लिए, आपको एचए-वीपीएन का इस्तेमाल करके, looker-psc-demo वीपीएसी से कनेक्ट किया गया on-prem-demo वीपीएसी डिप्लॉय करना होगा.

Producer सेवा के ऐक्सेस की पुष्टि करने के लिए, आपको ये काम करने होंगे:

  • Looker में, प्रोड्यूसर सेवा अटैचमेंट से जुड़ा PSC एंडपॉइंट बनाना
  • ऑन-प्राइमिस PostgreSQL डेटाबेस से कनेक्शन की पुष्टि करने के लिए, Looker Console का इस्तेमाल करना

3. नेटवर्क की ज़रूरी शर्तें

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

घटक

ब्यौरा

VPC (looker-psc-demo)

कस्टम मोड वीपीसी

VPC (on-prem-demo)

कस्टम मोड वीपीसी

पीएससी एनएटी सबनेट

उपभोक्ता के VPC नेटवर्क के पैकेट, सोर्स NAT (SNAT) का इस्तेमाल करके ट्रांसलेट किए जाते हैं, ताकि उनके ओरिजनल सोर्स आईपी पते, प्रोड्यूसर के VPC नेटवर्क में NAT सबनेट के सोर्स आईपी पतों में बदल जाएं.

पीएससी के लिए, फ़ॉरवर्ड करने के नियम का सबनेट

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

पीएससी NEG सबनेट

नेटवर्क एंडपॉइंट ग्रुप के लिए आईपी पता असाइन करने के लिए इस्तेमाल किया जाता है

सिर्फ़ प्रॉक्सी सबनेट

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

हाइब्रिड NEG

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

बैकएंड सेवा

बैकएंड सेवा, आपके लोड बैलेंसर और बैकएंड संसाधनों के बीच ब्रिज के तौर पर काम करती है. ट्यूटोरियल में, बैकएंड सेवा को हाइब्रिड एनईजी से जोड़ा गया है.

क्लाउड राऊटर

  • Cloud NAT, कंट्रोल प्लेन की सुविधाओं के लिए क्लाउड राउटर पर निर्भर करता है, लेकिन BGP सेशन मैनेजमेंट के लिए नहीं.
  • क्लाउड राउटर का इस्तेमाल, psc-looker-demo और on-prem-demo VPCs के बीच एचए-वीपीएन सेट अप करने के लिए, बीजीपी सेट अप करने के लिए किया जाता है.

HA-VPN

Google Cloud VPC नेटवर्क के बीच एचए वीपीएन. इस टोपोलॉजी में, हर नेटवर्क में एचए वीपीएन गेटवे का इस्तेमाल करके, दो Google Cloud VPC नेटवर्क कनेक्ट किए जा सकते हैं. वीपीसी नेटवर्क एक ही क्षेत्र या एक से ज़्यादा क्षेत्रों में हो सकते हैं.

Cloud NAT

इंटरनेट एक्सग्रेस के लिए, on-prem-demo VPC का इस्तेमाल करता है

4. कोडलैब की टोपोलॉजी

79aeb28b38f237da.png

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

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

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

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

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

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

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
zone=[YOUR-ZONE]
echo $project
echo $region

सभी ज़रूरी सेवाएं चालू करें:

gcloud services enable compute.googleapis.com

7. प्रोड्यूसर के लिए VPC नेटवर्क बनाना

VPC नेटवर्क

Cloud Shell में, ये काम करें:

gcloud compute networks create looker-psc-demo --subnet-mode custom

सबनेट बनाना

नेटवर्क पता बदलने के मकसद से, पीएससी सबनेट को पीएससी सेवा अटैचमेंट से जोड़ा जाएगा.

Cloud Shell में, पीएससी NAT सबनेट बनाएं:

gcloud compute networks subnets create producer-psc-nat-subnet --network looker-psc-demo --range 172.16.10.0/28 --region $region --purpose=PRIVATE_SERVICE_CONNECT

Cloud Shell में, प्रोड्यूसर फ़ॉरवर्डिंग नियम सबनेट बनाएं:

gcloud compute networks subnets create producer-psc-fr-subnet --network looker-psc-demo --range 172.16.20.0/28 --region $region --enable-private-ip-google-access

Cloud Shell में, प्रोड्यूसर के लिए क्षेत्र के हिसाब से प्रॉक्सी-ओनली सबनेट बनाएं:

gcloud compute networks subnets create $region-proxy-only-subnet \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=$region \
  --network=looker-psc-demo \
  --range=10.10.10.0/24

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

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

gcloud compute addresses create hybrid-neg-lb-ip \
  --region=$region \
  --subnet=producer-psc-fr-subnet

Cloud Shell में, रिज़र्व किया गया आईपी पता देखें.

gcloud compute addresses describe hybrid-neg-lb-ip \
  --region=$region | grep -i address:

आउटपुट का उदाहरण:

gcloud compute addresses describe hybrid-neg-lb-ip   --region=$region | grep -i address:
address: 172.16.20.2

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

हाइब्रिड एनईजी बनाएं और –network-endpoint-type को NON_GCP_PRIVATE_IP_PORT पर सेट करें

Cloud Shell में, ऑन-प्रीम डेटाबेस को ऐक्सेस करने के लिए, हाइब्रिड एनईजी बनाएं:

gcloud compute network-endpoint-groups create on-prem-hybrid-neg \
    --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
    --network=looker-psc-demo \
    --zone=$zone

Cloud Shell में, हाइब्रिड एनईजी को ऑन-प्रीमिस डेटाबेस के आईपी:पोर्ट, 192.168.10.4 और पोर्ट 5432 से अपडेट करें. यह आईपी:पोर्ट, ट्यूटोरियल के अगले चरण में जनरेट किया जाएगा:

gcloud compute network-endpoint-groups update on-prem-hybrid-neg \
    --add-endpoint=ip=192.168.10.4,port=5432 \
    --zone=$zone

रीजनल हेल्थ चेक बनाना

Cloud Shell में, एक हेल्थ-चेक बनाएं, जो ऑन-प्रीमिस डेटाबेस पोर्ट 5432 की जांच करता हो:

gcloud compute health-checks create tcp on-prem-5432-healthcheck \
    --region=$region \
    --port=5432

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

Cloud Shell में, ये काम करें:

gcloud compute network-firewall-policies create looker-psc-demo-policy --global

gcloud compute network-firewall-policies associations create --firewall-policy looker-psc-demo-policy --network looker-psc-demo --name looker-psc-demo --global-firewall-policy

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

Cloud Shell में, ये काम करें:

gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy looker-psc-demo-policy --description "allow traffic from PSC NAT subnet" --direction INGRESS --src-ip-ranges 172.16.10.0/28 --global-firewall-policy --layer4-configs=tcp

8. प्रोड्यूसर सेवा बनाना

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

Cloud Shell में, बैकएंड सेवा बनाएं::

gcloud compute backend-services create producer-backend-svc --region=$region --load-balancing-scheme=INTERNAL_MANAGED --protocol=TCP --region=$region --health-checks=on-prem-5432-healthcheck --health-checks-region=$region

Cloud Shell में, बैकएंड सेवा में हाइब्रिड NEG बैकएंड जोड़ें:

gcloud compute backend-services add-backend producer-backend-svc --network-endpoint-group=on-prem-hybrid-neg --network-endpoint-group-zone=$zone --balancing-mode=CONNECTION --max-connections=100 --region=$region

Cloud Shell में, अपनी बैकएंड सेवा पर अनुरोधों को रूट करने के लिए, टारगेट टीसीपी प्रॉक्सी बनाएं:

gcloud compute target-tcp-proxies create producer-lb-tcp-proxy \
      --backend-service=producer-backend-svc  \
      --region=$region

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

Cloud Shell में, ये काम करें:

gcloud compute forwarding-rules create producer-hybrid-neg-fr \
     --load-balancing-scheme=INTERNAL_MANAGED \
     --network-tier=PREMIUM \
     --network=looker-psc-demo \
     --subnet=producer-psc-fr-subnet \
     --address=hybrid-neg-lb-ip \
     --target-tcp-proxy=producer-lb-tcp-proxy \
     --target-tcp-proxy-region=$region \
     --region=$region \
     --ports=5432

सेवा से जुड़ा अटैचमेंट बनाना

Cloud Shell में, सेवा अटैचमेंट, onpremdatabase1-svc-attachment बनाएं:

gcloud compute service-attachments create onpremdatabase1-svc-attachment --region=$region --producer-forwarding-rule=producer-hybrid-neg-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=producer-psc-nat-subnet

इसके बाद, Looker में पीएससी एंडपॉइंट को कॉन्फ़िगर करने के लिए, प्रोजेक्ट से शुरू होने वाले selfLink यूआरआई में मौजूद सेवा अटैचमेंट को इकट्ठा करें और नोट करें.

selfLink: projects/<your-project-id>/regions/<your-region>/serviceAttachments/onpremdatabase1-svc-attachment

Cloud Shell में, ये काम करें:

gcloud compute service-attachments describe onpremdatabase1-svc-attachment --region=$region

अनुमानित आउटपुट का उदाहरण:

connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2024-09-01T16:07:51.600-07:00'
description: ''
enableProxyProtocol: false
fingerprint: cFt9rERR1iE=
id: '2549689544315850024'
kind: compute#serviceAttachment
name: onpremdatabase1-svc-attachment
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project/regions/$region/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
  high: '19348441121424360'
  low: '2549689544315850024'
reconcileConnections: false
region: https://www.googleapis.com/compute/v1/projects/$project/regions/$region
selfLink: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/serviceAttachments/onpremdatabase1-svc-attachment
targetService: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/producer-hybrid-neg-fr

Cloud Console में, यहां जाएं:

नेटवर्क सेवाएं → Private Service Connect → पब्लिश की गई सेवाएं

9f436251a3ae2cc7.png

4c3e8e73d40d1238.png

9. Looker में पीएससी एंडपॉइंट कनेक्शन सेट अप करना

नीचे दिए गए सेक्शन में, आपको एक डोमेन के लिए Cloud Shell में –psc-service-attachment फ़्लैग का इस्तेमाल करके, प्रोड्यूसर सर्विस अटैचमेंट को Looker Core पीएससी से जोड़ना होगा.

Cloud Shell में, अपने एनवायरमेंट के हिसाब से इन पैरामीटर को अपडेट करके, psc असोसिएशन बनाएं:

  • INSTANCE_NAME: आपके Looker (Google Cloud core) इंस्टेंस का नाम.
  • DOMAIN_1: onprem.database1.com
  • SERVICE_ATTACHMENT_1: सेवा अटैचमेंट बनाते समय कैप्चर किया गया यूआरआई, onpremdatabase1-svc-attachment
  • REGION: वह क्षेत्र जहां आपका Looker (Google Cloud Core) इंस्टेंस होस्ट किया गया है.

Cloud Shell में, ये काम करें:

gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment  domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION

उदाहरण:

gcloud looker instances update looker-psc-instance --psc-service-attachment domain=onprem.database1.com,attachment=projects/$project/regions/$region/serviceAttachments/onpremdatabase1-svc-attachment --region=$region

Cloud Shell में, पुष्टि करें कि serviceAttachments connectionStatus "ACCEPTED" है. इसके बाद, इसे अपने Looker PSC इंस्टेंस के नाम से अपडेट करें:

gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json

उदाहरण:

gcloud looker instances describe looker-psc-instance --region=$region --format=json

उदाहरण:

{
  "adminSettings": {},
  "createTime": "2024-08-23T00:00:45.339063195Z",
  "customDomain": {
    "domain": "looker.cosmopup.com",
    "state": "AVAILABLE"
  },
  "encryptionConfig": {},
  "lookerVersion": "24.14.18",
  "name": "projects/$project/locations/$region/instances/looker-psc-instance",
  "platformEdition": "LOOKER_CORE_ENTERPRISE_ANNUAL",
  "pscConfig": {
    "allowedVpcs": [
      "projects/$project/global/networks/looker-psc-demo",
      "projects/$project/global/networks/looker-shared-vpc"
    ],
    "lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/$region/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
    "serviceAttachments": [
      {
        "connectionStatus": "ACCEPTED",
        "localFqdn": "onprem.database1.com",
        "targetServiceAttachmentUri": "projects/$project/regions/$region/serviceAttachments/onpremdatabase1-svc-attachment"
      }
    ]
  },
  "pscEnabled": true,
  "state": "ACTIVE",
  "updateTime": "2024-09-01T23:15:07.426372901Z"
}

Cloud Console में PSC एंडपॉइंट की पुष्टि करना

Cloud Console से, PSC कनेक्शन की पुष्टि की जा सकती है

Cloud Console में, यहां जाएं:

Looker → Looker इंस्टेंस → जानकारी

2d4684d722d31e4b.png

993cdaf748f4c030.png

ऑन-प्रीमिस वीपीएन नेटवर्क बनाना

VPC नेटवर्क

Cloud Shell में, ये काम करें:

gcloud compute networks create on-prem-demo --project=$project --subnet-mode=custom

PostgreSQL डेटाबेस सबनेट बनाना

Cloud Shell में, ये काम करें:

gcloud compute networks subnets create database-subnet --project=$project --range=192.168.10.0/28 --network=on-prem-demo --region=$region

Cloud Shell में, कोई इंटरनल आईपीवी4 पता रिज़र्व करें. इसका इस्तेमाल onprem.database1.com, 192.168.10.4 के लिए किया जाता है:

gcloud compute addresses create on-prem-database1-ip --region=$region --subnet=database-subnet --addresses 192.168.10.4

ऑन-प्रीमिस-डेमो वीपीएसी के लिए क्लाउड राउटर बनाना

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

Cloud Shell में, Cloud NAT और HA-VPN के साथ इस्तेमाल किया जाने वाला Cloud राउटर बनाएं:

gcloud compute routers create on-prem-cr \
   --region=$region \
   --network=on-prem-demo \
   --asn=65002

Cloud Shell में, NAT गेटवे बनाएं:

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

डेटाबेस टेस्ट इंस्टेंस बनाना

postgres-database इंस्टेंस बनाएं. इसका इस्तेमाल, Looker से कनेक्टिविटी की जांच करने और उसकी पुष्टि करने के लिए किया जाएगा.

Cloud Shell में, इंस्टेंस बनाएं:

gcloud compute instances create postgres-database \
    --project=$project \
    --zone=$zone \
    --machine-type=e2-medium \
    --subnet=database-subnet \
    --no-address \
    --private-network-ip 192.168.10.4 \
    --image-family debian-12 \
    --image-project debian-cloud  \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt -y install postgresql postgresql-client postgresql-contrib -y"

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

Cloud Shell में, ये काम करें:

gcloud compute network-firewall-policies create on-prem-demo-policy --global

gcloud compute network-firewall-policies associations create --firewall-policy on-prem-demo-policy --network on-prem-demo --name on-prem-demo --global-firewall-policy

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

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

Cloud Shell में, ये काम करें:

gcloud compute network-firewall-policies rules create 1000 --action ALLOW --firewall-policy on-prem-demo-policy --description "SSH with IAP" --direction INGRESS --src-ip-ranges 35.235.240.0/20 --layer4-configs tcp:22  --global-firewall-policy

फ़ायरवॉल का यह नियम, सिर्फ़ प्रॉक्सी सबनेट रेंज से आने वाले ट्रैफ़िक को नेटवर्क के सभी इंस्टेंस तक पहुंचने की अनुमति देता है.

Cloud Shell में, ये काम करें:

gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy on-prem-demo-policy --description "allow traffic from proxy only subnet" --direction INGRESS --src-ip-ranges 10.10.10.0/24 --global-firewall-policy --layer4-configs=tcp

10. हाइब्रिड कनेक्टिविटी

नीचे दिए गए सेक्शन में, आपको एक क्लाउड राउटर बनाना होगा. इसकी मदद से, बॉर्डर गेटवे प्रोटोकॉल (बीजीपी) का इस्तेमाल करके, अपने वर्चुअल प्राइवेट क्लाउड (वीपीसी) और पीयर नेटवर्क के बीच, डाइनैमिक तौर पर रूट एक्सचेंज किए जा सकते हैं.

Cloud Router, आपके नेटवर्क को कनेक्ट करने के लिए, Cloud VPN टनल पर BGP सेशन सेट अप कर सकता है. यह नए सबनेट आईपी पते की रेंज को अपने-आप पहचानता है और उन्हें आपके पीयर नेटवर्क को बताता है.

यहां दिए गए चरणों में, आपको looker-psc-demo VPC और on-prem-demo VPC के बीच एचए वीपीएन डिप्लॉय करना होगा. इससे, onprem.database1.com से हाइब्रिड एनईजी कनेक्टिविटी को दिखाया जा सकेगा.

looker-psc-demo के लिए, एचए वीपीएन जीडब्ल्यू बनाएं

हर गेटवे बनाने पर, दो बाहरी IPv4 पते अपने-आप असाइन हो जाते हैं. इनमें से एक पता हर गेटवे इंटरफ़ेस के लिए होता है.

Cloud Shell में, एचए वीपीएन जीडब्ल्यू बनाएं:

gcloud compute vpn-gateways create looker-psc-demo-vpn-gw \
   --network=looker-psc-demo \
   --region=$region

ऑन-प्रीम डेमो के लिए, एचए वीपीएन जीडब्ल्यू बनाएं

हर गेटवे बनाने पर, दो बाहरी IPv4 पते अपने-आप असाइन हो जाते हैं. इनमें से एक पता हर गेटवे इंटरफ़ेस के लिए होता है.

Cloud Shell में, एचए वीपीएन जीडब्ल्यू बनाएं:

gcloud compute vpn-gateways create on-prem-vpn-gw \
   --network=on-prem-demo\
   --region=$region

एचए वीपीएन जीडब्ल्यू बनाने की पुष्टि करना

कंसोल का इस्तेमाल करके, HYBRID CONNECTIVITY → VPN → CLOUD VPN GATEWAYS पर जाएं.

7f1b504616504866.png

looker-psc-demo के लिए क्लाउड राउटर बनाना

Cloud Shell में, क्लाउड राउटर बनाएं:

gcloud compute routers create looker-psc-demo-cr \
   --region=$region \
   --network=looker-psc-demo\
   --asn=65001

looker-psc-demo के लिए वीपीएन टनल बनाना

आपको हर एचए वीपीएन गेटवे पर दो वीपीएन टनल बनाने होंगे.

वीपीएन टनल0 बनाएं

Cloud Shell में, tunnel0 बनाएं:

gcloud compute vpn-tunnels create looker-psc-demo-tunnel0 \
    --peer-gcp-gateway on-prem-vpn-gw \
    --region $region \
    --ike-version 2 \
    --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
    --router looker-psc-demo-cr \
    --vpn-gateway looker-psc-demo-vpn-gw \
    --interface 0

वीपीएन टनल1 बनाएं

Cloud Shell में, tunnel1 बनाएं:

gcloud compute vpn-tunnels create looker-psc-demo-tunnel1 \
    --peer-gcp-gateway on-prem-vpn-gw \
    --region $region \
    --ike-version 2 \
    --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
    --router looker-psc-demo-cr \
    --vpn-gateway looker-psc-demo-vpn-gw \
    --interface 1

ऑन-प्रीम डेमो के लिए वीपीएन टनल बनाना

आपको हर एचए वीपीएन गेटवे पर दो वीपीएन टनल बनाने होंगे.

वीपीएन टनल0 बनाएं

Cloud Shell में, tunnel0 बनाएं:

gcloud compute vpn-tunnels create on-prem-tunnel0 \
    --peer-gcp-gateway looker-psc-demo-vpn-gw \
    --region $region \
    --ike-version 2 \
    --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
    --router on-prem-cr \
    --vpn-gateway on-prem-vpn-gw \
   --interface 0

वीपीएन टनल1 बनाएं

Cloud Shell में, tunnel1 बनाएं:

gcloud compute vpn-tunnels create on-prem-tunnel1 \
    --peer-gcp-gateway looker-psc-demo-vpn-gw \
    --region $region \
    --ike-version 2 \
    --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
    --router on-prem-cr \
    --vpn-gateway on-prem-vpn-gw \
    --interface 1

वीपीएन टनल बनाने की पुष्टि करना

कंसोल का इस्तेमाल करके, HYBRID CONNECTIVITY → VPN → CLOUD VPN TUNNELS पर जाएं.

c2fcb340a7614070.png

11. BGP नेबर सेट अप करना

looker-psc-demo के लिए BGP इंटरफ़ेस और पीयरिंग बनाना

Cloud Shell में, BGP इंटरफ़ेस बनाएं:

gcloud compute routers add-interface looker-psc-demo-cr \
    --interface-name if-tunnel0-to-onprem \
    --ip-address 169.254.1.1 \
    --mask-length 30 \
    --vpn-tunnel looker-psc-demo-tunnel0 \
    --region $region

Cloud Shell में, BGP पियर बनाएं:

gcloud compute routers add-bgp-peer looker-psc-demo-cr \
    --peer-name bgp-on-premises-tunnel0 \
    --interface if-tunnel1-to-onprem \
    --peer-ip-address 169.254.1.2 \
    --peer-asn 65002 \
    --region $region

Cloud Shell में, BGP इंटरफ़ेस बनाएं:

gcloud compute routers add-interface looker-psc-demo-cr \
    --interface-name if-tunnel1-to-onprem \
    --ip-address 169.254.2.1 \
    --mask-length 30 \
    --vpn-tunnel looker-psc-demo-tunnel1 \
    --region $region

Cloud Shell में, BGP पियर बनाएं:

gcloud compute routers add-bgp-peer looker-psc-demo-cr \
    --peer-name bgp-on-premises-tunnel1 \
    --interface if-tunnel2-to-onprem \
    --peer-ip-address 169.254.2.2 \
    --peer-asn 65002 \
    --region $region

ऑन-प्रीमाइज़-डेमो के लिए BGP इंटरफ़ेस और पीयरिंग बनाना

Cloud Shell में, BGP इंटरफ़ेस बनाएं:

gcloud compute routers add-interface on-prem-cr \
    --interface-name if-tunnel0-to-looker-psc-demo \
    --ip-address 169.254.1.2 \
    --mask-length 30 \
    --vpn-tunnel on-prem-tunnel0 \
    --region $region

Cloud Shell में, BGP पियर बनाएं:

gcloud compute routers add-bgp-peer on-prem-cr \
    --peer-name bgp-looker-psc-demo-tunnel0 \
    --interface if-tunnel1-to-looker-psc-demo \
    --peer-ip-address 169.254.1.1 \
    --peer-asn 65001 \
    --region $region

Cloud Shell में, BGP इंटरफ़ेस बनाएं:

gcloud compute routers add-interface on-prem-cr \
    --interface-name if-tunnel1-to-looker-psc-demo \
    --ip-address 169.254.2.2 \
    --mask-length 30 \
    --vpn-tunnel on-prem-tunnel1 \
    --region $region

Cloud Shell में, BGP पियर बनाएं:

gcloud compute routers add-bgp-peer on-prem-cr \
    --peer-name bgp-looker-psc-demo-tunnel1\
    --interface if-tunnel2-to-looker-psc-demo \
    --peer-ip-address 169.254.2.1 \
    --peer-asn 65001 \
    --region $region

वीपीएन टनल की जानकारी देखने के लिए, हाइब्रिड कनेक्टिविटी → वीपीएन पर जाएं.

78ab590317919bf5.png

एचए वीपीएन पर, looker-psc-demo से सीखे गए रास्तों की पुष्टि करना

अब एचए वीपीएन टनल और बीजीपी सेशन सेट अप हो चुके हैं. इसलिए, क्लाउड राऊटर का डिफ़ॉल्ट व्यवहार, सबनेट रूट का विज्ञापन करना है. looker-psc-demo से सीखे गए रास्ते देखें.

कंसोल का इस्तेमाल करके, VPC नेटवर्क → VPC नेटवर्क → looker-psc-demo → रूट → क्षेत्र → व्यू पर जाएं

देखें कि looker-psc-demo ने on-prem-demo VPC से डेटाबेस-सबनेट 192.168.10.0/28 को सीखा है.

c11a11ed8b0491c8.png

पुष्टि करना कि ऑन-प्रीम डेमो वीपीसी ने एचए वीपीएन के ज़रिए रूट सीखे हैं

क्लाउड राउटर का डिफ़ॉल्ट काम सभी सबनेट का विज्ञापन करना है. इसलिए, सिर्फ़ प्रॉक्सी सबनेट का विज्ञापन BGP पर किया जाता है. हाइब्रिड एनईजी, onprem.database1.com सर्वर से संपर्क करते समय, सोर्स पते के तौर पर सिर्फ़ प्रॉक्सी सबनेट का इस्तेमाल करेगा.

देखें कि on-prem-demo ने looker-psc-demo से, सिर्फ़ प्रॉक्सी-सबनेट 10.10.10.0/24 को सीखा है.

कंसोल का इस्तेमाल करके, VPC नेटवर्क → VPC नेटवर्क → on-prem-demo → रूट → क्षेत्र → व्यू पर जाएं

b0073faed026931f.png

12. Looker postgres-database creation

नीचे दिए गए सेक्शन में, आपको Cloud Shell का इस्तेमाल करके postgres-database vm में एसएसएच करना होगा.

Cloud Shell में, postgres-database इंस्टेंस पर ssh करें**:**

 gcloud compute ssh --zone "$zone" "postgres-database" --project "$project"

ओएस में, postgres-database इंस्टेंस का आईपी पता (ens4) ढूंढें और नोट करें:

ip a

उदाहरण:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc mq state UP group default qlen 1000
    link/ether 42:01:c0:a8:0a:04 brd ff:ff:ff:ff:ff:ff
    altname enp0s4
    inet 192.168.10.4/32 metric 100 scope global dynamic ens4
       valid_lft 66779sec preferred_lft 66779sec
    inet6 fe80::4001:c0ff:fea8:a04/64 scope link 
       valid_lft forever preferred_lft forever

ओएस में, postgresql में लॉग इन करें:

sudo -u postgres psql postgres

ओएस में, पासवर्ड डालने के लिए कहा गया प्रॉम्प्ट डालें:

\password postgres

ओएस में, postgres के लिए पासवर्ड सेट करें (एक ही पासवर्ड दो बार डालें):

postgres

उदाहरण:

user@postgres-database:~$ sudo -u postgres psql postgres
\password postgres
psql (13.11 (Debian 13.11-0+deb11u1))
Type "help" for help.
postgres=# \password postgres
Enter new password for user "postgres": 
Enter it again: 

ओएस में, postgres से बाहर निकलें:

\q

उदाहरण:

postgres=# \q
user@postgres-database:~$ 

नीचे दिए गए सेक्शन में, आपको IPv4 लोकल कनेक्शन के तहत pg_hba.conf फ़ाइल में, अपने postgres-database इंस्टेंस आईपी (192.168.10.4) और सिर्फ़ प्रॉक्सी सबनेट (10.10.10.0/24) को डालना होगा.

sudo nano /etc/postgresql/15/main/pg_hba.conf

यहां दिए गए स्क्रीनशॉट में, अपडेट की पूरी प्रक्रिया दिखाई गई है: eaff2ed6d27fa7cc.png

नीचे दिए गए सेक्शन में, postgresql.conf से टिप्पणी हटाएं, ताकि नीचे दिए गए स्क्रीनशॉट के मुताबिक, सभी ‘*' आईपी पतों को सुना जा सके:

sudo nano /etc/postgresql/15/main/postgresql.conf

पहले:

65e0b1074dc48644.png

बाद में:

14a0d1fa5455e23e.png

ओएस में, postgresql सेवा को रीस्टार्ट करें:

sudo service postgresql restart

ओएस में, postgresql के स्टेटस की पुष्टि करें कि वह चालू है:

sudo service postgresql status

उदाहरण:

ओएस में, postgresql के स्टेटस की पुष्टि करें कि वह चालू है:

user@postgres-database:/$ sudo service postgresql status
● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; preset: enabled)
     Active: active (exited) since Mon 2024-09-02 12:10:10 UTC; 1min 46s ago
    Process: 20486 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
   Main PID: 20486 (code=exited, status=0/SUCCESS)
        CPU: 2ms

Sep 02 12:10:10 postgres-database systemd[1]: Starting postgresql.service - PostgreSQL RDBMS...
Sep 02 12:10:10 postgres-database systemd[1]: Finished postgresql.service - PostgreSQL RDBMS.

13. Postgres डेटाबेस बनाना

नीचे दिए गए सेक्शन में, आपको postgres_looker नाम का एक PostgreSQL डेटाबेस और looker_schema नाम का स्कीमा बनाना होगा. इसका इस्तेमाल, ऑन-प्राइमिस कनेक्शन के लिए Looker की पुष्टि करने के लिए किया जाता है.

ओएस में, postgres में लॉग इन करें:

sudo -u postgres psql postgres

ओएस में डेटाबेस बनाएं:

create database postgres_looker;

ओएस में, डेटाबेस की सूची बनाएं:

\l

ओएस में, postgres_looker उपयोगकर्ता बनाएं और उसका पासवर्ड postgreslooker डालें:

create user postgres_looker with password 'postgreslooker';

ओएस में, डेटाबेस से कनेक्ट करें:

\c postgres_looker;

ओएस में, स्कीमा looker-schema बनाएं और Cloud Shell प्रॉम्प्ट से बाहर निकलें.

create schema looker_schema;
create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
exit

Exit from the OS, returning you to cloud shell:

\q

उदाहरण:

user@postgres-database:/$ sudo -u postgres psql postgres
psql (15.8 (Debian 15.8-0+deb12u1))
Type "help" for help.

postgres=# create database postgres_looker;
CREATE DATABASE
postgres=# \l
                                                List of databases
      Name       |  Owner   | Encoding | Collate |  Ctype  | ICU Locale | Locale Provider |   Access privileges   
-----------------+----------+----------+---------+---------+------------+-----------------+-----------------------
 postgres        | postgres | UTF8     | C.UTF-8 | C.UTF-8 |            | libc            | 
 postgres_looker | postgres | UTF8     | C.UTF-8 | C.UTF-8 |            | libc            | 
 template0       | postgres | UTF8     | C.UTF-8 | C.UTF-8 |            | libc            | =c/postgres          +
                 |          |          |         |         |            |                 | postgres=CTc/postgres
 template1       | postgres | UTF8     | C.UTF-8 | C.UTF-8 |            | libc            | =c/postgres          +
                 |          |          |         |         |            |                 | postgres=CTc/postgres
(4 rows)

postgres=# create user postgres_looker with password 'postgreslooker';
CREATE ROLE
postgres=# \c postgres_looker;
You are now connected to database "postgres_looker" as user "postgres".
postgres_looker=# create schema looker_schema;
create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
exit
CREATE SCHEMA
CREATE TABLE
postgres_looker-# \q

14. Looker को Postgres postgres-database के साथ इंटिग्रेट करना

नीचे दिए गए सेक्शन में, आपको ऑन-प्राइमिस postgres-database इंस्टेंस से डेटाबेस कनेक्शन बनाने के लिए, Looker Console का इस्तेमाल करना होगा.

एडमिन पेज → डेटाबेस → कनेक्शन → कनेक्शन जोड़ें को चुनें

नीचे दिए गए स्क्रीनशॉट के मुताबिक, कनेक्शन की जानकारी भरें और कनेक्ट करें को चुनें

5900fdf0b698cbfc.png

कनेक्शन अब कॉन्फ़िगर हो गया है

4817157fd3b1277e.png

15. Looker की कनेक्टिविटी की पुष्टि करना

नीचे दिए गए सेक्शन में, आपको Looker के 'टेस्ट' ऐक्शन और TCPDUMP का इस्तेमाल करके, ऑन-प्रीमिस वीपीसी में postgres-डेटाबेस से Looker की कनेक्टिविटी की पुष्टि करने का तरीका पता चलेगा.

अगर सेशन का टाइम आउट हो गया है, तो Cloud Shell से postgres-database में लॉग इन करें.

Cloud Shell में, ये काम करें:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
zone=[YOUR-ZONE]
echo $project
echo $region
gcloud compute ssh --zone "$zone" "postgres-database" --project "$project"

ओएस से, सिर्फ़ प्रॉक्सी सबनेट 10.10.10.0/24 के साथ TCPDUMP फ़िल्टर बनाएं

sudo tcpdump -i any net 10.10.10.0/24 -nn

डेटा कनेक्शन एडमिन → डेटाबेस → कनेक्शन → postgres-database → टेस्ट पर जाएं

टेस्ट चुनने के बाद, Looker postgres-database से कनेक्ट हो जाएगा, जैसा कि यहां दिखाया गया है:

774f9313ece41034.png

व्यवस्थित करें

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

gcloud compute service-attachments delete onpremdatabase1-svc-attachment --region=$region -q

gcloud compute forwarding-rules delete producer-hybrid-neg-fr --region=$region -q

gcloud compute target-tcp-proxies delete producer-lb-tcp-proxy --region=$region -q

gcloud compute backend-services delete producer-backend-svc --region=$region -q

gcloud compute network-firewall-policies rules delete 2001 --firewall-policy looker-psc-demo-policy --global-firewall-policy -q

gcloud compute network-firewall-policies associations delete --firewall-policy=looker-psc-demo-policy  --name=looker-psc-demo --global-firewall-policy -q

gcloud compute network-firewall-policies delete looker-psc-demo-policy --global -q

gcloud compute routers nats delete on-prem-nat --router=on-prem-cr --router-region=$region -q

gcloud compute network-endpoint-groups delete on-prem-hybrid-neg --zone=$zone -q

gcloud compute addresses delete hybrid-neg-lb-ip --region=$region -q

gcloud compute vpn-tunnels delete looker-psc-demo-tunnel0 looker-psc-demo-tunnel1 on-prem-tunnel0 on-prem-tunnel1 --region=$region -q

gcloud compute vpn-gateways delete looker-psc-demo-vpn-gw on-prem-vpn-gw --region=$region -q

gcloud compute routers delete looker-psc-demo-cr on-prem-cr --region=$region -q

gcloud compute instances delete postgres-database --zone=$zone -q

gcloud compute addresses delete on-prem-database1-ip --region=$region -q

gcloud compute networks subnets delete database-subnet --region=$region -q

gcloud compute network-firewall-policies rules delete 2001 --firewall-policy on-prem-demo-policy --global-firewall-policy -q

gcloud compute network-firewall-policies rules delete 1000 --firewall-policy on-prem-demo-policy --global-firewall-policy -q

gcloud compute network-firewall-policies associations delete --firewall-policy=on-prem-demo-policy  --name=on-prem-demo --global-firewall-policy -q

gcloud compute networks subnets delete $region-proxy-only-subnet --region=$region -q

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

gcloud compute networks subnets delete producer-psc-fr-subnet --region=$region -q

gcloud compute networks delete on-prem-demo -q

gcloud compute networks delete looker-psc-demo -q

16. बधाई हो

बधाई हो, आपने Private Service Connect की मदद से Looker Console का इस्तेमाल करके, एचए-वीपीएन के ज़रिए ऑन-प्राइमिस डेटाबेस से कनेक्टिविटी को कॉन्फ़िगर और पुष्टि कर ली है.

आपने प्रोड्यूसर इन्फ़्रास्ट्रक्चर बनाया है. साथ ही, हाइब्रिड एनईजी, प्रोड्यूसर सेवा, और Looker पीएससी एंडपॉइंट बनाने का तरीका भी जाना है. इससे, प्रोड्यूसर सेवा से कनेक्ट किया जा सकता है.

Cosmopup को लगता है कि कोडलैब शानदार हैं!!

c911c127bffdee57.jpeg

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

इनमें से कुछ कोडलैब देखें...

ज़्यादा पढ़ने के लिए लेख और वीडियो

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