क्लाउड रन जॉब के साथ AlloyDB डेटाबेस बनाना

1. खास जानकारी

इस लैब में, आपको Cloud Run जॉब के साथ AlloyDB का डेटाबेस बनाना चाहिए. आपको निजी सेवाओं के ऐक्सेस और सर्वरलेस (VPC) के बिना ऐक्सेस को कॉन्फ़िगर करना होगा, ताकि निजी आईपी का इस्तेमाल करके, Cloud Run जॉब और AlloyDB डेटाबेस के बीच कनेक्टिविटी चालू की जा सके.

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

इस लैब में, आपको इन कामों को करने का तरीका पता चलेगा:

  • AlloyDB क्लस्टर और इंस्टेंस सेटअप करना
  • AlloyDB डेटाबेस बनाने के लिए क्लाउड रन जॉब डिप्लॉय करें

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

Cloud प्रोजेक्ट का सेटअप

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

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

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

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

खोज बार की दाईं ओर मौजूद आइकॉन पर क्लिक करके, Cloud Shell को चालू करें.

eb0157a992f16fa3.png

Service API चालू करने के लिए, नीचे दिए गए कमांड को कॉपी करके टर्मिनल में चिपकाएं और Enter दबाएं:

gcloud services enable \
    alloydb.googleapis.com \
    artifactregistry.googleapis.com \
    cloudbuild.googleapis.com \
    run.googleapis.com \
    vpcaccess.googleapis.com \
    compute.googleapis.com \
    servicenetworking.googleapis.com \
    --quiet

एनवायरमेंट वैरिएबल सेट करें:

export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
export PROJECT_NAME=$(gcloud projects describe $PROJECT_ID --format='value(name)')
export DB_DATABASE=test
export DB_USER=postgres
export DB_PASSWORD=password123
export REGION=us-central1
export CLUSTER=test-cluster
export INSTANCE=test-instance
export VPC_CONNECTOR=vpcconnector

3. AlloyDB क्लस्टर सेट अप करना और बनाना

सेटअप के लिए ज़रूरी अनुमतियां सेट करें. ऐसा करने से क्लाउड रन जॉब, AlloyDB के डेटाबेस से कनेक्ट हो जाएगा.

gcloud projects add-iam-policy-binding $PROJECT_NAME \
  --member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
  --role="roles/alloydb.client"

निजी सेवाओं का ऐक्सेस कॉन्फ़िगर करें

निजी सेवाओं के ऐक्सेस को आपके VPC नेटवर्क और पहले से मौजूद Google Cloud VPC नेटवर्क के बीच, VPC पीयरिंग कनेक्शन के तौर पर लागू किया जाता है, जहां आपके AlloyDB के संसाधन (क्लस्टर और इंस्टेंस) मौजूद होते हैं. निजी कनेक्शन आपके VPC नेटवर्क में मौजूद संसाधनों को AlloyDB के उन संसाधनों से संपर्क करने की सुविधा देता है जिन्हें वे खास तौर पर इंटरनल आईपी पतों का इस्तेमाल करके ऐक्सेस करते हैं. AlloyDB के संसाधनों तक पहुंचने के लिए आपके VPC नेटवर्क के संसाधनों को इंटरनेट ऐक्सेस या बाहरी आईपी पतों की ज़रूरत नहीं है.

AlloyDB के उसी Cloud प्रोजेक्ट में मौजूद VPC नेटवर्क में निजी सेवाओं का ऐक्सेस कॉन्फ़िगरेशन बनाने के लिए, आपको दो काम करने होंगे:

VPC नेटवर्क में, तय किए गए आईपी पते की रेंज बनाएं.

gcloud compute addresses create google-managed-services-default \
    --global \
    --purpose=VPC_PEERING \
    --prefix-length=20 \
    --network=projects/$PROJECT_ID/global/networks/default

VPC नेटवर्क और दिए गए Google Cloud VPC नेटवर्क के बीच, निजी कनेक्शन बनाएं. इस चरण में ~2 मिनट लगते हैं.

gcloud services vpc-peerings connect \
    --service=servicenetworking.googleapis.com \
    --ranges=google-managed-services-default \
    --network=default \
    --project=$PROJECT_ID

AlloyDB क्लस्टर बनाएं.

gcloud beta alloydb clusters create $CLUSTER \
    --password=$DB_PASSWORD \
    --network=default \
    --region=$REGION \
    --project=$PROJECT_NAME

gcloud beta alloydb clusters describe $CLUSTER --region=$REGION

AlloyDB का एक इंस्टेंस बनाएं. इस चरण को पूरा करने में ~10 मिनट लगते हैं.

gcloud beta alloydb instances create $INSTANCE \
    --cluster=$CLUSTER \
    --region=$REGION \
    --instance-type=PRIMARY \
    --cpu-count=2 \
    --project=$PROJECT_NAME

gcloud beta alloydb instances describe $INSTANCE \
    --cluster=$CLUSTER \
    --region $REGION

Cloud Console में बनाए गए क्लस्टर की समीक्षा करें.

568d273c0e0d6408.png

डेटाबेस के आईपी पते को वैरिएबल में सेव करें.""

export DB_HOST=$(gcloud beta alloydb instances describe $INSTANCE \
    --cluster=$CLUSTER \
    --region=$REGION \
    --format=json | jq \
    --raw-output ".ipAddress")

echo "DB_HOST=$DB_HOST"

4. Cloud Run जॉब कोड को एक्सप्लोर करें

AlloyDB डेटाबेस बनाने के कई तरीके हैं. पहला तरीका, Compute Engine वीएम बनाना, psql क्लाइंट इंस्टॉल करना, और फिर डेटाबेस बनाने के लिए इंस्टेंस से कनेक्ट करना. इस तरीके के बारे में ज़्यादा जानने के लिए, यहां जाएं.

इस लैब में, आप Cloud Run जॉब का इस्तेमाल करके, एक नया AlloyDB डेटाबेस बनाएंगे.

नीचे दी गई फ़ाइलों की समीक्षा करें:

  • Dockerfile - ज़रूरी डिपेंडेंसी(postgresql-client) इंस्टॉल करता है
  • script.sh - डेटाबेस बनाने के लिए कमांड लाइन यूटिलिटी का इस्तेमाल करता है

Cloud Shell में, नया फ़ोल्डर बनाएं:

mkdir ~/alloy-db-cloud-run-job
cd ~/alloy-db-cloud-run-job 

नई फ़ाइल Dockerfile बनाएं:

cat > Dockerfile <<EOF
FROM ubuntu:latest
RUN apt-get update && apt-get install -y postgresql-client && apt-get clean
COPY script.sh /
RUN chmod +x /script.sh
CMD ["/script.sh"]
ENTRYPOINT ["/bin/bash"]
EOF

नीचे दिए गए कॉन्टेंट वाली नई फ़ाइल script.sh बनाएं:

echo "Connecting to $DB_HOST"
createdb -h $DB_HOST -p 5432 $PGDB
echo "Created $PGDB database"

psql -h $DB_HOST -l

script.sh पर अनुमति बदलें:

chmod +x script.sh

5. क्लाउड रन जॉब डिप्लॉय करें

सर्वर के बिना VPC ऐक्सेस करने की सुविधा कॉन्फ़िगर करें. यह क्लाउड रन जॉब को अंदरूनी/निजी आईपी का इस्तेमाल करके, AlloyDB क्लस्टर के साथ संपर्क करने में मदद करता है. इस चरण में ~2 मिनट लगते हैं.

gcloud compute networks vpc-access connectors create ${VPC_CONNECTOR} \
    --region=${REGION} \
    --range=10.8.0.0/28

कंटेनर की इमेज सेव करने के लिए, Artifact Registry का डेटा स्टोर करने की जगह बनाएं.

gcloud artifacts repositories create db-job-repository \
  --repository-format=docker \
  --location=$REGION

Artifact Registry पर जाकर कंटेनर इमेज बनाएं और पब्लिश करें.

gcloud builds submit -t $REGION-docker.pkg.dev/$PROJECT_NAME/db-job-repository/db-job:latest

क्लाउड रन जॉब डिप्लॉय करें.

gcloud beta run jobs create db-job \
    --image=$REGION-docker.pkg.dev/$PROJECT_NAME/db-job-repository/db-job:latest \
    --set-env-vars DB_HOST=$DB_HOST \
    --set-env-vars PGUSER=$DB_USER \
    --set-env-vars PGPASSWORD=$DB_PASSWORD \
    --set-env-vars PGDB=$DB_DATABASE \
    --vpc-connector $VPC_CONNECTOR \
    --region $REGION

जॉब बनाने के लिए इस्तेमाल किए गए फ़्लैग की समीक्षा करें:

--vpc-connector - Cloud Run जॉब, AlloyDB के निजी आईपी पते तक पहुंचने के लिए VPC कनेक्टर का इस्तेमाल करेगा.

Cloud Console में बनाई गई नौकरी की समीक्षा करें.

93d8224eca8c687f.png

test डेटाबेस बनाने के लिए, Cloud Run जॉब चलाएं.

gcloud beta run jobs execute db-job --region $REGION

Cloud Console में, Cloud Run जॉब लॉग की समीक्षा करें.

3f2269736b53f44c.png

6. बधाई हो!

बधाई हो, आपने कोडलैब पूरा कर लिया है!

हमने इन विषयों के बारे में बताया:

  • AlloyDB क्लस्टर और इंस्टेंस बनाने का तरीका
  • Cloud Run जॉब का इस्तेमाल करके, AlloyDB डेटाबेस बनाने का तरीका

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

इस ट्यूटोरियल में इस्तेमाल किए गए संसाधनों के लिए, आपके Google Cloud खाते पर शुल्क न लगे. इसके लिए, उस प्रोजेक्ट को मिटा दें जिसमें संसाधन शामिल हैं या प्रोजेक्ट को बनाए रखें और अलग-अलग संसाधनों को मिटाएं.

प्रोजेक्ट मिटाया जा रहा है

बिलिंग हटाने का सबसे आसान तरीका, ट्यूटोरियल के लिए बनाए गए प्रोजेक्ट को मिटाना है.