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



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

সার্ভিস এপিআই সক্রিয় করতে, নিচের কমান্ডটি টার্মিনালে কপি করে পেস্ট করুন এবং এন্টার চাপুন:
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
৩. অ্যালয়ডিবি ক্লাস্টার সেটআপ এবং তৈরি করুন
সেটআপের জন্য প্রয়োজনীয় অনুমতি সেট করুন। এর ফলে ক্লাউড রান জব অ্যালয়ডিবি ডেটাবেসের সাথে সংযোগ করতে পারবে।
gcloud projects add-iam-policy-binding $PROJECT_NAME \
--member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role="roles/alloydb.client"
ব্যক্তিগত পরিষেবা অ্যাক্সেস কনফিগার করুন
প্রাইভেট সার্ভিসেস অ্যাক্সেস আপনার ভিপিসি নেটওয়ার্ক এবং অন্তর্নিহিত গুগল ক্লাউড ভিপিসি নেটওয়ার্কের মধ্যে একটি ভিপিসি পিয়ারিং কানেকশন হিসেবে বাস্তবায়িত হয়, যেখানে আপনার AlloyDB রিসোর্সগুলো (ক্লাস্টার এবং ইনস্ট্যান্স) থাকে। এই প্রাইভেট কানেকশনটি আপনার ভিপিসি নেটওয়ার্কের রিসোর্সগুলোকে শুধুমাত্র ইন্টারনাল আইপি অ্যাড্রেস ব্যবহার করে তাদের অ্যাক্সেস করা AlloyDB রিসোর্সগুলোর সাথে যোগাযোগ করতে সক্ষম করে। AlloyDB রিসোর্সগুলোতে পৌঁছানোর জন্য আপনার ভিপিসি নেটওয়ার্কের রিসোর্সগুলোর ইন্টারনেট অ্যাক্সেস বা এক্সটার্নাল আইপি অ্যাড্রেসের প্রয়োজন হয় না।
AlloyDB-এর মতো একই ক্লাউড প্রজেক্টে অবস্থিত একটি VPC নেটওয়ার্কে প্রাইভেট সার্ভিসেস অ্যাক্সেস কনফিগারেশন তৈরি করতে, আপনাকে দুটি অপারেশন সম্পাদন করতে হবে:
VPC নেটওয়ার্কে একটি বরাদ্দকৃত IP অ্যাড্রেস রেঞ্জ তৈরি করুন।
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 নেটওয়ার্কের মধ্যে একটি ব্যক্তিগত সংযোগ তৈরি করুন। এই ধাপে প্রায় ২ মিনিট সময় লাগে।
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 ইনস্ট্যান্স তৈরি করুন। এই ধাপে প্রায় ১০ মিনিট সময় লাগে।
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
ক্লাউড কনসোলে তৈরি করা ক্লাস্টারটি পর্যালোচনা করুন।

ডাটাবেসের আইপি অ্যাড্রেস একটি ভেরিয়েবলে সংরক্ষণ করুন।
export DB_HOST=$(gcloud beta alloydb instances describe $INSTANCE \
--cluster=$CLUSTER \
--region=$REGION \
--format=json | jq \
--raw-output ".ipAddress")
echo "DB_HOST=$DB_HOST"
৪. ক্লাউড রান জব কোড অন্বেষণ করুন
AlloyDB ডাটাবেস তৈরি করার একাধিক উপায় আছে। একটি উপায় হলো একটি Compute Engine VM তৈরি করে, একটি psql ক্লায়েন্ট ইনস্টল করা এবং তারপর ডাটাবেস তৈরির জন্য ইনস্ট্যান্সটিতে সংযোগ স্থাপন করা। আপনি এই পদ্ধতিটি সম্পর্কে এখানে আরও পড়তে পারেন।
এই ল্যাবে, আপনি ক্লাউড রান জব ব্যবহার করে একটি নতুন AlloyDB ডেটাবেস তৈরি করবেন।
নিচের ফাইলগুলো পর্যালোচনা করুন:
- ডকারফাইল - প্রয়োজনীয় ডিপেন্ডেন্সি (পোস্টগ্রেসকিউএল-ক্লায়েন্ট) ইনস্টল করে
- script.sh - ডাটাবেস তৈরি করতে কমান্ড লাইন ইউটিলিটি ব্যবহার করে।
ক্লাউড শেলে, নতুন ফোল্ডার তৈরি করুন:
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
৫. ক্লাউড রান জব স্থাপন করুন
সার্ভারলেস ভিপিসি অ্যাক্সেস কনফিগার করুন। এর মাধ্যমে ক্লাউড রান জব অভ্যন্তরীণ/প্রাইভেট আইপি ব্যবহার করে অ্যালয়ডিবি ক্লাস্টারের সাথে যোগাযোগ করতে পারে। এই ধাপে প্রায় ২ মিনিট সময় লাগে।
gcloud compute networks vpc-access connectors create ${VPC_CONNECTOR} \
--region=${REGION} \
--range=10.8.0.0/28
কন্টেইনার ইমেজ সংরক্ষণের জন্য আর্টিফ্যাক্ট রেজিস্ট্রি রিপোজিটরি তৈরি করুন।
gcloud artifacts repositories create db-job-repository \
--repository-format=docker \
--location=$REGION
কন্টেইনার ইমেজ তৈরি করে আর্টিফ্যাক্ট রেজিস্ট্রি-তে প্রকাশ করুন।
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 - ক্লাউড রান জবটি AlloyDB-এর প্রাইভেট আইপি অ্যাড্রেসে পৌঁছানোর জন্য VPC কানেক্টর ব্যবহার করবে।
ক্লাউড কনসোলে তৈরি করা কাজটি পর্যালোচনা করুন।

test ডাটাবেস তৈরি করতে ক্লাউড রান জবটি চালান।
gcloud beta run jobs execute db-job --region $REGION
ক্লাউড কনসোলে ক্লাউড রান জব লগগুলো পর্যালোচনা করুন।

৬. অভিনন্দন!
অভিনন্দন, আপনি কোডল্যাবটি সম্পন্ন করেছেন!
আমরা যা আলোচনা করেছি:
- AlloyDB ক্লাস্টার এবং ইনস্ট্যান্স কীভাবে তৈরি করবেন
- ক্লাউড রান জব ব্যবহার করে কীভাবে অ্যালয়ডিবি ডেটাবেস তৈরি করবেন
পরিষ্কার করা
এই টিউটোরিয়ালে ব্যবহৃত রিসোর্সগুলোর জন্য আপনার গুগল ক্লাউড অ্যাকাউন্টে চার্জ হওয়া এড়াতে, হয় রিসোর্সগুলো যে প্রজেক্টে রয়েছে সেটি ডিলিট করে দিন, অথবা প্রজেক্টটি রেখে দিয়ে আলাদা আলাদা রিসোর্সগুলো ডিলিট করে দিন।
প্রকল্পটি মুছে ফেলা হচ্ছে
বিলিং বন্ধ করার সবচেয়ে সহজ উপায় হলো টিউটোরিয়ালের জন্য তৈরি করা প্রজেক্টটি ডিলিট করে দেওয়া।