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

প্রাইভেট সার্ভিস কানেক্ট সম্পর্কে আরও তথ্য আপনি এখানে পেতে পারেন।
পূর্বশর্ত
- গুগল ক্লাউড কনসোল সম্পর্কে প্রাথমিক ধারণা
- কমান্ড লাইন ইন্টারফেস এবং গুগল ক্লাউড শেলে প্রাথমিক দক্ষতা
আপনি যা শিখবেন
- কীভাবে একটি ক্লাউড SQL ইনস্ট্যান্স স্থাপন করবেন
- কীভাবে একটি প্রাইভেট সার্ভিস কানেক্ট স্থাপন করবেন
- প্রাইভেট সার্ভিস কানেক্টের মাধ্যমে একটি ভিএম থেকে ক্লাউড এসকিউএল ইনস্ট্যান্সে কীভাবে সংযোগ করবেন
আপনার যা যা লাগবে
- একটি গুগল ক্লাউড অ্যাকাউন্ট এবং গুগল ক্লাউড প্রজেক্ট
- ক্রোমের মতো একটি ওয়েব ব্রাউজার
২. সেটআপ এবং প্রয়োজনীয়তা
স্ব-গতিতে পরিবেশ সেটআপ
- Google Cloud Console- এ সাইন-ইন করুন এবং একটি নতুন প্রজেক্ট তৈরি করুন অথবা বিদ্যমান কোনো প্রজেক্ট পুনরায় ব্যবহার করুন। যদি আপনার আগে থেকে Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে।



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

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

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

gcloud config set project [YOUR-PROJECT-ID]
একটি উইন্ডো পপ আপ হবে যেখানে ক্লাউড শেল অনুমোদনের জন্য অনুরোধ করা হবে। অনুগ্রহ করে Authorize- এ ক্লিক করুন।

এরপর PROJECT_ID এনভায়রনমেন্ট ভেরিয়েবলটি আপনার গুগল ক্লাউড প্রজেক্ট আইডিতে সেট করুন:
PROJECT_ID=$(gcloud config get-value project)
আপনার পছন্দের অঞ্চল এবং জোন অনুযায়ী REGION এবং ZONE এনভায়রনমেন্ট ভেরিয়েবল সেট করুন:
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.
৪. একটি ক্লাউড এসকিউএল ফর পোস্টগ্রেস ইনস্ট্যান্স স্থাপন করুন
ক্লাউড শেলে আপনি কমান্ড লাইন ব্যবহার করে প্রাইভেট সার্ভিস কানেক্ট সক্রিয় সহ একটি নতুন ক্লাউড এসকিউএল পোস্টগ্রেস ইনস্ট্যান্স তৈরি করতে পারেন:
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
Cloud SQL for Postgres সফলভাবে ইনস্টল করার পর postgres ডাটাবেস ব্যবহারকারীর পাসওয়ার্ড পরিবর্তন করুন:
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.
৫. প্রাইভেট সার্ভিস কানেক্ট সেটআপ করুন
নিম্নলিখিত নেটওয়ার্ক-সম্পর্কিত কাজগুলোর জন্য ধরে নেওয়া হচ্ছে যে, '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 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].
যাচাই করুন যে অভ্যন্তরীণ আইপি ঠিকানাটি সংরক্ষিত আছে এবং আইপি ঠিকানাটির জন্য 'RESERVED' স্ট্যাটাসটি দেখা যাচ্ছে।
gcloud compute addresses list --project=$PROJECT_ID \
--filter="name=cloudsql-psc"
প্রত্যাশিত আউটপুট
student@cloudshell:~ (psc-cloud-sql-test)$ gcloud compute addresses list --project=$PROJECT_ID \ --filter="name=cloudsql-psc" NAME: cloudsql-psc ADDRESS/RANGE: 10.164.0.10 TYPE: INTERNAL PURPOSE: GCE_ENDPOINT NETWORK: REGION: europe-west4 SUBNET: default STATUS: RESERVED
সার্ভিস অ্যাটাচমেন্ট URI পান
প্রাইভেট সার্ভিস কানেক্ট সক্রিয় করে একটি ক্লাউড এসকিউএল ইনস্ট্যান্স তৈরি করার পর, সার্ভিস অ্যাটাচমেন্ট ইউআরআই-টি নিন এবং সেটি ব্যবহার করে উপরে উল্লিখিত সংরক্ষিত অভ্যন্তরীণ আইপি অ্যাড্রেস দিয়ে প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্টটি তৈরি করুন।
gcloud sql instances describe cloudsql-postgres \
--project=$PROJECT_ID --format="value(pscServiceAttachmentLink)"
প্রত্যাশিত আউটপুট
student@cloudshell:~ (psc-cloud-sql-test)$ gcloud sql instances describe cloudsql-postgres --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].
প্রাইভেট সার্ভিস কানেক্টের জন্য একটি ডিএনএস রেকর্ড যোগ করুন
ক্লাউড 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
৬. গুগল কম্পিউট ইঞ্জিন ভার্চুয়াল মেশিন প্রস্তুত করুন।
গুগল কম্পিউট ইঞ্জিন ভার্চুয়াল মেশিন স্থাপন করুন
ভার্চুয়াল মেশিন (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.
ডেপ্লয় করা ভিএম-এ PostgreSQL ক্লায়েন্ট সফটওয়্যারটি ইনস্টল করুন।
ভিএম-এ সংযোগ করুন:
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'.
ভিএম-এর ভিতরে কমান্ডটি চালিয়ে সফ্টওয়্যারটি ইনস্টল করুন:
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) ...
৭. প্রাইভেট সার্ভিস কানেক্টের মাধ্যমে ক্লাউড এসকিউএল ফর পোস্টগ্রেস ইনস্ট্যান্সে সংযুক্ত হন।
ইনস্ট্যান্সের সাথে সংযোগ করুন
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
কোম্পানির ডাটাবেসের '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
প্রত্যাশিত আউটপুট
postgres=> \q student@cloudsql-client:~$ exit logout Connection to compute.1355719684363734964 closed. student@cloudshell:~ (psc-cloud-sql-test02)$
৮. পরিবেশ পরিষ্কার করুন
ল্যাবের কাজ শেষ হলে প্রজেক্টের সমস্ত গুগল ক্লাউড রিসোর্স ধ্বংস করে দিন।
ক্লাউড SQL পোস্টগ্রেস ইনস্ট্যান্স মুছে ফেলুন
ক্লাউড শেলে ক্লাউড এসকিউএল ফর পোস্টগ্রেস ইনস্ট্যান্সটি ডিলিট করুন:
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].
গুগল কম্পিউট ইঞ্জিন ভার্চুয়াল মেশিন মুছে ফেলুন
ক্লাউড শেলে 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].
DNS রেকর্ড মুছুন:
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].
৯. অভিনন্দন
কোডল্যাবটি সম্পন্ন করার জন্য অভিনন্দন।
আমরা যা আলোচনা করেছি
- কীভাবে একটি ক্লাউড SQL ইনস্ট্যান্স স্থাপন করবেন
- কীভাবে একটি প্রাইভেট সার্ভিস কানেক্ট স্থাপন করবেন
- প্রাইভেট সার্ভিস কানেক্টের মাধ্যমে একটি ভিএম থেকে ক্লাউড এসকিউএল ইনস্ট্যান্সে কীভাবে সংযোগ করবেন