১. ভূমিকা
এই কোডল্যাব Google Compute Engine (GCE) ভার্চুয়াল মেশিনে (VM) AlloyDB Omni হাই অ্যাভেলিবিলিটি (HA) ক্লাস্টার ডিপ্লয় করার পদ্ধতি দেখায়। এই কোডল্যাব শেষ করার পরে, আপনি ম্যানেজমেন্ট অপারেশন করার জন্য কন্ট্রোল নোড সহ ৩টি ডেটাবেস নোড এবং ২টি HAProxy নোড নিয়ে গঠিত একটি HA রেফারেন্স আর্কিটেকচার প্রোভিশন করবেন।
পূর্বশর্ত
- Cloud Console থেকে Google Cloud প্রোজেক্ট ও Cloud Shell অ্যাক্সেস করা।
- Google Cloud SDK (
gcloud) ইনস্টল ও কনফিগার করা থাকতে হবে। gcloud ইনস্টল করা সংক্রান্ত বিবরণের জন্য, gcloud-install দেখুন - Terraform v1.9.8 ইনস্টল করা আছে।
আপনি কী শিখবেন
- AlloyDB Omni-র জন্য কীভাবে GCE VM তৈরি ও প্রস্তুত করতে হয়।
- AlloyDB Omni RPM Orchestrator কীভাবে ইনস্টল ও রান করতে হয়।
- HA রেফারেন্স আর্কিটেকচারের জন্য কীভাবে AlloyDB Omni RPM ইনস্টল ও কনফিগার করতে হয়।
আপনার কী কী প্রয়োজন
- AlloyDB Omni RPM ও RPM অর্কেস্ট্রেটরের URL লিঙ্ক পান। এর জন্য আপনাকে alloydb omni সাইন-আপ ফর্ম পূরণ করতে হবে। আপনার ইমেলে লিঙ্ক পাঠানো হয়, যেটির URL সার্ভার রিপোজিটরি। কোডল্যাব চলাকালীন ব্যবহার করা হবে এমন URL হাতের কাছে রাখতে নিম্নলিখিত এনভায়রনমেন্ট ভেরিয়েবল ইনিশিয়ালাইজ করুন।
export ORCHESTRATOR_ANSIBLE_COLLECTION_PATH="..." export ALLOYDB_OMNI_REPOSITORY_URL="..." export ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL="..." export ALLOYDB_OMNI_COMMON_REPOSITORY_URL="..." export ETCD_REPOSITORY_URL="..." - AlloyDB Omni ডিপ্লয়মেন্ট স্ট্যাক অ্যাক্সেস করা যায় এমন একটি চালু টার্মিনাল। এই উদ্দেশ্যে আপনি ক্লাউড শেল ব্যবহার করতে পারেন।
২. সেট-আপ ও প্রয়োজনীয়তা
প্রোজেক্ট সেট-আপ
Google Cloud প্রোজেক্ট তৈরি করা
- Google Cloud Console-এ, প্রোজেক্ট বাছাইকারী পৃষ্ঠায়, Google Cloud প্রোজেক্ট বেছে নিন বা তৈরি করুন।
- আপনার Cloud প্রোজেক্টের জন্য বিলিং চালু করা আছে কিনা তা ভাল করে দেখে নিন। কোনও প্রোজেক্টে বিলিং চালু আছে কিনা তা কীভাবে চেক করবেন তা জানুন।
Cloud Shell চালু করুন
Google Cloud আপনার ল্যাপটপ থেকে রিমোটলি অপারেট করা গেলেও, এই কোডল্যাবে আপনি Google Cloud Shell ব্যবহার করবেন, এটি হল ক্লাউডে রান করা একটি কমান্ড লাইন এনভায়রনমেন্ট।
Google Cloud Console থেকে, উপরে ডানদিকের টুলবারে Cloud Shell আইকনে ক্লিক করুন:

অথবা, আপনি G তারপরে S টিপতে পারেন। আপনি Google Cloud Console-এর মধ্যে থাকলে অথবা এই লিঙ্ক ব্যবহার করলে এই সিকোয়েন্স Cloud Shell অ্যাক্টিভেট করবে।
পরিবেশে প্রোভিশন ও কানেক্ট করতে মাত্র কয়েক মুহূর্ত সময় লাগবে। এটি সম্পূর্ণ হয়ে গেলে, আপনি এই ধরনের কিছু দেখতে পাবেন:

এই ভার্চুয়াল মেশিনে আপনার প্রয়োজনীয় সব ডেভেলপমেন্ট টুল লোড করা আছে। এটি একটি স্থায়ী ৫ জিবি হোম ডিরেক্টরি অফার করে এবং Google Cloud-এ চলে, যা নেটওয়ার্ক পারফর্ম্যান্স ও যাচাইকরণকে অনেক উন্নত করে। এই কোডল্যাবে আপনার সমস্ত কাজ ব্রাউজারের মধ্যেই করা যেতে পারে। আপনাকে কিছু ইনস্টল করতে হবে না।
৩. Google Cloud Compute Engine ভার্চুয়াল মেশিন তৈরি করা
Terraform স্ক্রিপ্ট তৈরি করা
- আপনার প্রোজেক্ট আইডি ও পছন্দসই ক্লাস্টারের নামের জন্য এনভায়রনমেন্ট ভেরিয়েবল নির্ধারণ করুন। আপনি কোডল্যাব জুড়ে এগুলি ব্যবহার করবেন।
মনে রাখবেন: Google Cloud প্রোজেক্ট আইডি শুধুমাত্র ৬ থেকে ৩০টি অক্ষরের মধ্যে হতে হবে। আরও তথ্যের জন্য, https://docs.cloud.google.com/resource-manager/docs/creating-managing-projects#before_you_begin দেখুনexport PROJECT="your-project-id" export CLUSTER="your-cluster-name" - আপনি Google Cloud অ্যাকাউন্ট ব্যবহারকারী হিসেবে লগ-ইন করেছেন কিনা তা নিশ্চিত করুন।
gcloud auth login - আপনার ডিপ্লয়মেন্টের জন্য একটি ওয়ার্কিং ডিরেক্টরি তৈরি করুন এবং আপনার রিপোজিটরি সোর্স থেকে প্রয়োজনীয় Terraform কনফিগারেশন ফাইল কপি করুন।
mkdir -p ~/alloydb-omni/$PROJECT/$CLUSTER cd ~/alloydb-omni/$PROJECT/$CLUSTER gcloud storage cp gs://alloydb-omni-install/rpm-orchestrator/gce/terraform/*.tf . - নিম্নলিখিত কন্টেন্ট অনুযায়ী রেফারেন্স আর্কিটেকচার অনুসারে প্রয়োজনীয় প্যারামিটার নির্দিষ্ট করতে একটি
terraform.tfvarsফাইল তৈরি করুন:cat > terraform.tfvars <<EOF # Required instance counts for reference architecture db_instance_count = 3 haproxy_instance_count = 2 control_instance_count = 1 # Optional: Customize if needed with the below variables # os_image = "rocky-linux-cloud/rocky-linux-9" # zone = "us-west4-c" # region_1 = "us-west4" # db_instance_type = "c4-highmem-4" # db_disk_type = "hyperdisk-balanced" # db_data_size = "50" # GB # data_dir = "/data" EOF
Terraform স্ক্রিপ্ট এক্সিকিউট ও যাচাই করা
- আপনি এখন VM প্রোভিশন করতে পারবেন।
terraform init - VM তৈরি করার আগে, VM ও অন্যান্য রিসোর্স তৈরি করার জন্য আপনার কাছে প্রয়োজনীয় অ্যাক্সেস আছে কিনা তা নিশ্চিত করুন। এককথায়, আপনার নিম্নলিখিত অনুমতিগুলি লাগবে।
roles/compute.admin roles/iam.roleAdmin roles/compute.osAdminLogin roles/iam.serviceAccountCreator roles/iam.serviceAccountUser roles/artifactregistry.repoAdmin roles/storage.objectUser roles/resourcemanager.projectIamAdmin roles/serviceusage.serviceUsageAdmin - রিসোর্স প্রোভিশন করার জন্য কনফিগারেশন যাচাই করুন এবং কনফিগারেশন প্রয়োগ করুন।
মনে রাখবেন: ডিপ্লয়মেন্ট কনফিগারেশন অনুযায়ী Terraform v1.9.8 ব্যবহার করছেন কিনা তা নিশ্চিত করুন।terraform validate terraform apply --auto-approve - Terraform সম্পূর্ণ হয়ে গেলে,
gcloudব্যবহার করে তৈরি করা ইনস্ট্যান্সের তালিকা তৈরি করে ভার্চুয়াল মেশিন সফলভাবে তৈরি করা হয়েছে কিনা তা যাচাই করুন। আপনার ৩টি DB নোড, ২টি HAProxy নোড এবং কন্ট্রোল VM ও সংশ্লিষ্ট জোন অনুযায়ী ইনস্ট্যান্স দেখতে পাবেন। কন্ট্রোল নোডের জন্য ZONE রেকর্ড করুন। এই কোডল্যাবের সময়, পরে আমাদের এটি প্রয়োজন হবে।gcloud compute instances list --filter="name~$CLUSTER" --project=$PROJECTexport ZONE=$(gcloud compute instances list \ --filter="name=$CLUSTER-control" \ --format="value(zone)" --project=$PROJECT)
৪. ডেপ্লয়মেন্টের জন্য VM প্রস্তুত করা
কন্ট্রোল নোডে SSH সেশন তৈরি করতে হবে এবং সব VM-এ (এগুলিকে নোডও বলা হয়) SSH অ্যাক্সেস চালু করার ধাপগুলি সম্পূর্ণ করতে হবে।
- আপনার প্রোজেক্ট ও ক্লাস্টারের জন্য এনভায়রনমেন্ট ভেরিয়েবল নির্দিষ্ট করা আছে কিনা তা নিশ্চিত করুন।
export PROJECT="your-project-id" export CLUSTER="your-cluster-name" - SSH কী তৈরি করুন এবং কন্ট্রোল VM-এ লগ-ইন করার জন্য সেটি যোগ করুন।
# Replace values with your specific GCP project, cluster and zone details ssh-keygen -t ed25519 -f $HOME/.ssh/google_compute_engine gcloud compute os-login ssh-keys add --key-file=$HOME/.ssh/google_compute_engine.pub --project=$PROJECT - SSH কানেকশন ও VRRP ট্রাফিককে অনুমতি দিতে ফায়ারওয়াল সংক্রান্ত নিয়ম তৈরি করুন।
gcloud compute config-ssh --project=$PROJECT gcloud compute firewall-rules create $CLUSTER-allow-ssh --network=$CLUSTER --project=$PROJECT --direction=INGRESS --action=allow --rules=tcp:22 --source-ranges="0.0.0.0/0" gcloud compute firewall-rules create $CLUSTER-allow-vrrp --network=$CLUSTER --project=$PROJECT --allow=112 --source-ranges="0.0.0.0/0" - SSH-এর মাধ্যমে কন্ট্রোল VM-এ কানেক্ট করুন:
gcloud compute ssh "$CLUSTER-control" --zone=$ZONE --project=$PROJECT - কন্ট্রোল নোডে ইউজারনেমের মতো একই নামে Linux গ্রুপ তৈরি করুন:
sudo groupadd -f $(id -un) sudo usermod -aG $(id -un) $(id -un) - Terraform সেট-আপ কিছু কনফিগারেশন স্ক্রিপ্ট তৈরি করে এবং কন্ট্রোল VM-এর
/tmp/ডিরেক্টরিতে সেগুলি স্টেজ করে, এর মধ্যে ক্লাস্টারের নাম, পরিষেবা অ্যাকাউন্ট, প্রোজেক্টের নাম ইত্যাদি অন্তর্ভুক্ত। কন্ট্রোল নোডে সেট-আপ স্ক্রিপ্ট ব্যবহার করে কন্ট্রোল নোড থেকে সমস্ত ক্লাস্টার নোডে পাসওয়ার্ড ছাড়া ssh অ্যাক্সেস তৈরি করুন। গুরুত্বপূর্ণ: service_account ব্যবহারকারীকে নোট করুন। এই কোডল্যাবে আমরা এটি পরে SSH_USER হিসেবে ব্যবহার করব।/tmp/setup-ssh-for-cluster.sh - এই কোডল্যাবের জন্য, আমরা সব নোডে SELinux বন্ধ করে দিতে পারি। Terraform স্ক্রিপ্ট ‘/tmp/run-all.sh' যোগ করে যা এই উদ্দেশ্যে ব্যবহার করা যেতে পারে।
/tmp/run-all.sh sudo setenforce 0 - আপনি AlloyDB Omni-তে সাইন-আপ করে থাকলে এবং লিঙ্ক পেয়ে থাকলে, এবার সেইসব URL এনভায়রনমেন্ট ভেরিয়েবলে যোগ করার পালা।
ফাইলেcat >> ~/.codelab.env <<EOF export ORCHESTRATOR_ANSIBLE_COLLECTION_PATH="..." export ALLOYDB_OMNI_REPOSITORY_URL="..." export ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL="..." export ALLOYDB_OMNI_COMMON_REPOSITORY_URL="..." export ETCD_REPOSITORY_URL="..." EOFterraform/variables.tfcidr_range ইনপুট ভেরিয়েবল থেকে আপনার এনভায়রনমেন্টের জন্য একটি ভার্চুয়াল IP ঠিক করুন যাতে এটি অন্য নোডের সাথে কনফ্লিক্ট না করে, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে:cat >> ~/.codelab.env <<EOF export VIRTUAL_IP="10.1.0.50" EOF
৫. সব VM-এ প্রয়োজনীয় সফ্টওয়্যার কম্পোনেন্ট ইনস্টল করুন
পরবর্তী ধাপ হল VM-এ প্রয়োজনীয় SW কম্পোনেন্ট ইনস্টল করা। এটি কন্ট্রোল নোডে কোঅর্ডিনেট করা যেতে পারে। নিচে উল্লেখ করা সব কমান্ড কন্ট্রোল নোডে এক্সিকিউট করতে হবে।
- কন্ট্রোল নোডে আগে থেকে চালু না থাকলে, SSH-এর মাধ্যমে কন্ট্রোল VM-এ কানেক্ট করুন।
কন্ট্রোল VM ssh প্রম্পটে পৌঁছে গেলে, সোর্স এনভায়রনমেন্ট ফাইল।gcloud compute ssh "$CLUSTER-control" --zone=$ZONE --project=$PROJECTsource ~/.codelab.env - কন্ট্রোল নোডে, Ansible এবং প্রয়োজনীয় Python লাইব্রেরি ইনস্টল করুন।
sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm -y sudo dnf install -y ansible sudo dnf install -y python3-grpcio python3-protobuf python3-googleapis-common-protos python3-grpcio-status - এরপরে, RPM Orchestrator Ansible কালেকশন tar ফাইল ডাউনলোড করুন এবং সেটি ইনস্টল করুন।
gcloud storage cp "gs://${ORCHESTRATOR_ANSIBLE_COLLECTION_PATH#https://storage.googleapis.com/}google-alloydbomni_orchestrator-*.tar.gz" . COLLECTION_FILE=$(ls -1 google-alloydbomni_orchestrator-*.tar.gz \ | sort -V | tail -n 1) ansible-galaxy collection install "$COLLECTION_FILE" ansible-galaxy collection list | grep alloydbomni_orchestratorsort -Vওtail -n 1কমান্ড লেটেস্ট ভার্সন সহ ফাইল বেছে নেয়। মনে রাখবেন: ORCHESTRATOR_ANSIBLE_COLLECTION_PATH ভেরিয়েবলের শেষে "/" আছে কিনা দেখুন। - আপনার ক্লাস্টার টপোলজি বোঝার জন্য অর্কেস্ট্রেটর Ansible ইনভেনটরি ফর্ম্যাটে একটি ডিপ্লয়মেন্ট স্পেসিফিকেশন ফাইল ব্যবহার করে। কন্ট্রোল নোডে আপনার নোডের বিবরণ সহ deployment_spec.yaml নামের একটি ফাইল তৈরি করুন।
মনে রাখবেন: জেনারেট করা ফাইলটি সঠিক ভ্যালু উল্লেখ করছে কিনা তা নিশ্চিত করতে সেটি পর্যালোচনা করুন।cat > deployment_spec.yaml <<EOF alloydbomni: vars: cluster_manager: name: "$CLUSTER" etcd: setup: true config_forcewrite: true alloydbomni: major_version: "18" repo_url: $ALLOYDB_OMNI_REPOSITORY_URL alloydbomni_monitor: repo_url: $ALLOYDB_OMNI_COMMON_REPOSITORY_URL alloydbomni_cluster_manager: repo_url: $ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL alloydbomni_node_manager: repo_url: $ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL pgbouncer: repo_url: $ALLOYDB_OMNI_COMMON_REPOSITORY_URL pgbackrest: repo_url: $ALLOYDB_OMNI_COMMON_REPOSITORY_URL children: primary_instance_nodes: hosts: $CLUSTER-db1: $CLUSTER-db2: $CLUSTER-db3: load_balancer_nodes: hosts: $CLUSTER-haproxy1: $CLUSTER-haproxy2: EOF - অর্কিস্ট্রেটর কালেকশন থেকে ইনস্টল রোল রেফারেন্স করে install.yaml নামে একটি প্লেবুক তৈরি করুন।
মনে রাখবেন: জেনারেট করা ফাইলটি সঠিক ভ্যালু উল্লেখ করছে কিনা তা নিশ্চিত করতে সেটি পর্যালোচনা করুন।cat > install.yaml <<EOF - name: Install AlloyDB Omni cluster components hosts: all vars: ansible_become: true ansible_user: $SSH_USER ansible_ssh_private_key_file: $HOME/ssh-key-cluster-sa roles: - role: google.alloydbomni_orchestrator.install EOF - আপনার ইনভেনটরি ফাইল ব্যবহার করে প্লেবুক এক্সিকিউট করুন যাতে নির্দিষ্ট করা সব নোড জুড়ে RPM ডাউনলোড ও ইনস্টল করা যায়।
ansible-playbook -i deployment_spec.yaml install.yaml
৬. AlloyDB Omni ক্লাস্টার বুটস্ট্র্যাপ করা
এই পর্যায়ে, আমরা সব নোডে প্রয়োজনীয় সব কম্পোনেন্ট ইনস্টল করেছি। আমরা AlloyDB Omni ক্লাস্টার বুটস্ট্র্যাপ করার জন্য প্রস্তুত।
- কন্ট্রোল নোডে আগে থেকে চালু না থাকলে, SSH-এর মাধ্যমে কন্ট্রোল VM-এ কানেক্ট করুন।
কন্ট্রোল VM ssh প্রম্পটে পৌঁছে গেলে, সোর্স এনভায়রনমেন্ট ফাইল।gcloud compute ssh "$CLUSTER-control" --zone=$ZONE --project=$PROJECTsource ~/.codelab.env - আপনার পাসওয়ার্ডের জন্য হ্যাশ তৈরি করুন এবং ইনস্টল করা AlloyDB Omni ডেটাবেস ভার্সন ফেচ করুন:
encoded_password=$(echo -n "your unique password" | base64) DB_VERSION=$(/tmp/run-all.sh -t db 'rpm -q --qf "%{VERSION}\n" alloydbomni18' | tail -n 1) echo "$DB_VERSION" - ক্লাস্টার তৈরি করতে, AlloyDB Omni-কে এটি কীভাবে কনফিগার করতে হয় তা জানতে হবে। DB ক্লাস্টার স্পেসিফিকেশনের জন্য dbcluster.yaml নামে একটি ফাইল তৈরি করুন।
cat > dbcluster.yaml <<EOF Secret: metadata: name: db-pw-$CLUSTER spec: type: Opaque data: $CLUSTER: $encoded_password --- DBCluster: metadata: name: $CLUSTER spec: databaseVersion: $DB_VERSION mode: "" availability: numberOfStandbys: 2 enableAutoFailover: true enableAutoHeal: true autoFailoverTriggerThreshold: 2 autoHealTriggerThreshold: 2 healthcheckPeriodSeconds: 5 replayReplicationSlotsOnStandbys: false primarySpec: adminUser: passwordRef: name: db-pw-$CLUSTER resources: cpu: 4 memory: 32Gi disks: - name: DataDisk path: $PGDATA dbLoadBalancerOptions: gcp: loadBalancerIP: "$VIRTUAL_IP" loadBalancerType: "internal" loadBalancerInterface: "eth0" EOF - bootstrap.yaml নামের একটি প্লেবুক তৈরি করুন, যা AlloyDB Omni ক্লাস্টার তৈরি করার জন্য বুটস্ট্র্যাপ অ্যান্সিবল রোলের রেফারেন্স নেবে।
cat > bootstrap.yaml <<EOF - name: Create DBCluster hosts: localhost roles: - role: google.alloydbomni_orchestrator.bootstrap EOF - ক্লাস্টার তৈরি করতে আপনার প্লেবুক রান করান
ansible-playbook bootstrap.yaml -i deployment_spec.yaml -e resource_spec=dbcluster.yaml
৭. (ঐচ্ছিক) PgBouncer কানেকশন পুলার কনফিগার করা
AlloyDB Omni, PgBouncer ব্যবহার করে লাইটওয়েট কানেকশন পুলিং কাজ করে। আপনার ক্লাস্টার প্রভিশন করার সাথে সাথেই আপনি PgBouncer কনফিগার ও বুটস্ট্র্যাপ করতে পারবেন।
- pgbouncer.yaml নামের একটি রিসোর্স স্পেসিফিকেশন ফাইল তৈরি করুন যা আপনার ডেটাবেস ক্লাস্টারের সাথে কানেকশন পুলারকে যুক্ত করে:
cat > pgbouncer.yaml <<EOF PgBouncer: metadata: name: pgbouncer-pooler spec: dbclusterRef: $CLUSTER allowSuperUserAccess: true accessMode: "rw" port: 6432 EOF - আগে তৈরি করা একই bootstrap.yaml প্লেবুক ব্যবহার করে PgBouncer পুলার বুটস্ট্র্যাপ করুন, নতুন স্পেসিফিকেশন ফাইল পাস করুন:
ansible-playbook bootstrap.yaml -i deployment_spec.yaml -e resource_spec=pgbouncer.yaml
৮. AlloyDB Omni ক্লাস্টার যাচাই করা
আপনার ক্লাস্টার সঠিকভাবে কাজ করছে কিনা এবং লোড ব্যালেন্সার ব্যবহার করে অ্যাক্সেস করা যাচ্ছে কিনা তা যাচাই করতে, আপনি কন্ট্রোল নোড থেকে স্ট্যান্ডার্ড PostgreSQL ক্লায়েন্ট ব্যবহার করে এটির সাথে কানেক্ট করতে পারবেন।
- কন্ট্রোল নোডে PostgreSQL 18 ক্লায়েন্ট রিপোজিটরি ও প্যাকেজ ইনস্টল করুন:
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm sudo dnf install -y postgresql18 - আগে রিজার্ভ করা ভার্চুয়াল IP ব্যবহার করে ক্লাস্টারে কানেক্ট করুন। dbcluster.yaml-এ এনকোড করা পাসওয়ার্ডের জন্য আপনাকে প্রম্পট করা হবে:
/usr/pgsql-18/bin/psql -h $VIRTUAL_IP -U postgres -W - কানেক্ট করার পরে, ক্লাস্টারের অবস্থা যাচাই করতে আপনি সাধারণ SQL কোয়েরি চালাতে পারবেন, যেমন, ডেটাবেস ভার্সন চেক করা:
আপনি এমন আউটপুট দেখতে পাবেন যা থেকে বোঝা যাবে যে AlloyDB Omni-তে PostgreSQL 18 চলছে। প্রম্পট থেকে বেরিয়ে আসতেpostgres=# SELECT version();\qটাইপ করুন।
৯. (ঐচ্ছিক) pgBackRest ব্যবহার করে ডেটার ব্যাক-আপ নেওয়া
Cloud Storage-এ সরাসরি ব্যাক-আপ ম্যানেজ করার জন্য AlloyDB Omni, pgBackRest-এর সাথে ইন্টিগ্রেট করে। আপনি একটি ব্যাক-আপ প্ল্যান কনফিগার করতে এবং আপনার Terraform সেট-আপের মাধ্যমে তৈরি GCS বাকেটে অন-ডিমান্ড ব্যাক-আপ ট্রিগার করতে পারবেন।
- আপনার প্রভিশন করা GCS বাকেটের দিকে নির্দেশ করে backup_plan.yaml নামের একটি ব্যাক-আপ প্ল্যান স্পেসিফিকেশন ফাইল তৈরি করুন:
cat > backup_plan.yaml <<EOF BackupPlan: metadata: name: pgb-plan spec: dbclusterRef: $CLUSTER backupLocation: type: GCS gcsOptions: bucket: $CLUSTER-gcs-backups key: /backups EOF - ব্যাক-আপ ম্যানেজমেন্ট রোলের রেফারেন্স সহ backup.yaml নামের একটি Ansible প্লেবুক তৈরি করুন:
cat > backup.yaml <<EOF - name: Manage AlloyDB Omni Backups hosts: localhost roles: - role: google.alloydbomni_orchestrator.backup EOF - backup.yaml প্লেবুক ব্যবহার করে ব্যাক-আপ প্ল্যান প্রয়োগ করুন:
ansible-playbook backup.yaml -i deployment_spec.yaml -e resource_spec=backup_plan.yaml - প্ল্যানটি সফলভাবে সেট-আপ করা হয়ে গেলে, create_backup.yaml নামের একটি অন-ডিমান্ড ব্যাক-আপ রিসোর্স ফাইল তৈরি করুন।
cat > create_backup.yaml <<EOF Backup: metadata: name: on-demand-backup spec: backupPlanRef: pgb-plan dbclusterRef: $CLUSTER EOF - ব্যাক-আপ শুরু করতে প্লেবুক এক্সিকিউট করুন:
ansible-playbook backup.yaml -i deployment_spec.yaml -e resource_spec=create_backup.yaml - ব্যাক-আপের স্ট্যাটাস যাচাই করতে, status.yaml প্লেবুক তৈরি করুন:
cat > status.yaml <<EOF
- name: Fetch AlloyDB Omni Resource Status
hosts: localhost
roles:
- role: google.alloydbomni_orchestrator.status
EOF
- সব ব্যাক-আপ তালিকাভুক্ত করতে প্লেবুক চালান:
ansible-playbook status.yaml -i deployment_spec.yaml -e resource_type=Backup
- অথবা, আগে তৈরি করা নির্দিষ্ট ব্যাক-আপ সম্পর্কে বিস্তারিত তথ্য পেতে,
-e resource_name=on-demand-backupপাস করুন:
ansible-playbook status.yaml -i deployment_spec.yaml \
-e resource_type=Backup \
-e resource_name=on-demand-backup
১০. রিসোর্স ক্লিন-আপ করা
ডেপ্লয়মেন্ট সম্পূর্ণ হয়ে গেলে, চার্জ এড়াতে আপনি প্রোভিশন করা রিসোর্স ধ্বংস করে দিতে পারেন।
- teardown.yaml নামে একটি প্লেবুক তৈরি করুন:
cat > teardown.yaml <<EOF - name: Tear down AlloyDB Omni cluster hosts: localhost roles: - role: google.alloydbomni_orchestrator.delete EOF - ansible-playbook ব্যবহার করে প্লেবুক এক্সিকিউট করুন। আপনি ব্যাক-আপ কনফিগার করে থাকলে, প্রথমে ব্যাক-আপ ও BackupPlan রিসোর্স মুছে দিন:
আপনি PgBouncer কনফিগার করে থাকলে, এর পরে কানেকশন পুলার রিসোর্স মুছে দিন:ansible-playbook teardown.yaml -i deployment_spec.yaml -e "resource_type=Backup" -e "resource_name=on-demand-backup" ansible-playbook teardown.yaml -i deployment_spec.yaml -e "resource_type=BackupPlan" -e "resource_name=pgb-plan" তারপর, resource_type হিসেবে DBCluster নির্দিষ্ট করুন এবং ডেটাবেস ক্লাস্টারটি মুছে দিন:ansible-playbook teardown.yaml -i deployment_spec.yaml -e "resource_type=PgBouncer" -e "resource_name=pgbouncer-pooler"ansible-playbook teardown.yaml -i deployment_spec.yaml -e "resource_type=DBCluster" -e "resource_name=$CLUSTER" - ক্লাস্টার মুছে দেওয়ার পরে, কন্ট্রোল নোড থেকে লগ-আউট করুন, আপনার টার্মিনালে ফিরে যান এবং আপনার Terraform ওয়ার্ক ডিরেক্টরিতে নেভিগেট করুন।
মনে রাখবেন: আপনি যদি Cloud Shell-এ নতুন করে লগ-ইন করে থাকেন, তাহলে এগুলি সেট করতে ভুলবেন না:export PROJECT="your-project-id" export CLUSTER="your-cluster-name" - VRRP ফায়ারওয়াল নিয়ম মুছে দিন এবং Terraform-এর মাধ্যমে ম্যানেজ করা রিসোর্স ধ্বংস করুন:
gcloud compute firewall-rules delete -q "$CLUSTER-allow-vrrp" --project="$PROJECT" gcloud compute firewall-rules delete -q "$CLUSTER-allow-ssh" --project="$PROJECT" terraform destroy - প্রম্পট করা হলে ডেটা ধ্বংস করার বিষয়টি কনফার্ম করুন। যেহেতু মাঝে মাঝে নেটওয়ার্ক রিসোর্স বা রুট থেকে যেতে পারে, তাই সম্পূর্ণভাবে মুছে ফেলা নাও যেতে পারে। এটি নিশ্চিত করতে যে সংশ্লিষ্ট সমস্ত ফায়ারওয়াল নিয়ম, NAT গেটওয়ে, রাউটার, রুট, সাবনেট এবং নেটওয়ার্ক সম্পূর্ণরূপে মুছে ফেলা হয়েছে, নিম্নলিখিত নিরাপদ ক্লিন-আপ কমান্ড চালান।
REGION-এর জায়গায় আপনার নির্দিষ্ট ডিপ্লয়মেন্ট অঞ্চল লিখুন, যেমন ‘us-central1':# Delete any remaining firewall rules associated with the cluster gcloud compute firewall-rules list --project=$PROJECT 2> /dev/null | grep ^$CLUSTER- | cut -f1 -d' ' | \ while read rule; do gcloud compute firewall-rules delete --project=$PROJECT --quiet $rule; done # Delete the Cloud NAT gateway and router if they still exist gcloud compute routers nats describe $CLUSTER-nat-gw --router=$CLUSTER-router --region=REGION --project=$PROJECT 2>/dev/null \ && gcloud compute routers nats delete $CLUSTER-nat-gw --router=$CLUSTER-router --region=REGION --project=$PROJECT --quiet gcloud compute routers describe $CLUSTER-router --region=REGION --project=$PROJECT 2>/dev/null \ && gcloud compute routers delete $CLUSTER-router --region=REGION --project=$PROJECT --quiet # Delete any remaining custom routes gcloud compute routes list --project=$PROJECT --filter="network:$CLUSTER" --format="value(name)" 2>/dev/null | \ while read route; do gcloud compute routes delete --project=$PROJECT --quiet $route 2>/dev/null || true; done # Delete the subnet and network if they still exist gcloud compute networks subnets describe $CLUSTER --region=REGION --project=$PROJECT 2>/dev/null \ && gcloud compute networks subnets delete $CLUSTER --region=REGION --project=$PROJECT --quiet gcloud compute networks describe $CLUSTER --project $PROJECT 2> /dev/null \ && gcloud compute networks delete $CLUSTER --project $PROJECT --quiet
১১. অভিনন্দন
কোডল্যাব সম্পূর্ণ করার জন্য অভিনন্দন।
আমরা কী কী কভার করেছি
- AlloyDB Omni-র জন্য কীভাবে GCE VM তৈরি ও প্রস্তুত করতে হয়।
- AlloyDB Omni RPM Orchestrator কীভাবে ইনস্টল ও রান করতে হয়।
- HA রেফারেন্স আর্কিটেকচারের জন্য কীভাবে AlloyDB Omni RPM ইনস্টল ও কনফিগার করতে হয়।
আপনি ডকুমেন্টেশন থেকে AlloyDB Omni সম্পর্কে আরও জানতে পারবেন।