ক্লাউড রান জব দিয়ে AlloyDB ডাটাবেস তৈরি করা

1। সংক্ষিপ্ত বিবরণ

এই ল্যাবে, আপনি ক্লাউড রান জব সহ একটি AlloyDB ডাটাবেস তৈরি করবেন। আপনি ব্যক্তিগত আইপি ব্যবহার করে ক্লাউড রান জব এবং অ্যালোয়ডিবি ডেটাবেসের মধ্যে সংযোগ সক্ষম করতে ব্যক্তিগত পরিষেবা অ্যাক্সেস এবং সার্ভারহীন ভিপিসি অ্যাক্সেস কনফিগার করবেন।

যা শিখবেন

এই ল্যাবে, আপনি নিম্নলিখিতগুলি কীভাবে করবেন তা শিখবেন:

  • AlloyDB ক্লাস্টার এবং উদাহরণ সেটআপ করুন
  • AlloyDB ডাটাবেস তৈরি করতে ক্লাউড রান জব স্থাপন করুন

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

ক্লাউড প্রজেক্ট সেটআপ

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

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

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

এনভায়রনমেন্ট সেটআপ

অনুসন্ধান বারের ডানদিকে আইকনে ক্লিক করে ক্লাউড শেল সক্রিয় করুন।

eb0157a992f16fa3.png

পরিষেবা API সক্রিয় করতে, টার্মিনালে নীচের কমান্ডটি অনুলিপি এবং পেস্ট করুন এবং এন্টার টিপুন:

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"

ব্যক্তিগত পরিষেবা অ্যাক্সেস কনফিগার করুন

আপনার ভিপিসি নেটওয়ার্ক এবং অন্তর্নিহিত Google ক্লাউড ভিপিসি নেটওয়ার্ক যেখানে আপনার AlloyDB সংস্থানগুলি (ক্লাস্টার এবং ইনস্ট্যান্স) থাকে তার মধ্যে একটি VPC পিয়ারিং সংযোগ হিসাবে ব্যক্তিগত পরিষেবা অ্যাক্সেস কার্যকর করা হয়৷ ব্যক্তিগত সংযোগ আপনার ভিপিসি নেটওয়ার্কের সংস্থানগুলিকে অভ্যন্তরীণ IP ঠিকানাগুলি ব্যবহার করে একচেটিয়াভাবে অ্যাক্সেস করে এমন AlloyDB সংস্থানগুলির সাথে যোগাযোগ করতে সক্ষম করে৷ আপনার VPC নেটওয়ার্কের সংস্থানগুলির AlloyDB সংস্থানগুলিতে পৌঁছানোর জন্য ইন্টারনেট অ্যাক্সেস বা বাহ্যিক IP ঠিকানাগুলির প্রয়োজন নেই৷

একটি VPC নেটওয়ার্কে একটি ব্যক্তিগত পরিষেবা অ্যাক্সেস কনফিগারেশন তৈরি করতে যা AlloyDB হিসাবে একই ক্লাউড প্রকল্পে থাকে, আপনি দুটি ক্রিয়াকলাপ সম্পাদন করেন:

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 নেটওয়ার্কের মধ্যে একটি ব্যক্তিগত সংযোগ তৈরি করুন৷ এই ধাপে ~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

ক্লাউড কনসোলে তৈরি ক্লাস্টার পর্যালোচনা করুন।

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. ক্লাউড রান জব কোড এক্সপ্লোর করুন

একটি AlloyDB ডাটাবেস তৈরি করার একাধিক উপায় রয়েছে। একটি হল একটি কম্পিউট ইঞ্জিন ভিএম তৈরি করা, একটি psql ক্লায়েন্ট ইনস্টল করা এবং তারপর একটি ডাটাবেস তৈরি করার জন্য উদাহরণের সাথে সংযোগ করা। আপনি এখানে এই পদ্ধতির সম্পর্কে আরও পড়তে পারেন।

এই ল্যাবে, আপনি Cloud Run Job ব্যবহার করে একটি নতুন AlloyDB ডাটাবেস তৈরি করবেন।

নীচের ফাইলগুলি পর্যালোচনা করুন:

  • ডকারফাইল - প্রয়োজনীয় নির্ভরতা ইনস্টল করে (postgresql-ক্লায়েন্ট)
  • 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

5. ক্লাউড রান জব স্থাপন করুন

সার্ভারহীন ভিপিসি অ্যাক্সেস কনফিগার করুন। এটি ক্লাউড রান জবকে অভ্যন্তরীণ/প্রাইভেট আইপি ব্যবহার করে AlloyDB ক্লাস্টারের সাথে যোগাযোগ করতে দেয়। এই ধাপে ~2 মিনিট সময় লাগে।

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 সংযোগকারী ব্যবহার করবে।

ক্লাউড কনসোলে তৈরি কাজের পর্যালোচনা করুন।

93d8224eca8c687f.png

test ডাটাবেস তৈরি করতে ক্লাউড রান জব এক্সিকিউট করুন।

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

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

3f2269736b53f44c.png

6. অভিনন্দন!

অভিনন্দন, আপনি কোডল্যাব শেষ করেছেন!

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

  • কিভাবে AlloyDB ক্লাস্টার এবং উদাহরণ তৈরি করবেন
  • ক্লাউড রান জব ব্যবহার করে কিভাবে AlloyDB ডাটাবেস তৈরি করবেন

পরিষ্কার কর

এই টিউটোরিয়ালে ব্যবহৃত সংস্থানগুলির জন্য আপনার Google ক্লাউড অ্যাকাউন্টে চার্জ এড়াতে, হয় সংস্থানগুলি রয়েছে এমন প্রকল্পটি মুছুন, অথবা প্রকল্পটি রাখুন এবং পৃথক সংস্থানগুলি মুছুন৷

প্রকল্প মুছে ফেলা হচ্ছে

বিলিং দূর করার সবচেয়ে সহজ উপায় হল আপনি টিউটোরিয়ালের জন্য তৈরি করা প্রকল্পটি মুছে ফেলা।