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

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

आपको क्या सीखने को मिलेगा
- नेटवर्क की ज़रूरी शर्तें
- Private Service Connect की प्रोड्यूसर सेवा बनाना
- Looker में Private Service Connect एंडपॉइंट बनाना
- 'कनेक्शन की जांच करें' सुविधा का इस्तेमाल करके, Looker से ऑन-प्रिमाइसेस PostgreSQL डेटाबेस से कनेक्ट करें
आपको इन चीज़ों की ज़रूरत होगी
- मालिक की अनुमतियों वाला Google Cloud प्रोजेक्ट
- मौजूदा Looker PSC इंस्टेंस

2. आपको क्या बनाना है
आपको एक प्रोड्यूसर नेटवर्क, looker-psc-demo बनाना होगा. इससे इंटरनल टीसीपी प्रॉक्सी लोड बैलेंसर और हाइब्रिड एनईजी को डिप्लॉय किया जा सकेगा. इन्हें Private Service Connect (PSC) के ज़रिए सेवा के तौर पर पब्लिश किया जाता है. ऑन-प्रिमाइसेस डेटाबेस दिखाने के लिए, HA-VPN का इस्तेमाल करके looker-psc-demo वीपीसी से कनेक्ट किया गया on-prem-demo वीपीसी डिप्लॉय करें.
Producer सेवा का ऐक्सेस पाने के लिए, आपको ये कार्रवाइयां करनी होंगी:
- Looker में, प्रोड्यूसर सर्विस अटैचमेंट से जुड़ा पीएससी एंडपॉइंट बनाएं
- Looker Console का इस्तेमाल करके, ऑन-प्रिमाइसेस PostgreSQL डेटाबेस के कनेक्शन की पुष्टि करना
3. नेटवर्क की ज़रूरी शर्तें
नीचे, प्रोड्यूसर नेटवर्क के लिए नेटवर्क से जुड़ी ज़रूरी शर्तों के बारे में बताया गया है. इस कोडलैब में, उपभोक्ता Looker PSC इंस्टेंस है.
कॉम्पोनेंट | ब्यौरा |
वीपीसी (looker-psc-demo) | कस्टम मोड वीपीसी |
वीपीसी (on-prem-demo) | कस्टम मोड वीपीसी |
पीएससी एनएटी सबनेट | उपयोगकर्ता के वीपीसी नेटवर्क से आने वाले पैकेट को सोर्स NAT (एसएनएटी) का इस्तेमाल करके ट्रांसलेट किया जाता है. इससे उनके ओरिजनल सोर्स आईपी पते, प्रोड्यूसर के वीपीसी नेटवर्क में मौजूद NAT सबनेट के सोर्स आईपी पतों में बदल जाते हैं. |
पीएसटी फ़ॉरवर्ड करने के नियम वाला सबनेट | इस कुकी का इस्तेमाल, रीजनल इंटरनल टीसीपी प्रॉक्सी लोड बैलेंसर के लिए आईपी पता असाइन करने के लिए किया जाता है |
पीएससी NEG सबनेट | इस कुकी का इस्तेमाल, नेटवर्क एंडपॉइंट ग्रुप के लिए आईपी पता असाइन करने के लिए किया जाता है |
सिर्फ़ प्रॉक्सी सबनेट | लोड बैलेंसर के हर प्रॉक्सी को एक इंटरनल आईपी पता असाइन किया जाता है. प्रॉक्सी से बैकएंड वीएम या एंडपॉइंट पर भेजे गए पैकेट में, प्रॉक्सी-ओनली सबनेट का सोर्स आईपी पता होता है. |
हाइब्रिड NEG | ऑन-प्रिमाइसेस और अन्य क्लाउड सेवाओं को, Cloud Load Balancing के किसी अन्य बैकएंड की तरह माना जाता है. इन दोनों में मुख्य अंतर यह है कि इन बैकएंड के एंडपॉइंट कॉन्फ़िगर करने के लिए, हाइब्रिड कनेक्टिविटी एनईजी का इस्तेमाल किया जाता है. एंडपॉइंट, मान्य आईपी:पोर्ट कॉम्बिनेशन होने चाहिए. साथ ही, लोड बैलेंसर को इन तक पहुंचने के लिए, हाइब्रिड कनेक्टिविटी वाले प्रॉडक्ट का इस्तेमाल करना चाहिए. जैसे, Cloud वीपीएन या Cloud इंटरकनेक्ट. |
बैकएंड सर्विस | बैकएंड सेवा, लोड बैलेंसर और बैकएंड संसाधनों के बीच एक पुल की तरह काम करती है. ट्यूटोरियल में, बैकएंड सेवा को हाइब्रिड एनईजी से जोड़ा गया है. |
क्लाउड राऊटर |
|
एचए-वीपीएन | Google Cloud वीपीसी नेटवर्क के बीच HA वीपीएन. इस टोपोलॉजी में, हर नेटवर्क में एचए वीपीएन गेटवे का इस्तेमाल करके, दो Google Cloud वीपीसी नेटवर्क कनेक्ट किए जा सकते हैं. VPC नेटवर्क, एक ही इलाके या कई इलाकों में हो सकते हैं. |
Cloud NAT | इस कुकी का इस्तेमाल, इंटरनेट से बाहर निकलने के लिए on-prem-demo VPC करता है |
4. कोडलैब टोपोलॉजी

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



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

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

इस वर्चुअल मशीन में, डेवलपमेंट के लिए ज़रूरी सभी टूल पहले से मौजूद हैं. यह 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 नेटवर्क
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
हाइब्रिड NEG सेट अप करना
हाइब्रिड एनईजी बनाएं और –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
यहां दिया गया फ़ायरवॉल नियम, पीएससी एनएटी सबनेट की रेंज से नेटवर्क के सभी इंस्टेंस तक ट्रैफ़िक को पहुंचने की अनुमति देता है.
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 में, बैकएंड सेवा में हाइब्रिड एनईजी बैकएंड जोड़ें:
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 में पीएससी एंडपॉइंट को कॉन्फ़िगर करने के लिए, projects से शुरू होने वाले 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 → पब्लिश की गई सेवाएं


9. Looker में पीएससी एंडपॉइंट कनेक्शन बनाना
यहां दिए गए सेक्शन में, आपको एक डोमेन के लिए Cloud Shell में –psc-service-attachment फ़्लैग का इस्तेमाल करके, Producers Service Attachment को Looker Core PSC से जोड़ना होगा.
Cloud Shell में, पीएससी असोसिएशन बनाएं. इसके लिए, अपने एनवायरमेंट के हिसाब से इन पैरामीटर को अपडेट करें:
- INSTANCE_NAME: आपके Looker (Google Cloud core) इंस्टेंस का नाम.
- DOMAIN_1: onprem.database1.com
- SERVICE_ATTACHMENT_1: Service Attachment बनाते समय कैप्चर किया गया यूआरआई, onpremdatabase1-svc-attachment
- रीजन: वह रीजन जिसमें आपका 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 में पीएससी एंडपॉइंट की पुष्टि करना
Cloud Console से, पीएससी कनेक्शन की पुष्टि की जा सकती है
Cloud Console में, यहां जाएं:
Looker → Looker इंस्टेंस → जानकारी


ऑन-प्रिमाइसेस वीपीसी नेटवर्क बनाना
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 में, onprem.database1.com के लिए इस्तेमाल किया गया इंटरनल आईपीवी4 पता, 192.168.10.4 रिज़र्व करें:
gcloud compute addresses create on-prem-database1-ip --region=$region --subnet=database-subnet --addresses 192.168.10.4
ऑन-प्रेम-डेमो वीपीसी के लिए Cloud Router बनाएं
सॉफ़्टवेयर पैकेज इंस्टॉल करने के लिए, ट्यूटोरियल में Cloud NAT का इस्तेमाल किया जाता है. ऐसा इसलिए, क्योंकि वीएम इंस्टेंस के पास कोई बाहरी आईपी पता नहीं होता.
Cloud Shell में, Cloud NAT और HA-VPN के साथ इस्तेमाल किया जाने वाला Cloud Router बनाएं:
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 Router, आपके नेटवर्क को कनेक्ट करने के लिए Cloud VPN टनल पर बीजीपी सेशन सेट अप कर सकता है. यह नए सबनेट आईपी पते की रेंज को अपने-आप पहचान लेता है और उन्हें आपके पीयर नेटवर्क पर ब्रॉडकास्ट करता है.
यहां दिए गए चरणों में, looker-psc-demo VPC और on-prem-demo VPC के बीच HA वीपीएन डिप्लॉय किया जाएगा. इससे onprem.database1.com से हाइब्रिड एनईजी कनेक्टिविटी को दिखाया जा सकेगा.
looker-psc-demo के लिए HA VPN GW बनाएं
हर गेटवे के लिए, दो बाहरी IPv4 पते अपने-आप असाइन हो जाते हैं. इनमें से एक पता, हर गेटवे इंटरफ़ेस के लिए होता है.
Cloud Shell में, HA VPN GW बनाएं:
gcloud compute vpn-gateways create looker-psc-demo-vpn-gw \
--network=looker-psc-demo \
--region=$region
ऑन-प्रेम-डेमो के लिए HA VPN GW बनाएं
हर गेटवे के लिए, दो बाहरी IPv4 पते अपने-आप असाइन हो जाते हैं. इनमें से एक पता, हर गेटवे इंटरफ़ेस के लिए होता है.
Cloud Shell में, HA VPN GW बनाएं:
gcloud compute vpn-gateways create on-prem-vpn-gw \
--network=on-prem-demo\
--region=$region
एचए वीपीएन गेटवे बनाने की पुष्टि करना
कंसोल का इस्तेमाल करके, HYBRID CONNECTIVITY → VPN → CLOUD VPN GATEWAYS पर जाएं.

looker-psc-demo के लिए Cloud Router बनाएं
Cloud Shell में, Cloud Router बनाएं:
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
on-prem-demo के लिए वीपीएन टनल बनाएं
आपको हर एचए वीपीएन गेटवे पर दो वीपीएन टनल बनाने होंगे.
वीपीएन टनल बनाएं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 पर जाएं.

11. बीजीपी नेबर को सेट अप करना
looker-psc-demo के लिए, बीजीपी इंटरफ़ेस और पियरिंग बनाना
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
ऑन-प्रेम-डेमो के लिए बीजीपी इंटरफ़ेस और पियरिंग बनाना
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
वीपीएन टनल की जानकारी देखने के लिए, हाइब्रिड कनेक्टिविटी → वीपीएन पर जाएं.

HA VPN पर Looker-psc-demo के सीखे गए रास्तों की पुष्टि करना
HA VPN टनल और बीजीपी सेशन सेट अप हो जाने के बाद, Cloud Router डिफ़ॉल्ट रूप से सबनेट राउट का विज्ञापन दिखाता है. Looker-psc-demo के ज़रिए सीखे गए रास्तों को देखें.
कंसोल का इस्तेमाल करके, VPC नेटवर्क → वीपीसी नेटवर्क → looker-psc-demo → राउट → क्षेत्र → देखें पर जाएं
देखें कि looker-psc-demo ने on-prem-demo वीपीसी से डेटाबेस-सबनेट 192.168.10.0/28 के बारे में जानकारी हासिल कर ली है.

पुष्टि करें कि ऑन-प्रेम-डेमो वीपीसी ने एचए वीपीएन पर रूट सीख लिए हैं
Cloud Router का डिफ़ॉल्ट व्यवहार सभी सबनेट का विज्ञापन करना है. इसलिए, सिर्फ़ प्रॉक्सी सबनेट का विज्ञापन बीजीपी पर किया जाता है. हाइब्रिड एनईजी, server onprem.database1.com से कम्यूनिकेट करते समय, सोर्स पते के तौर पर सिर्फ़ प्रॉक्सी सबनेट का इस्तेमाल करेगा.
Observe on-prem-demo ने looker-psc-demo से, proxy-only-subnet 10.10.10.0/24 के बारे में जानकारी हासिल की है.
कंसोल का इस्तेमाल करके, वीपीसी नेटवर्क → वीपीसी नेटवर्क → on-prem-demo → रूट → क्षेत्र → देखें पर जाएं

12. Looker postgres-database creation
इस सेक्शन में, Cloud Shell का इस्तेमाल करके postgres-database वीएम में एसएसएच किया जाएगा.
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
नीचे दिया गया स्क्रीनशॉट, अपडेट किए गए पेज का है: 
नीचे दिए गए सेक्शन में, postgresql.conf को अनकमेंट करें, ताकि नीचे दिए गए स्क्रीनशॉट के मुताबिक सभी ‘*' आईपी पतों को सुना जा सके:
sudo nano /etc/postgresql/15/main/postgresql.conf
पहले:

बाद में:

ओएस में, postgresql सेवा को रीस्टार्ट करें:
sudo service postgresql restart
OS में, postgresql के चालू होने की पुष्टि करें:
sudo service postgresql status
उदाहरण:
OS में, 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 नाम का एक postgres डेटाबेस और looker_schema नाम का स्कीमा बनाया जाएगा. इनका इस्तेमाल, Looker को ऑन-प्रिमाइसेस कनेक्टिविटी की पुष्टि करने के लिए किया जाता है.
ओएस में, postgres में लॉग इन करें:
sudo -u postgres psql postgres
ओएस में, डेटाबेस बनाएं:
create database postgres_looker;
ओएस में, डेटाबेस की सूची बनाएं:
\l
OS में, 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 के साथ इंटिग्रेट करना
यहां दिए गए सेक्शन में, Looker Console का इस्तेमाल करके, ऑन-प्रिमाइसेस postgres-database इंस्टेंस से डेटाबेस कनेक्शन बनाया जाएगा.
ADMIN → DATABASE → CONNECTIONS → ADD CONNECTION को चुनें
नीचे दिए गए स्क्रीनशॉट के मुताबिक, कनेक्शन की जानकारी भरें. इसके बाद, कनेक्ट करें को चुनें

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

15. Looker कनेक्टिविटी की पुष्टि करना
यहां दिए गए सेक्शन में, Looker के ‘test' ऐक्शन और TCPDUMP का इस्तेमाल करके, यह पुष्टि करने का तरीका बताया गया है कि Looker, ऑन-प्रेम-वीपीसी में postgres-database से कनेक्ट है या नहीं.
अगर सेशन की समयसीमा खत्म हो गई है, तो 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
डेटा कनेक्शन ADMIN → DATABASE → CONNECTIONS → postgres-database → Test पर जाएं
टेस्ट को चुनने के बाद, Looker नीचे दिए गए तरीके से postgres-database से कनेक्ट हो जाएगा:

व्यवस्थित करें
एक ही 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 का इस्तेमाल करके HA-VPN के ज़रिए ऑन-प्रिमाइसेस डेटाबेस से कनेक्टिविटी को कॉन्फ़िगर और पुष्टि कर लिया है.
आपने प्रोड्यूसर इन्फ़्रास्ट्रक्चर बनाया. साथ ही, आपने हाइब्रिड एनईजी, प्रोड्यूसर सर्विस, और Looker पीएससी एंडपॉइंट बनाने का तरीका सीखा. इससे प्रोड्यूसर सर्विस से कनेक्ट किया जा सकता है.
Cosmopup को कोडलैब बहुत पसंद हैं!!

आगे क्या करना है?
यहां दिए गए कुछ कोडलैब आज़माएं...
- सेवाओं को पब्लिश करने और उनका इस्तेमाल करने के लिए Private Service Connect का इस्तेमाल करना
- Private Service Connect और इंटरनल टीसीपी प्रॉक्सी लोड बैलेंसर का इस्तेमाल करके, हाइब्रिड नेटवर्किंग के ज़रिए ऑन-प्रेम सेवाओं से कनेक्ट करना
- पब्लिश किए गए सभी Private Service Connect कोडलैब का ऐक्सेस