কিভাবে AlloyDB এর জন্য একটি প্রাইভেট সার্ভিস কানেক্ট তৈরি করবেন

১. ভূমিকা

এই কোডল্যাবে আপনি শিখবেন কিভাবে AlloyDB-এর জন্য একটি প্রাইভেট সার্ভিস কানেকশন ডেপ্লয় করতে হয় এবং ডেপ্লয় করা প্রাইভেট সার্ভিস কানেকশনটি ব্যবহার করে কিভাবে AlloyDB সার্ভিসটি অ্যাক্সেস করতে হয়।

1cd460fc0abeee2c.png

প্রাইভেট সার্ভিস কানেক্ট সম্পর্কে আরও তথ্য আপনি এখানে পেতে পারেন।

পূর্বশর্ত

  • গুগল ক্লাউড কনসোল সম্পর্কে প্রাথমিক ধারণা
  • কমান্ড লাইন ইন্টারফেস এবং গুগল ক্লাউড শেলে প্রাথমিক দক্ষতা

আপনি যা শিখবেন

  • কীভাবে একটি AlloyDB ক্লাস্টার এবং ইনস্ট্যান্স স্থাপন করবেন
  • কীভাবে একটি প্রাইভেট সার্ভিস কানেক্ট স্থাপন করবেন
  • প্রাইভেট সার্ভিস কানেক্টের মাধ্যমে একটি ভিএম থেকে অ্যালয়ডিবি ইনস্ট্যান্সে কীভাবে সংযোগ করবেন

আপনার যা যা লাগবে

  • একটি গুগল ক্লাউড অ্যাকাউন্ট এবং গুগল ক্লাউড প্রজেক্ট
  • ক্রোমের মতো একটি ওয়েব ব্রাউজার

২. সেটআপ এবং প্রয়োজনীয়তা

স্ব-গতিতে পরিবেশ সেটআপ

  1. Google Cloud Console- এ সাইন-ইন করুন এবং একটি নতুন প্রজেক্ট তৈরি করুন অথবা বিদ্যমান কোনো প্রজেক্ট পুনরায় ব্যবহার করুন। যদি আপনার আগে থেকে Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে।

295004821bab6a87.png37d264871000675d.png5e3ff691252acf41.png

  • প্রজেক্টের নামটি হলো এই প্রজেক্টের অংশগ্রহণকারীদের প্রদর্শিত নাম। এটি একটি ক্যারেক্টার স্ট্রিং যা গুগল এপিআই ব্যবহার করে না। আপনি যেকোনো সময় এটি আপডেট করতে পারেন।
  • সমস্ত গুগল ক্লাউড প্রজেক্ট জুড়ে প্রজেক্ট আইডি অবশ্যই অনন্য হতে হবে এবং এটি অপরিবর্তনীয় (একবার সেট করার পর পরিবর্তন করা যাবে না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত এটি কী তা নিয়ে আপনার মাথা ঘামানোর দরকার নেই। বেশিরভাগ কোডল্যাবে, আপনাকে প্রজেক্ট আইডি উল্লেখ করতে হবে (এটি সাধারণত PROJECT_ID হিসাবে চিহ্নিত করা হয়)। তৈরি করা আইডিটি আপনার পছন্দ না হলে, আপনি এলোমেলোভাবে আরেকটি তৈরি করতে পারেন। বিকল্পভাবে, আপনি নিজের আইডি দিয়ে চেষ্টা করে দেখতে পারেন যে সেটি উপলব্ধ আছে কিনা। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রজেক্টের পুরো সময়কাল জুড়ে এটি অপরিবর্তিত থাকবে।
  • আপনার অবগতির জন্য জানাচ্ছি যে, তৃতীয় একটি ভ্যালু রয়েছে, যা হলো প্রজেক্ট নাম্বার এবং কিছু এপিআই এটি ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি ভ্যালু সম্পর্কে আরও বিস্তারিত জানুন।

সতর্কতা: একটি প্রজেক্ট আইডি বিশ্বব্যাপী অনন্য এবং একবার আপনি এটি নির্বাচন করলে অন্য কেউ তা ব্যবহার করতে পারবে না। আপনিই সেই আইডির একমাত্র ব্যবহারকারী। এমনকি কোনো প্রজেক্ট মুছে ফেলা হলেও, আইডিটি পুনরায় ব্যবহার করা যাবে না।

  1. এরপর, ক্লাউড রিসোর্স/এপিআই ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং চালু করতে হবে। এই কোডল্যাবটি সম্পন্ন করতে খুব বেশি খরচ হবে না, এমনকি আদৌ কোনো খরচ নাও হতে পারে। এই টিউটোরিয়ালের পর বিলিং এড়াতে রিসোর্সগুলো বন্ধ করার জন্য, আপনি আপনার তৈরি করা রিসোর্সগুলো অথবা প্রজেক্টটি ডিলিট করে দিতে পারেন। নতুন গুগল ক্লাউড ব্যবহারকারীরা ৩০০ মার্কিন ডলারের ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য।

ক্লাউড শেল শুরু করুন

যদিও গুগল ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালনা করা যায়, এই কোডল্যাবে আপনি গুগল ক্লাউড শেল ব্যবহার করবেন, যা ক্লাউডে চালিত একটি কমান্ড লাইন পরিবেশ।

গুগল ক্লাউড কনসোল থেকে, উপরের ডানদিকের টুলবারে থাকা ক্লাউড শেল আইকনটিতে ক্লিক করুন:

55efc1aaa7a4d3ad.png

পরিবেশটি প্রস্তুত করতে এবং এর সাথে সংযোগ স্থাপন করতে মাত্র কয়েক মুহূর্ত সময় লাগবে। এটি শেষ হলে, আপনি এইরকম কিছু দেখতে পাবেন:

7ffe5cbb04455448.png

এই ভার্চুয়াল মেশিনটিতে আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুলস লোড করা আছে। এটি একটি স্থায়ী ৫ জিবি হোম ডিরেক্টরি প্রদান করে এবং গুগল ক্লাউডে চলে, যা নেটওয়ার্ক পারফরম্যান্স ও অথেনটিকেশনকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার সমস্ত কাজ একটি ব্রাউজারের মধ্যেই করা যাবে। আপনাকে কিছুই ইনস্টল করতে হবে না।

৩. শুরু করার আগে

এপিআই সক্ষম করুন

অনুগ্রহ করে মনে রাখবেন যে, আপনি যদি প্রচারমূলক স্তরটি ব্যবহার না করেন, তবে আপনার সক্রিয় করা কিছু রিসোর্সের জন্য খরচ প্রযোজ্য হবে। স্বাভাবিক পরিস্থিতিতে, ল্যাবটি শেষ হওয়ার পর যদি সমস্ত রিসোর্স ধ্বংস করে ফেলা হয়, তবে সমস্ত রিসোর্সের খরচ $5-এর বেশি হবে না। আমরা আপনাকে আপনার বিলিং পরীক্ষা করে নিশ্চিত হতে পরামর্শ দিচ্ছি যে এই অনুশীলনটি আপনার জন্য গ্রহণযোগ্য।

ক্লাউড শেলের ভিতরে, নিশ্চিত করুন যে আপনার প্রজেক্ট আইডি সেটআপ করা আছে:

সাধারণত ক্লাউড শেলের কমান্ড প্রম্পটে প্রজেক্ট আইডিটি বন্ধনীর মধ্যে দেখানো হয়, যেমনটি ছবিতে দেখানো হয়েছে:

edbf16c09a01fbab.png

gcloud config set project [YOUR-PROJECT-ID]

একটি উইন্ডো পপ আপ হবে যেখানে ক্লাউড শেল অনুমোদনের জন্য অনুরোধ করা হবে। অনুগ্রহ করে Authorize- এ ক্লিক করুন।

33fbeb082b3aac19.png

এরপর PROJECT_ID এনভায়রনমেন্ট ভেরিয়েবলটি আপনার গুগল ক্লাউড প্রজেক্ট আইডিতে সেট করুন:

PROJECT_ID=$(gcloud config get-value project)

আপনার পছন্দের অঞ্চল এবং জোন অনুযায়ী REGION এবং ZONE এনভায়রনমেন্ট ভেরিয়েবল সেট করুন:

REGION=europe-west4
ZONE=europe-west4-a

সকল প্রয়োজনীয় পরিষেবা সক্রিয় করুন:

gcloud services enable compute.googleapis.com \
                       alloydb.googleapis.com \
                       dns.googleapis.com \
                       servicenetworking.googleapis.com \
                       iam.googleapis.com 

প্রত্যাশিত আউটপুট:

student@cloudshell:~ (psc-alloydb-test)$ gcloud services enable compute.googleapis.com \
                       alloydb.googleapis.com \
                       dns.googleapis.com \
                       servicenetworking.googleapis.com \
                       iam.googleapis.com
Operation "operations/acat.p2-981315804223-09b8112e-2c2c-4a30-9018-c27e6a06c199" finished successfully.

৪. একটি AlloyDB ক্লাস্টার স্থাপন করুন

ক্লাউড শেলে আপনি কমান্ড লাইন ব্যবহার করে প্রাইভেট সার্ভিস কানেক্ট সক্রিয় করে একটি নতুন AlloyDB ক্লাস্টার তৈরি করতে পারেন:

gcloud alloydb clusters create alloydb-cluster-01 \
    --password=changeme \
    --region=$REGION \
    --project=$PROJECT_ID \
    --enable-private-service-connect

প্রত্যাশিত আউটপুট

student@cloudshell:~ (psc-alloydb-test)$   gcloud alloydb clusters create alloydb-cluster-01 \
    --password=changeme \
    --region=$REGION \
    --project=$PROJECT_ID \
    --enable-private-service-connect
Operation ID: operation-1739367760591-62df21d80fae8-9aa7c3ab-64604bae
Creating cluster...done.

এখন একটি AlloyDB প্রাইমারি ইনস্ট্যান্স তৈরি করুন:

gcloud alloydb instances create alloydb-instance-01 \
      --instance-type=PRIMARY \
      --cpu-count=2 \
      --availability-type=ZONAL \
      --region=$REGION \
      --cluster=alloydb-cluster-01 \
      --project=$PROJECT_ID \
      --allowed-psc-projects=$PROJECT_ID

প্রত্যাশিত আউটপুট

student@cloudshell:~ (psc-alloydb-test)$   gcloud alloydb instances create alloydb-instance-01 \
      --instance-type=PRIMARY \
      --cpu-count=2 \
      --availability-type=ZONAL \
      --region=$REGION \
      --cluster=alloydb-cluster-01 \
      --project=$PROJECT_ID \
      --allowed-psc-projects=$PROJECT_ID
Operation ID: operation-1739368280521-62df23c7e7bda-7e52597c-8c7d9d79
Creating instance...done.

৫. প্রাইভেট সার্ভিস কানেক্ট সেটআপ করুন

নিম্নলিখিত নেটওয়ার্ক-সম্পর্কিত কাজগুলোর জন্য ধরে নেওয়া হচ্ছে যে, 'default' নামের একটি VPC বিদ্যমান আছে।

একটি অভ্যন্তরীণ আইপি ঠিকানা সংরক্ষণ করুন

REGION এনভায়রনমেন্ট ভেরিয়েবলে উল্লেখিত GCP রিজিয়নে VPC সাবনেট CIDR রেঞ্জটি খুঁজুন এবং প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্টের জন্য এই CIDR রেঞ্জের মধ্যে একটি খালি IP অ্যাড্রেস বেছে নিন:

gcloud compute networks subnets describe default \
             --region=$REGION --project=$PROJECT_ID \
             --format="value(ipCidrRange)"

প্রত্যাশিত আউটপুট

student@cloudshell:~ (psc-cloud-sql-test)$ gcloud compute networks subnets describe default \
             --region=$REGION --project=$PROJECT_ID \
             --format="value(ipCidrRange)"
10.164.0.0/20

উপরে উল্লিখিত ডিরাইভড ভিপিসি সাবনেট সিআইডিআর রেঞ্জে প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্টের জন্য একটি অভ্যন্তরীণ আইপি অ্যাড্রেস রিজার্ভ করুন:

gcloud compute addresses create alloydb-psc \
--project=$PROJECT_ID \
--region=$REGION \
--subnet=default \
--addresses=10.164.0.10

প্রত্যাশিত আউটপুট

student@cloudshell:~ (psc-alloydb-test)$ gcloud compute addresses create alloydb-psc \
--project=$PROJECT_ID \
--region=$REGION \
--subnet=default \
--addresses=10.164.0.10
Created [https://www.googleapis.com/compute/v1/projects/psc-alloydb-test/regions/europe-west4/addresses/alloydb-psc].

যাচাই করুন যে অভ্যন্তরীণ আইপি ঠিকানাটি সংরক্ষিত আছে এবং আইপি ঠিকানাটির জন্য 'RESERVED' স্ট্যাটাসটি দেখা যাচ্ছে।

gcloud compute addresses list --project=$PROJECT_ID \
     --filter="name=alloydb-psc"

প্রত্যাশিত আউটপুট

student@cloudshell:~ (psc-alloydb-test)$ gcloud compute addresses list --project=$PROJECT_ID \
--filter="name=alloydb-psc"
NAME: alloydb-psc
ADDRESS/RANGE: 10.164.0.10
TYPE: INTERNAL
PURPOSE: GCE_ENDPOINT
NETWORK: 
REGION: europe-west4
SUBNET: default
STATUS: RESERVED

সার্ভিস অ্যাটাচমেন্ট URI পান

প্রাইভেট সার্ভিস কানেক্ট সক্রিয় করে একটি AlloyDB ইনস্ট্যান্স তৈরি করার পর, সার্ভিস অ্যাটাচমেন্ট URI-টি নিন এবং সেটি ব্যবহার করে উপরে উল্লিখিত সংরক্ষিত অভ্যন্তরীণ IP ঠিকানা সহ প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্টটি তৈরি করুন।

gcloud alloydb instances describe alloydb-instance-01 \
    --cluster=alloydb-cluster-01 \
    --region="$REGION" \
    --format="value(pscInstanceConfig.serviceAttachmentLink)" | \
    sed 's|.*/projects/|projects/|'

প্রত্যাশিত আউটপুট

student@cloudshell:~ (psc-alloydb-test)$ gcloud alloydb instances describe alloydb-instance-01 \
    --cluster=alloydb-cluster-01 \
    --region="$REGION" \
    --format="value(pscInstanceConfig.serviceAttachmentLink)" | \
    sed 's|.*/projects/|projects/|'
projects/se8c7a64d55e2e1f9p-tp/regions/europe-west4/serviceAttachments/alloydb-69f67b56-9fa-alloydb-instance-sa

ব্যক্তিগত পরিষেবা সংযোগ তৈরি করুন

প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট তৈরি করুন এবং এটিকে AlloyDB সার্ভিস অ্যাটাচমেন্ট URI-এর দিকে নির্দেশ করুন:

gcloud compute forwarding-rules create alloydb-psc-ep \
--address=alloydb-psc \
--project=$PROJECT_ID \
--region=$REGION \
--network=default \
--target-service-attachment=projects/se8c7a64d55e2e1f9p-tp/regions/europe-west4/serviceAttachments/alloydb-69f67b56-9fa-alloydb-instance-sa \
--allow-psc-global-access

প্রত্যাশিত আউটপুট

student@cloudshell:~ (psc-alloydb-test)$ gcloud compute forwarding-rules create alloydb-psc-ep \
--address=alloydb-psc \
--project=$PROJECT_ID \
--region=$REGION \
--network=default \
--target-service-attachment=projects/se8c7a64d55e2e1f9p-tp/regions/europe-west4/serviceAttachments/alloydb-69f67b56-9fa-alloydb-instance-sa \
--allow-psc-global-access
Created [https://www.googleapis.com/compute/v1/projects/psc-alloydb-test/regions/europe-west4/forwardingRules/alloydb-psc-ep].

এন্ডপয়েন্টটি সার্ভিস অ্যাটাচমেন্টের সাথে সংযোগ করতে পারে কিনা তা যাচাই করুন:

gcloud compute forwarding-rules describe alloydb-psc-ep \
--project=$PROJECT_ID \
--region=$REGION \
--format="value(pscConnectionStatus)"

প্রত্যাশিত আউটপুট

student@cloudshell:~ (psc-alloydb-test)$ gcloud compute forwarding-rules describe alloydb-psc-ep \
--project=$PROJECT_ID \
--region=$REGION \
--format="value(pscConnectionStatus)"
ACCEPTED

একটি DNS পরিচালিত জোন কনফিগার করুন

AlloyDB ইনস্ট্যান্সের জন্য প্রস্তাবিত DNS নামটি যোগ করতে, সংশ্লিষ্ট VPC নেটওয়ার্কে একটি প্রাইভেট DNS জোন তৈরি করাই শ্রেয়।

gcloud dns managed-zones create alloydb-dns \
--project=$PROJECT_ID \
--description="DNS zone for the AlloyDB instances" --dns-name=$REGION.alloydb-psc.goog. \
--networks=default \
--visibility=private

প্রত্যাশিত আউটপুট

student@cloudshell:~ (psc-alloydb-test)$ gcloud dns managed-zones create alloydb-dns \
--project=$PROJECT_ID \
--description="DNS zone for the AlloyDB instances" --dns-name=$REGION.alloydb-psc.goog. \
--networks=default \
--visibility=private
Created [https://dns.googleapis.com/dns/v1/projects/psc-alloydb-test/managedZones/alloydb-dns].

প্রাইভেট সার্ভিস কানেক্টের জন্য একটি ডিএনএস রেকর্ড যোগ করুন

AlloyDB ইনস্ট্যান্সের জন্য প্রস্তাবিত DNS রেকর্ডটি নিন:

gcloud alloydb instances describe alloydb-instance-01 \
--cluster=alloydb-cluster-01 --region=$REGION --project=$PROJECT_ID \
--format="value(pscInstanceConfig.pscDnsName)"

প্রত্যাশিত আউটপুট

student@cloudshell:~ (psc-alloydb-test)$ gcloud alloydb instances describe alloydb-instance-01 \
--cluster=alloydb-cluster-01 --region=$REGION --project=$PROJECT_ID \
--format="value(pscInstanceConfig.pscDnsName)"
69f67b56-9fa2-4480-89f6-3f1a38ee51cb.6a495301-4802-4ec1-bb9b-69b57d2616ec.europe-west4.alloydb-psc.goog.

প্রস্তাবিত DNS রেকর্ডটি DNS পরিচালিত জোনে যোগ করুন।

gcloud dns record-sets create 69f67b56-9fa2-4480-89f6-3f1a38ee51cb.6a495301-4802-4ec1-bb9b-69b57d2616ec.europe-west4.alloydb-psc.goog. \
--project=$PROJECT_ID \
--type=A \
--rrdatas=10.164.0.10 \
--zone=alloydb-dns

প্রত্যাশিত আউটপুট

student@cloudshell:~ (psc-alloydb-test)$ gcloud dns record-sets create 69f67b56-9fa2-4480-89f6-3f1a38ee51cb.6a495301-4802-4ec1-bb9b-69b57d2616ec.europe-west4.alloydb-psc.goog. \
--project=$PROJECT_ID \
--type=A \
--rrdatas=10.164.0.10 \
--zone=alloydb-dns
NAME: 69f67b56-9fa2-4480-89f6-3f1a38ee51cb.6a495301-4802-4ec1-bb9b-69b57d2616ec.europe-west4.alloydb-psc.goog.
TYPE: A
TTL: 0
DATA: 10.164.0.10

৬. গুগল কম্পিউট ইঞ্জিন ভার্চুয়াল মেশিন প্রস্তুত করুন।

গুগল কম্পিউট ইঞ্জিন ভার্চুয়াল মেশিন স্থাপন করুন

ভার্চুয়াল মেশিন (VM)টি AlloyDB ইনস্ট্যান্সের সাথে সংযোগ করতে ব্যবহৃত হবে।

gcloud compute instances create alloydb-client \
    --zone=$ZONE \
--create-disk=auto-delete=yes,boot=yes,image=projects/debian-cloud/global/images/$(gcloud compute images list --filter="family=debian-12 AND family!=debian-12-arm64" --format="value(name)") \
    --scopes=https://www.googleapis.com/auth/cloud-platform \
    --shielded-secure-boot \
    --network-interface=no-address

প্রত্যাশিত আউটপুট

student@cloudshell:~ (psc-alloydb-test)$ gcloud compute instances create alloydb-client \
    --zone=$ZONE \
--create-disk=auto-delete=yes,boot=yes,image=projects/debian-cloud/global/images/$(gcloud compute images list --filter="family=debian-12 AND family!=debian-12-arm64" --format="value(name)") \
    --scopes=https://www.googleapis.com/auth/cloud-platform \
    --network-interface=no-address
Created [https://www.googleapis.com/compute/v1/projects/psc-alloydb-test/zones/europe-west4-a/instances/alloydb-client].
NAME: alloydb-client
ZONE: europe-west4-a
MACHINE_TYPE: n1-standard-1
PREEMPTIBLE: 
INTERNAL_IP: 10.164.0.2
EXTERNAL_IP: 
STATUS: RUNNING

পোস্টগ্রেস ক্লায়েন্ট ইনস্টল করুন

ইন্টারনেটে বহির্গামী ট্র্যাফিকের জন্য একটি ক্লাউড NAT তৈরি করুন, যাতে VM-টি লিনাক্স রিপোজিটরিগুলো অ্যাক্সেস করতে পারে:

gcloud compute routers create cloud-nat-router \
    --network=default \
    --region=$REGION

প্রত্যাশিত আউটপুট

student@cloudshell:~ (psc-alloydb-test)$ gcloud compute routers create cloud-nat-router \
    --network=default \
    --region=$REGION
Creating router [cloud-nat-router]...done.                                                                                                                                                                                      
NAME: cloud-nat-router
REGION: europe-west4
NETWORK: default
gcloud compute routers nats create cloud-nat \
    --router=cloud-nat-router \
    --region=$REGION  \
    --nat-all-subnet-ip-ranges \
    --auto-allocate-nat-external-ips

প্রত্যাশিত আউটপুট

student@cloudshell:~ (psc-alloydb-test)$ gcloud compute routers nats create cloud-nat \
    --router=cloud-nat-router \
    --region=$REGION  \
    --nat-all-subnet-ip-ranges \
    --auto-allocate-nat-external-ips
Creating NAT [cloud-nat] in router [cloud-nat-router]...done.

ডেপ্লয় করা ভিএম-এ PostgreSQL ক্লায়েন্ট সফটওয়্যারটি ইনস্টল করুন।

ভিএম-এ সংযোগ করুন:

gcloud compute ssh --zone $ZONE "alloydb-client" --tunnel-through-iap --project $PROJECT_ID

প্রত্যাশিত আউটপুট

student@cloudshell:~ (psc-alloydb-test)$ gcloud compute ssh --zone $ZONE "alloydb-client" --tunnel-through-iap --project $PROJECT_ID
WARNING: 

To increase the performance of the tunnel, consider installing NumPy. For instructions,
please see https://cloud.google.com/iap/docs/using-tcp-forwarding#increasing_the_tcp_upload_bandwidth

Warning: Permanently added 'compute.3358765012415130370' (ED25519) to the list of known hosts.
Linux alloydb-client 6.1.0-29-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Creating directory '/home/student_tampferl_altostrat_com'.

ভিএম-এর ভিতরে কমান্ডটি চালিয়ে সফ্টওয়্যারটি ইনস্টল করুন:

sudo apt-get update
sudo apt-get install --yes postgresql-client

প্রত্যাশিত আউটপুট

sudo apt-get update
sudo apt-get install --yes postgresql-client
Get:1 file:/etc/apt/mirrors/debian.list Mirrorlist [30 B]
Get:5 file:/etc/apt/mirrors/debian-security.list Mirrorlist [39 B]
Get:7 https://packages.cloud.google.com/apt google-compute-engine-bookworm-stable InRelease [1321 B]
Get:2 https://deb.debian.org/debian bookworm InRelease [151 kB]              
Get:3 https://deb.debian.org/debian bookworm-updates InRelease [55.4 kB]     
Get:4 https://deb.debian.org/debian bookworm-backports InRelease [59.0 kB]
...redacted...
update-alternatives: using /usr/share/postgresql/15/man/man1/psql.1.gz to provide /usr/share/man/man1/psql.1.gz (psql.1.gz) in auto mode
Setting up postgresql-client (15+248) ...
Processing triggers for man-db (2.11.2-2) ...
Processing triggers for libc-bin (2.36-9+deb12u9) ...

৭. প্রাইভেট সার্ভিস কানেক্টের মাধ্যমে AlloyDB for Postgres ইনস্ট্যান্সের সাথে সংযোগ করুন।

ইনস্ট্যান্সের সাথে সংযোগ করুন

psql "dbname=postgres user=postgres host=69f67b56-9fa2-4480-89f6-3f1a38ee51cb.6a495301-4802-4ec1-bb9b-69b57d2616ec.europe-west4.alloydb-psc.goog."

প্রত্যাশিত আউটপুট

student_tampferl_altostrat_com@alloydb-client:~$ psql "dbname=postgres user=postgres host=69f67b56-9fa2-4480-89f6-3f1a38ee51cb.6a495301-4802-4ec1-bb9b-69b57d2616ec.europe-west4.alloydb-psc.goog."
Password for user postgres: 
psql (15.10 (Debian 15.10-0+deb12u1), server 15.7)
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off)
Type "help" for help.

postgres=> 

ডাটাবেস তৈরি এবং পরীক্ষা করুন

একটি ডাটাবেস তৈরি করুন

CREATE DATABASE company;

প্রত্যাশিত আউটপুট

postgres=> CREATE DATABASE company;
CREATE DATABASE
postgres=> 

সমস্ত ডেটাবেস তালিকাভুক্ত করুন

\l

প্রত্যাশিত আউটপুট

     Name       |      Owner       | Encoding | Collate | Ctype | ICU Locale | Locale Provider |           Access privileges           
-----------------+------------------+----------+---------+-------+------------+-----------------+---------------------------------------
 alloydbadmin    | alloydbadmin     | UTF8     | C       | C     | und-x-icu  | icu             | 
 alloydbmetadata | alloydbadmin     | UTF8     | C       | C     | und-x-icu  | icu             | alloydbadmin=CTc/alloydbadmin        +
                 |                  |          |         |       |            |                 | alloydbmetadata=c/alloydbadmin
 company         | postgres         | UTF8     | C       | C     | und-x-icu  | icu             | 
 postgres        | alloydbsuperuser | UTF8     | C       | C     | und-x-icu  | icu             | 
 template0       | alloydbadmin     | UTF8     | C       | C     | und-x-icu  | icu             | =c/alloydbadmin                      +
                 |                  |          |         |       |            |                 | alloydbadmin=CTc/alloydbadmin
 template1       | alloydbsuperuser | UTF8     | C       | C     | und-x-icu  | icu             | =c/alloydbsuperuser                  +
                 |                  |          |         |       |            |                 | alloydbsuperuser=CTc/alloydbsuperuser
(6 rows)

কর্মচারী ডেটাবেসের সাথে সংযোগ করুন

\c company

প্রত্যাশিত আউটপুট

postgres=> \c company
psql (15.10 (Debian 15.10-0+deb12u1), server 15.7)
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off)
You are now connected to database "company" as user "postgres".
company=>

কোম্পানির ডাটাবেসে একটি টেবিল তৈরি করুন

CREATE TABLE employees (
    id SERIAL PRIMARY KEY,
    first VARCHAR(255) NOT NULL,
    last VARCHAR(255) NOT NULL,
    salary DECIMAL (10, 2)
);

প্রত্যাশিত আউটপুট

company=> CREATE TABLE employees (
    id SERIAL PRIMARY KEY,
    first VARCHAR(255) NOT NULL,
    last VARCHAR(255) NOT NULL,
    salary DECIMAL (10, 2)
);
CREATE TABLE

কোম্পানির ডাটাবেসের 'employees' টেবিলে ডেটা প্রবেশ করান।

INSERT INTO employees (first, last, salary) VALUES
    ('Max', 'Mustermann', 5000.00),
    ('Anna', 'Schmidt', 7000.00),
    ('Peter', 'Mayer', 6000.00);

প্রত্যাশিত আউটপুট

company=> INSERT INTO employees (first, last, salary) VALUES
    ('Max', 'Mustermann', 5000.00),
    ('Anna', 'Schmidt', 7000.00),
    ('Peter', 'Mayer', 6000.00);
INSERT 0 3
company=>

কর্মচারী টেবিল অনুসন্ধান করুন

SELECT * FROM employees;

প্রত্যাশিত আউটপুট

company=> SELECT * FROM employees;
 id | first |    last    | salary  
----+-------+------------+---------
  1 | Max   | Mustermann | 5000.00
  2 | Anna  | Schmidt    | 7000.00
  3 | Peter | Mayer      | 6000.00
(3 rows)
company=> 

Postgres ডাটাবেস এবং VM থেকে প্রস্থান করুন এবং Cloud Shell-এ ফিরে যান:

\q
exit

প্রত্যাশিত আউটপুট

company=> \q
student_tampferl_altostrat_com@alloydb-client:~$ exit
logout
Connection to compute.3358765012415130370 closed.
student@cloudshell:~ (psc-alloydb-test)$ 

৮. পরিবেশ পরিষ্কার করুন

ল্যাবের কাজ শেষ হলে প্রজেক্টের সমস্ত গুগল ক্লাউড রিসোর্স ধ্বংস করে দিন।

AlloyDB ক্লাস্টার মুছে ফেলুন

ক্লাউড শেলে AlloyDB for Postgres ক্লাস্টারটি মুছে ফেলুন:

gcloud alloydb clusters delete alloydb-cluster-01 --region=$REGION --force --quiet

প্রত্যাশিত আউটপুট

student@cloudshell:~ (psc-alloydb-test)$ gcloud alloydb clusters delete alloydb-cluster-01 --region=$REGION --force --quiet
Operation ID: operation-1739488287386-62e0e2d75ead0-f8ffd91f-9c0f56c1
Deleting cluster...done.

গুগল কম্পিউট ইঞ্জিন ভার্চুয়াল মেশিন মুছে ফেলুন

ক্লাউড শেলে VM-টি ডিলিট করুন:

gcloud compute instances delete alloydb-client \
    --zone=$ZONE \
    --quiet

প্রত্যাশিত আউটপুট

student@cloudshell:~ (psc-alloydb-test)$ gcloud compute instances delete alloydb-client \
    --zone=$ZONE \
    --quiet
Deleted [https://www.googleapis.com/compute/v1/projects/psc-alloydb-test/zones/europe-west4-a/instances/alloydb-client].

নেটওয়ার্ক উপাদানগুলি মুছে ফেলুন

নেটওয়ার্ক সম্পর্কিত উপাদানগুলো মুছে ফেলুন: ক্লাউড ন্যাট, ক্লাউড রাউটার, প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট, সংরক্ষিত অভ্যন্তরীণ আইপি অ্যাড্রেস, ডিএনএস রেকর্ড এবং ডিএনএস পরিচালিত জোন।

ক্লাউড NAT মুছে ফেলুন:

gcloud compute routers nats delete cloud-nat \
    --router=cloud-nat-router \
    --region=$REGION \
    --quiet

প্রত্যাশিত আউটপুট

student@cloudshell:~ (psc-alloydb-test)$ gcloud compute routers nats delete cloud-nat \
    --router=cloud-nat-router \
    --region=$REGION \
    --quiet
Updated [https://www.googleapis.com/compute/v1/projects/psc-alloydb-test/regions/europe-west4/routers/cloud-nat-router].

ক্লাউড রাউটার মুছুন:

gcloud compute routers delete cloud-nat-router \
    --region=$REGION \
    --quiet 

প্রত্যাশিত আউটপুট

student@cloudshell:~ (psc-alloydb-test)$ gcloud compute routers delete cloud-nat-router \
    --region=$REGION \
    --quiet
Deleted [https://www.googleapis.com/compute/v1/projects/psc-alloydb-test/regions/europe-west4/routers/cloud-nat-router].

ব্যক্তিগত সার্ভিস কানেক্ট এন্ডপয়েন্ট মুছুন:

gcloud compute forwarding-rules delete alloydb-psc-ep \
    --project=$PROJECT_ID \
    --region=$REGION \
    --quiet

প্রত্যাশিত আউটপুট

student@cloudshell:~ (psc-alloydb-test)$ gcloud compute forwarding-rules delete alloydb-psc-ep \
    --project=$PROJECT_ID \
    --region=$REGION \
    --quiet
Deleted [https://www.googleapis.com/compute/v1/projects/psc-alloydb-test/regions/europe-west4/forwardingRules/alloydb-psc-ep].

সংরক্ষিত অভ্যন্তরীণ আইপি ঠিকানা মুক্ত করুন::

gcloud compute addresses delete alloydb-psc \
   --project=$PROJECT_ID \
   --region=$REGION \
   --quiet

প্রত্যাশিত আউটপুট

student@cloudshell:~ (psc-alloydb-test)$ gcloud compute addresses delete alloydb-psc \
   --project=$PROJECT_ID \
   --region=$REGION \
   --quiet
Deleted [https://www.googleapis.com/compute/v1/projects/psc-alloydb-test/regions/europe-west4/addresses/alloydb-psc].

DNS রেকর্ড মুছুন:

gcloud dns record-sets delete 69f67b56-9fa2-4480-89f6-3f1a38ee51cb.6a495301-4802-4ec1-bb9b-69b57d2616ec.europe-west4.alloydb-psc.goog. \
--project=$PROJECT_ID \
--type=A \
--zone=alloydb-dns

প্রত্যাশিত আউটপুট

student@cloudshell:~ (psc-alloydb-test)$ gcloud dns record-sets delete 69f67b56-9fa2-4480-89f6-3f1a38ee51cb.6a495301-4802-4ec1-bb9b-69b57d2616ec.europe-west4.alloydb-psc.goog. \
--project=$PROJECT_ID \
--type=A \
--zone=alloydb-dns
Deleted [https://dns.googleapis.com/dns/v1/projects/psc-alloydb-test/managedZones/alloydb-dns/rrsets/69f67b56-9fa2-4480-89f6-3f1a38ee51cb.6a495301-4802-4ec1-bb9b-69b57d2616ec.europe-west4.alloydb-psc.goog./A].

DNS পরিচালিত জোন মুছে ফেলুন:

gcloud dns managed-zones delete alloydb-dns \
   --project=$PROJECT_ID \
   --quiet

প্রত্যাশিত আউটপুট

student@cloudshell:~ (psc-alloydb-test)$ gcloud dns managed-zones delete alloydb-dns \
   --project=$PROJECT_ID \
   --quiet
Deleted [https://dns.googleapis.com/dns/v1/projects/psc-alloydb-test/managedZones/alloydb-dns].

৯. অভিনন্দন

কোডল্যাবটি সম্পন্ন করার জন্য অভিনন্দন।

আমরা যা আলোচনা করেছি

  • কীভাবে একটি AlloyDB ক্লাস্টার এবং ইনস্ট্যান্স স্থাপন করবেন
  • কীভাবে একটি প্রাইভেট সার্ভিস কানেক্ট স্থাপন করবেন
  • প্রাইভেট সার্ভিস কানেক্টের মাধ্যমে একটি ভিএম থেকে অ্যালয়ডিবি ইনস্ট্যান্সে কীভাবে সংযোগ করবেন

১০. জরিপ

আপনি এই টিউটোরিয়ালটি কীভাবে ব্যবহার করবেন?

শুধু একবার পড়ে দেখুন এটি পড়ুন এবং অনুশীলনগুলো সম্পূর্ণ করুন।