Cloud SQL से कनेक्ट करना: सार्वजनिक आईपी और अनुमति वाले नेटवर्क

1. परिचय

पिछली बार अपडेट किए जाने की तारीख: 04-05-2020

कनेक्शन के बारे में सोचना

ऐप्लिकेशन और फ़्रेमवर्क कई तरह के होते हैं. इस कोडलैब में, हम Cloud SQL को कहीं से भी कनेक्ट करने के बारे में जानकारी देंगे. कनेक्ट करने की सुविधा, उन आईपी को अनुमति देकर चालू की जाती है जिन्हें साफ़ तौर पर कनेक्ट करने की अनुमति है. Cloud SQL डेटाबेस से कनेक्ट करने के लिए यह सबसे कम सुरक्षित विकल्प है. हालांकि, इसे सेटअप करना और इस्तेमाल करना भी आसान है.

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

आपको क्या बनाना होगा

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

इन निर्देशों में GCP कंसोल में काम करने के लिए सिलसिलेवार तरीके से निर्देश देने के साथ-साथ, सीएलआई या ऑटोमेशन पर इस्तेमाल करने के लिए gcloud कमांड जैसी जानकारी भी शामिल होगी.

इसके अलग-अलग चरण हैं:

  • Cloud SQL इंस्टेंस बनाएं. यह ट्यूटोरियल, Postgres का इस्तेमाल करता है, लेकिन MySQL या एसक्यूएल सर्वर के लिए इसी तरह काम करता है. साथ ही, यह ऐसे खास आईपी को अनुमति देता है जिन्हें इससे कनेक्ट करने की अनुमति होती है

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

  • ऐसा GCP खाता जिसमें आपके पास एपीआई चालू करने और सेवाएं बनाने की अनुमतियां हों
  • कनेक्टिविटी की पुष्टि करने के लिए, Postgres क्लाइंट को इंस्टॉल किया गया है. इसके अलावा, अगर आपको Postgres के बजाय MySQL का इस्तेमाल करना है, तो कनेक्टिविटी की पुष्टि करने के लिए, MySQL क्लाइंट को इंस्टॉल किया गया हो

2. Cloud SQL इंस्टेंस बनाना

Cloud SQL हमारा मैनेज किया जा रहा रिलेशनल डेटाबेस है. यह MySQL, PostgreSQL, और SQL Server के साथ काम करता है. इस कोडलैब के लिए, हम एक Postgres डेटाबेस बनाएंगे, लेकिन निर्देश इन तीनों के लिए एक जैसे हैं.

कंसोल पर

Cloud SQL पेज पर जाएं और 241836b315e11bf5.png बटन पर क्लिक करें.

जैसा कि मैंने बताया, इस कोडलैब का ज़्यादातर हिस्सा किसी भी एसक्यूएल फ़्लेवर के लिए जेनरिक है, लेकिन इस कोडलैब के लिए PostgreSQL को चुनें.

  1. अपने इंस्टेंस को आईडी दें
  2. अपने आस-पास का इलाका चुनें, जहां आप मौजूद हैं
  3. डिफ़ॉल्ट उपयोगकर्ता के लिए पासवर्ड डालें (चुने गए DB के लिए उपयोगकर्ता नाम डिफ़ॉल्ट रूप से सेट होगा. उदाहरण के लिए, MySQL के लिए root या PostgreSQL के लिए postgres)
  4. नीचे स्क्रोल करें और show configuration options पर क्लिक करें
  5. Connectivity सेक्शन को बड़ा करें
  6. पुष्टि करें कि Public IP पर सही का निशान लगा है और Private IP पर सही का निशान नहीं है
  7. 883b32ec2734de01.pngबटन पर क्लिक करें
  8. जहां से आप कनेक्ट कर रहे हैं, वहां से आईपी पता पाएं. Google पर "मेरा आईपी क्या है" खोजना सबसे आसान है और खोज के नतीजों में सार्वजनिक तौर पर दिखने वाला आईपी पता हो.
  1. नेटवर्क फ़ील्ड में आईपी की खास बातें डालें. अगर आप चाहें, तो इसे कोई नाम दें और New Network बॉक्स में 'हो गया' पर क्लिक करें.
  2. नीचे की ओर स्क्रोल करें और 'बनाएं' पर क्लिक करें

आम तौर पर, इस इंस्टेंस को शुरू होने में कुछ मिनट लगते हैं.

इंस्टेंस बनाने के बाद, सूची में उस पर क्लिक करें और खास जानकारी देने वाले पेज पर, Connect to this instance हेडर के नीचे मौजूद public IP address को कॉपी करें. यह तब तक नहीं दिखेगा, जब तक इंस्टेंस पूरी तरह से तैयार नहीं हो जाता. हालांकि, पूरी तरह इंस्टैंशिएट होने से पहले, जानकारी पर क्लिक करें.

gcloud का इस्तेमाल करना

सबसे पहले, आपको वह आईपी पता हासिल करना होगा जिसे Cloud SQL इंस्टेंस से कनेक्ट करने की अनुमति देनी है. इसका सबसे आसान तरीका यह है कि आप ब्राउज़र खोलें और "मेरा आईपी पता क्या है" खोजें और खोज के नतीजों में सार्वजनिक तौर पर दिखने वाला आपका आईपी पता हो. अगर आपके पास ऐसा ब्राउज़र खोलने की क्षमता नहीं है जहां से आप ऐसा कर रहे हैं, तो आप dig जैसी किसी उपयोगिता का उपयोग कर सकते हैं.

dig @resolver1.opendns.com ANY myip.opendns.com +short -4

आपको अपने Cloud SQL इंस्टेंस के लिए, सबसे नज़दीकी क्षेत्र तय करना होगा. आप इसे चलाकर क्षेत्रों की सूची देख सकते हैं:

gcloud sql tiers list

हर टियर सिर्फ़ कुछ इलाकों में उपलब्ध है. ट्यूटोरियल के gcloud के लिए, हम सिर्फ़ एक माइक्रो इंस्टेंस बना रहे हैं, ताकि आप इस टियर के लिए उपलब्ध क्षेत्रों को खास तौर पर चलाकर देख सकें. ऐसा तब तक हो सकता है, जब तक gRep इंस्टॉल किया गया हो:

gcloud sql tiers list | grep db-f1-micro

इसके बाद, इंस्टेंस बनाने का निर्देश ऐसा दिखने लगता है (<AUTHORIZED_IP> को ब्राउज़र से मिले आईपी पते से, <MONTH> को अपने पास के आईपी से, और रूट उपयोगकर्ता 'postgres' के लिए पासवर्ड से बदलना न भूलें):

gcloud sql instances create sql-codelab-00 --database-version=POSTGRES_11 --tier=db-f1-micro --region=<REGION> --authorized-networks=<AUTHORIZED_IP> --root-password=<PASSWORD>

इस प्रोसेस को पूरा होने में कुछ मिनट लगते हैं.

इसके पूरा होने के बाद, सीएलआई के आउटपुट में इंस्टेंस के PRIMARY_ADDRESS शामिल होंगे. अगले चरण के लिए, इसे कॉपी करें.

3. कनेक्शन की जांच करें और रैप अप पूरा करें

यह पुष्टि करने के लिए कि इंस्टेंस सही तरीके से सेटअप हुआ है या नहीं, उस मशीन से जिसके आईपी पते को आपने डाला है, कमांडलाइन पर चलाएं:

psql "host=<IP पिछले चरण से कॉपी किया गया> पोर्ट=5432 sslmode=disable user=postgres"

इसके बाद, उस डिफ़ॉल्ट उपयोगकर्ता का पासवर्ड डालें जिसे आपने Cloud SQL इंस्टेंस बनाते समय सेट अप किया था.

बधाई हो! अगर सब कुछ ठीक रहता है, तो आपको Postgres प्रॉम्प्ट मिलेगा. साथ ही, आपके पास अपने डेटाबेस के लिए कमांड चलाने की सुविधा होगी.

आगे क्या होगा?

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

पहचान फ़ाइलें