1. परिचय
इस कोडलैब में, आपको H-VPN पर ऑन-प्राइमिस Postgres डेटाबेस से साउथबाउंड कनेक्शन बनाने के लिए, इंटरनल टीसीपी प्रॉक्सी लोड बैलेंसर का इस्तेमाल करना होगा. साथ ही, आपको सेवा उपभोक्ता के तौर पर Looker पीएससी से हाइब्रिड नेटवर्क एंडपॉइंट ग्रुप को भी चालू करना होगा.
Private Service Connect, Google Cloud नेटवर्किंग की एक सुविधा है. इसकी मदद से, उपभोक्ता अपने VPC नेटवर्क से मैनेज की जा रही सेवाओं को निजी तौर पर ऐक्सेस कर सकते हैं. इसी तरह, मैनेज की जाने वाली सेवाओं के प्रोड्यूसर, इन सेवाओं को अपने अलग वीपीएन नेटवर्क में होस्ट कर सकते हैं. साथ ही, अपने उपभोक्ताओं को निजी कनेक्शन भी दे सकते हैं. उदाहरण के लिए, Looker को ऐक्सेस करने के लिए Private Service Connect का इस्तेमाल करने पर, आप सेवा का उपभोक्ता होते हैं और Google सेवा देने वाला होता है. इसकी जानकारी, पहले चित्र में हाइलाइट की गई है.
चित्र 1.
साउथबाउंड ऐक्सेस, जिसे रिवर्स पीएससी भी कहा जाता है, की मदद से उपभोक्ता, पब्लिश की गई सेवा को प्रोड्यूसर के तौर पर बना सकता है. इससे Looker को, ऑन-प्राइमिस, VPC, मैनेज की जाने वाली सेवाओं, और हाइब्रिड एंडपॉइंट का ऐक्सेस मिलता है. साउथबाउंड कनेक्शन किसी भी क्षेत्र में डिप्लॉय किए जा सकते हैं. भले ही, Looker PSC को किसी भी जगह पर डिप्लॉय किया गया हो, जैसा कि दूसरे चित्र में हाइलाइट किया गया है.
चित्र 2.
आपको इनके बारे में जानकारी मिलेगी
- नेटवर्क की ज़रूरी शर्तें
- Private Service Connect प्रोड्यूसर सेवा बनाना
- Looker में Private Service Connect एंडपॉइंट बनाना
- टेस्ट कनेक्शन का इस्तेमाल करके, Looker से ऑन-प्राइमिस PostgreSQL डेटाबेस से कनेक्ट करना
आपको इन चीज़ों की ज़रूरत होगी
- मालिकाना हक वाली अनुमतियों वाला Google Cloud प्रोजेक्ट
- मौजूदा Looker PSC इंस्टेंस
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 इंटरकनेक्ट जैसे हाइब्रिड कनेक्टिविटी प्रॉडक्ट का इस्तेमाल करके, एंडपॉइंट तक पहुंच सकता है. |
बैकएंड सेवा | बैकएंड सेवा, आपके लोड बैलेंसर और बैकएंड संसाधनों के बीच ब्रिज के तौर पर काम करती है. ट्यूटोरियल में, बैकएंड सेवा को हाइब्रिड एनईजी से जोड़ा गया है. |
क्लाउड राऊटर |
|
HA-VPN | Google Cloud VPC नेटवर्क के बीच एचए वीपीएन. इस टोपोलॉजी में, हर नेटवर्क में एचए वीपीएन गेटवे का इस्तेमाल करके, दो 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 के संसाधनों/एपीआई का इस्तेमाल करने के लिए, Cloud Console में बिलिंग की सुविधा चालू करनी होगी. इस कोडलैब को चलाने के लिए, आपसे कोई शुल्क नहीं लिया जाएगा. इस ट्यूटोरियल के बाद बिलिंग से बचने के लिए, बनाए गए संसाधनों को बंद किया जा सकता है या प्रोजेक्ट को मिटाया जा सकता है. Google Cloud के नए उपयोगकर्ता, 300 डॉलर के मुफ़्त ट्रायल वाले कार्यक्रम में शामिल हो सकते हैं.
Cloud Shell शुरू करना
Google Cloud को आपके लैपटॉप से रिमोट तौर पर इस्तेमाल किया जा सकता है. हालांकि, इस कोडलैब में आपको Google Cloud Shell का इस्तेमाल करना होगा. यह Cloud में चलने वाला कमांड-लाइन एनवायरमेंट है.
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 नेटवर्क बनाना
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 → पब्लिश की गई सेवाएं
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 इंस्टेंस → जानकारी
ऑन-प्रीमिस वीपीएन नेटवर्क बनाना
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 पर जाएं.
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 पर जाएं.
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
वीपीएन टनल की जानकारी देखने के लिए, हाइब्रिड कनेक्टिविटी → वीपीएन पर जाएं.
एचए वीपीएन पर, looker-psc-demo से सीखे गए रास्तों की पुष्टि करना
अब एचए वीपीएन टनल और बीजीपी सेशन सेट अप हो चुके हैं. इसलिए, क्लाउड राऊटर का डिफ़ॉल्ट व्यवहार, सबनेट रूट का विज्ञापन करना है. looker-psc-demo से सीखे गए रास्ते देखें.
कंसोल का इस्तेमाल करके, VPC नेटवर्क → VPC नेटवर्क → looker-psc-demo → रूट → क्षेत्र → व्यू पर जाएं
देखें कि looker-psc-demo ने on-prem-demo VPC से डेटाबेस-सबनेट 192.168.10.0/28 को सीखा है.
पुष्टि करना कि ऑन-प्रीम डेमो वीपीसी ने एचए वीपीएन के ज़रिए रूट सीखे हैं
क्लाउड राउटर का डिफ़ॉल्ट काम सभी सबनेट का विज्ञापन करना है. इसलिए, सिर्फ़ प्रॉक्सी सबनेट का विज्ञापन BGP पर किया जाता है. हाइब्रिड एनईजी, onprem.database1.com सर्वर से संपर्क करते समय, सोर्स पते के तौर पर सिर्फ़ प्रॉक्सी सबनेट का इस्तेमाल करेगा.
देखें कि on-prem-demo ने looker-psc-demo से, सिर्फ़ प्रॉक्सी-सबनेट 10.10.10.0/24 को सीखा है.
कंसोल का इस्तेमाल करके, VPC नेटवर्क → VPC नेटवर्क → on-prem-demo → रूट → क्षेत्र → व्यू पर जाएं
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
यहां दिए गए स्क्रीनशॉट में, अपडेट की पूरी प्रक्रिया दिखाई गई है:
नीचे दिए गए सेक्शन में, postgresql.conf से टिप्पणी हटाएं, ताकि नीचे दिए गए स्क्रीनशॉट के मुताबिक, सभी ‘*' आईपी पतों को सुना जा सके:
sudo nano /etc/postgresql/15/main/postgresql.conf
पहले:
बाद में:
ओएस में, 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 का इस्तेमाल करना होगा.
एडमिन पेज → डेटाबेस → कनेक्शन → कनेक्शन जोड़ें को चुनें
नीचे दिए गए स्क्रीनशॉट के मुताबिक, कनेक्शन की जानकारी भरें और कनेक्ट करें को चुनें
कनेक्शन अब कॉन्फ़िगर हो गया है
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 से कनेक्ट हो जाएगा, जैसा कि यहां दिखाया गया है:
व्यवस्थित करें
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 को लगता है कि कोडलैब शानदार हैं!!
आगे क्या करना है?
इनमें से कुछ कोडलैब देखें...
- सेवाओं को पब्लिश और इस्तेमाल करने के लिए, Private Service Connect का इस्तेमाल करना
- Private Service Connect और किसी इंटरनल टीसीपी प्रॉक्सी लोड बैलेंसर का इस्तेमाल करके, हाइब्रिड नेटवर्किंग की मदद से ऑन-प्रीमिस सेवाओं से कनेक्ट करना
- पब्लिश किए गए सभी Private Service Connect कोडलैब का ऐक्सेस