ক্লাউডএসকিউএল-এর জন্য কীভাবে একটি ব্যক্তিগত পরিষেবা সংযোগ তৈরি করবেন

1. ভূমিকা

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

8e3d735974c36aa9.png

আপনি এখানে Private Service Connect সম্পর্কে আরও তথ্য পেতে পারেন।

পূর্বশর্ত

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

আপনি কি শিখবেন

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

আপনি কি প্রয়োজন হবে

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

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

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

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

295004821bab6a87.png37d264871000675d.png5e3ff691252acf41.png

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

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

  1. এরপরে, ক্লাউড রিসোর্স/এপিআই ব্যবহার করতে আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ হবে না, যদি কিছু হয়। এই টিউটোরিয়ালের বাইরে বিলিং এড়াতে সংস্থানগুলি বন্ধ করতে, আপনি আপনার তৈরি করা সংস্থানগুলি মুছতে বা প্রকল্প মুছতে পারেন। নতুন Google ক্লাউড ব্যবহারকারীরা $300 USD বিনামূল্যের ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷

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

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

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

55efc1aaa7a4d3ad.png

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

7ffe5cbb04455448.png

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

3. আপনি শুরু করার আগে

API সক্ষম করুন

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

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

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

edbf16c09a01fbab.png

gcloud config set project [YOUR-PROJECT-ID]

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

33fbeb082b3aac19.png

তারপর আপনার Google ক্লাউড প্রকল্প আইডিতে PROJECT_ID পরিবেশ পরিবর্তনশীল সেট করুন:

PROJECT_ID=$(gcloud config get-value project)

আপনার পছন্দের অঞ্চল এবং অঞ্চলে অঞ্চল এবং অঞ্চল পরিবেশ পরিবর্তনশীল সেট করুন:

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

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

gcloud services enable compute.googleapis.com \
                       sqladmin.googleapis.com \
                       dns.googleapis.com \
                       iam.googleapis.com 

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

student@cloudshell:~ (psc-cloud-sql-test)$ gcloud services enable compute.googleapis.com \
                       sqladmin.googleapis.com \
                       dns.googleapis.com \
                       iam.googleapis.com
Operation "operations/acat.p2-577410439131-dfb33f74-3447-485c-bae2-bc130126c965" finished successfully.

4. পোস্টগ্রেস ইনস্ট্যান্সের জন্য একটি ক্লাউড এসকিউএল স্থাপন করুন

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

gcloud sql instances create cloudsql-postgres \
--project=$PROJECT_ID \
--region=$REGION \
--enable-private-service-connect \
--allowed-psc-projects=$PROJECT_ID \
--availability-type=ZONAL \
--no-assign-ip \
--cpu=2 \
--memory=7680MB \
--edition=ENTERPRISE \
--database-version=POSTGRES_16

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

student@cloudshell:~ (psc-cloud-sql-test)$ gcloud sql instances create cloudsql-postgres \
--project=$PROJECT_ID \
--region=europe-west4 \
--enable-private-service-connect \
--allowed-psc-projects=$PROJECT_ID \
--availability-type=ZONAL \
--no-assign-ip \
--cpu=2 \
--memory=7680MB \
--edition=ENTERPRISE \
--database-version=POSTGRES_16
Creating Cloud SQL instance for POSTGRES_16...done.                                                                                                                                                                             
Created [https://sqladmin.googleapis.com/sql/v1beta4/projects/psc-cloud-sql-test02/instances/cloudsql-postgres1].
NAME: cloudsql-postgres
DATABASE_VERSION: POSTGRES_16
LOCATION: europe-west4-b
TIER: db-custom-2-7680
PRIMARY_ADDRESS: -
PRIVATE_ADDRESS: -
STATUS: RUNNABLE

পোস্টগ্রেসের জন্য ক্লাউড এসকিউএল এর সফল ইনস্টলেশনের পরে ডেটাবেস ব্যবহারকারী পোস্টগ্রেসের জন্য পাসওয়ার্ড পরিবর্তন করুন:

gcloud sql users set-password postgres \
  --instance=cloudsql-postgres \
  --password='changeme'

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

student@cloudshell:~ (psc-cloud-sql-test)$ gcloud sql users set-password postgres \
  --instance=cloudsql-postgres \
  --password='changeme'
Updating Cloud SQL user...done.

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

নিম্নলিখিত নেটওয়ার্ক সম্পর্কিত কাজের জন্য অনুমান করা হয় যে ডিফল্ট নামে একটি ভিপিসি রয়েছে।

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

পরিবেশ পরিবর্তনশীল অঞ্চলে উল্লেখ করা GCP অঞ্চলে VPC সাবনেট CIDR পরিসর খুঁজুন এবং Privat Service Connect এন্ডপয়েন্টের জন্য এই 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

উপরে প্রাপ্ত VPC সাবনেট CIDR পরিসরে প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্টের জন্য একটি অভ্যন্তরীণ IP ঠিকানা সংরক্ষণ করুন:

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

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

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

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

gcloud compute addresses list cloudsql-psc \
--project=$PROJECT_ID

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

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

পরিষেবা সংযুক্তি URI পান

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

gcloud sql instances describe cloudsql-postgres \
--project=$PROJECT_ID   --format="value(pscServiceAttachmentLink)"

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

student@cloudshell:~ (psc-cloud-sql-test)$ gcloud sql instances describe cloudsql-postgres1 --project=$PROJECT_ID \
  --format="value(pscServiceAttachmentLink)"
projects/l639336e2c716e3d8p-tp/regions/europe-west4/serviceAttachments/a-33446dfaf850-psc-service-attachment-e6471fc6708a6cfe

প্রাইভেট সার্ভিস কানেক্ট তৈরি করুন

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

gcloud compute forwarding-rules create cloudsql-psc-ep \
--address=cloudsql-psc \
--project=$PROJECT_ID \
--region=$REGION \
--network=default \
--target-service-attachment=projects/l639336e2c716e3d8p-tp/regions/europe-west4/serviceAttachments/a-33446dfaf850-psc-service-attachment-e6471fc6708a6cfe \
--allow-psc-global-access

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

student@cloudshell:~ (psc-cloud-sql-test)$ gcloud compute forwarding-rules create cloudsql-psc-ep \
--address=cloudsql-psc \
--project=$PROJECT_ID \
--region=$REGION \
--network=default \
--target-service-attachment=projects/l639336e2c716e3d8p-tp/regions/europe-west4/serviceAttachments/a-33446dfaf850-psc-service-attachment-e6471fc6708a6cfe \
--allow-psc-global-access
Created [https://www.googleapis.com/compute/v1/projects/psc-cloud-sql-test02/regions/europe-west4/forwardingRules/cloudsql-psc-ep].

যাচাই করুন যে শেষ পয়েন্ট পরিষেবা সংযুক্তির সাথে সংযোগ করতে পারে:

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

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

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

একটি DNS পরিচালিত অঞ্চল কনফিগার করুন

ক্লাউড SQL দৃষ্টান্তের জন্য প্রস্তাবিত DNS নাম যোগ করতে সংশ্লিষ্ট VPC নেটওয়ার্কে একটি ব্যক্তিগত DNS জোন তৈরি করা ভাল:

gcloud dns managed-zones create cloudsql-dns \
--project=$PROJECT_ID \
--description="DNS zone for the Cloud SQL instances" \
--dns-name=$REGION.sql.goog. \
--networks=default \
--visibility=private

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

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

ব্যক্তিগত পরিষেবা সংযোগের জন্য একটি DNS রেকর্ড যুক্ত করুন৷

ক্লাউড SQL উদাহরণের জন্য প্রস্তাবিত DNS রেকর্ড পান:

gcloud sql instances describe  cloudsql-postgres --project=$PROJECT_ID --format="value(dnsName)"

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

student@cloudshell:~ (psc-cloud-sql-test)$ gcloud sql instances describe  cloudsql-postgres --project=$PROJECT_ID --format="value(dnsName)"
33446dfaf850.1rrhex0himzzc.europe-west4.sql.goog.

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

gcloud dns record-sets create 3446dfaf850.1rrhex0himzzc.europe-west4.sql.goog. \
--project=$PROJECT_ID \
--type=A \
--rrdatas=10.164.0.10 \
--zone=cloudsql-dns

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

student@cloudshell:~ (psc-cloud-sql-test)$ gcloud dns record-sets create 3446dfaf850.1rrhex0himzzc.europe-west4.sql.goog. \
--project=$PROJECT_ID \
--type=A \
--rrdatas=10.164.0.10 \
--zone=cloudsql-dns
NAME: 3446dfaf850.1rrhex0himzzc.europe-west4.sql.goog.
TYPE: A
TTL: 0
DATA: 10.164.0.10

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

Google Compute Engine ভার্চুয়াল মেশিন স্থাপন করুন

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

gcloud compute instances create cloudsql-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

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

student@cloudshell:~ (psc-cloud-sql-test)$ gcloud compute instances create cloudsql-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-cloud-sql-test02/zones/europe-west4-a/instances/cloudsql-client].
NAME: cloudsql-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-cloud-sql-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-cloud-sql-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.

স্থাপন করা VM-এ PostgreSQL ক্লায়েন্ট সফ্টওয়্যার ইনস্টল করুন

VM এর সাথে সংযোগ করুন:

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

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

student@cloudshell:~ (psc-cloud-sql-test)$ gcloud compute ssh --zone "europe-west4-a" "cloudsql-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.1355719684363734964' (ED25519) to the list of known hosts.
Linux cloudsql-client 6.1.0-26-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.112-1 (2024-09-30) 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_org_altostrat_com'.

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

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

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

student@cloudsql-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+deb12u8) ...

7. ব্যক্তিগত পরিষেবা সংযোগের মাধ্যমে পোস্টগ্রেস ইন্সট্যান্সের জন্য ক্লাউড SQL এর সাথে সংযোগ করুন৷

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

psql "sslmode=disable dbname=postgres user=postgres host=3446dfaf850.1rrhex0himzzc.europe-west4.sql.goog."

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

student@cloudsql-client:~$ psql "sslmode=disable dbname=postgres user=postgres host=3446dfaf850.1rrhex0himzzc.europe-west4.sql.goog."
Password for user postgres: 
psql (15.8 (Debian 15.8-0+deb12u1), server 16.4)
WARNING: psql major version 15, server major version 16.
         Some psql features might not work.
Type "help" for help.

postgres=> 

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

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

CREATE DATABASE company;

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

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

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

\l

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

postgres=> \l
                                                                List of databases
     Name      |       Owner       | Encoding |  Collate   |   Ctype    | ICU Locale | Locale Provider |            Access privileges            
---------------+-------------------+----------+------------+------------+------------+-----------------+-----------------------------------------
 cloudsqladmin | cloudsqladmin     | UTF8     | en_US.UTF8 | en_US.UTF8 |            | libc            | 
 company     | postgres          | UTF8     | en_US.UTF8 | en_US.UTF8 |            | libc            | 
 postgres      | cloudsqlsuperuser | UTF8     | en_US.UTF8 | en_US.UTF8 |            | libc            | 
 template0     | cloudsqladmin     | UTF8     | en_US.UTF8 | en_US.UTF8 |            | libc            | =c/cloudsqladmin                       +
               |                   |          |            |            |            |                 | cloudsqladmin=CTc/cloudsqladmin
 template1     | cloudsqlsuperuser | UTF8     | en_US.UTF8 | en_US.UTF8 |            | libc            | =c/cloudsqlsuperuser                   +
               |                   |          |            |            |            |                 | cloudsqlsuperuser=CTc/cloudsqlsuperuser
(5 rows)

postgres=>

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

\c company

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

postgres=> \c company
psql (15.8 (Debian 15.8-0+deb12u1), server 16.4)
WARNING: psql major version 15, server major version 16.
         Some psql features might not work.
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

কোম্পানীর ডাটাবেসের কর্মচারীদের টেবিলে ডেটা সন্নিবেশ করান

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=> 

পোস্টগ্রেস ডাটাবেস এবং ভিএম থেকে প্রস্থান করুন এবং ক্লাউড শেলে ফিরে আসুন:

\q
exit

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

postgres=> \q
student@cloudsql-client:~$ exit
logout
Connection to compute.1355719684363734964 closed.
student@cloudshell:~ (psc-cloud-sql-test02)$ 

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

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

ক্লাউড এসকিউএল পোস্টগ্রেস উদাহরণ মুছুন

ক্লাউড শেল পোস্টগ্রেস উদাহরণের জন্য ক্লাউড এসকিউএল মুছুন:

gcloud sql instances delete cloudsql-postgres --quiet

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

student@cloudshell:~ (psc-cloud-sql-test)$ gcloud sql instances delete cloudsql-postgres --quiet
Deleting Cloud SQL instance...done.                                                                                                                                                       
Deleted [https://sqladmin.googleapis.com/sql/v1beta4/projects/psc-cloud-sql-test02/instances/cloudsql-postgres].

Google Compute Engine ভার্চুয়াল মেশিন মুছুন

ক্লাউড শেলে VM মুছে দিন:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ডিএনএস রেকর্ড মুছুন:

gcloud dns record-sets delete 3446dfaf850.1rrhex0himzzc.europe-west4.sql.goog. \
--project=$PROJECT_ID \
--type=A \
--zone=cloudsql-dns

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

student@cloudshell:~ (psc-cloud-sql-test)$ gcloud dns record-sets delete 3446dfaf850.1rrhex0himzzc.europe-west4.sql.goog. \
--project=$PROJECT_ID \
--type=A \
--zone=cloudsql-dns
Deleted [https://dns.googleapis.com/dns/v1/projects/psc-cloud-sql-test02/managedZones/cloudsql-dns/rrsets/3446dfaf850.1rrhex0himzzc.europe-west4.sql.goog./A].

DNS পরিচালিত অঞ্চল মুছুন:

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

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

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

9. অভিনন্দন

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

আমরা কভার করেছি কি

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

10. সমীক্ষা

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

শুধুমাত্র এটি মাধ্যমে পড়ুন এটি পড়ুন এবং ব্যায়াম সম্পূর্ণ করুন