একটি প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট সহ GCE তে Gemini CLI

১. সংক্ষিপ্ত বিবরণ

আপনি আপনার লোকাল এবং ভার্চুয়াল উভয় পরিবেশেই Gemini CLI ব্যবহার করতে পারেন। Gemini CLI হলো একটি ওপেন-সোর্স এআই এজেন্ট যা Gemini-এর ক্ষমতা সরাসরি আপনার টার্মিনালে নিয়ে আসে। নেটওয়ার্কিং-এর দৃষ্টিকোণ থেকে, আপনি যখন Gemini CLI ব্যবহার করেন, তখন এটি সর্বজনীনভাবে অ্যাক্সেসযোগ্য API IP অ্যাড্রেসের মাধ্যমে Gemini API-কে একটি কল করে।

এখন কী হবে যদি আপনি একটি গুগল কম্পিউট ইঞ্জিন মেশিনে জেমিনি সিএলআই (Gemini CLI) ব্যবহার করতে চান কিন্তু এপিআই-এর সাথে ব্যক্তিগতভাবে সংযোগ করতে চান? এই কোডল্যাবে আপনি দেখতে পাবেন কীভাবে গুগল এপিআই-এর জন্য প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট কনফিগার করতে হয়, যাতে আপনার নির্দিষ্ট করা একটি অভ্যন্তরীণ আইপি অ্যাড্রেসে ট্র্যাফিক রাউট করা যায়।

কনফিগারেশনগুলো টেরাফর্ম, জিক্লাউড এবং কনসোলের সমন্বয়ে হবে।

এই ল্যাবে তোমরা নিম্নলিখিত কাজটি কীভাবে সম্পাদন করতে হয় তা শিখবে:

  • ভিএম ইনস্ট্যান্স এবং ক্লাউড ন্যাট সেট আপ করুন
  • Gemini CLI ইনস্টল করুন এবং প্রমাণীকরণ করুন।
  • Googleapis- এর সাথে সংযোগ করার জন্য প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট কনফিগার করুন।
  • *.googleais-এর সাথে সংযোগের পথ যাচাই করুন।
  • ম্যানুয়াল ডিএনএস এন্ট্রি কনফিগার করুন

এই ল্যাবে, আপনারা নিম্নলিখিত প্যাটার্নটি তৈরি করবেন।

চিত্র ১।

809ec92718405b07.png

২. গুগল ক্লাউড পরিষেবা সেটআপ

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

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

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

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

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

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

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

55efc1aaa7a4d3ad.png

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

7ffe5cbb04455448.png

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

৩. কাজ ১. টেরাফর্ম দিয়ে পরিবেশ সেটআপ করুন

আমরা ফায়ারওয়াল নিয়ম এবং সাবনেট সহ একটি কাস্টম ভিপিসি তৈরি করব। ক্লাউড কনসোল খুলুন এবং আপনি যে প্রজেক্টটি ব্যবহার করবেন তা নির্বাচন করুন।

  1. আপনার কনসোলের উপরে ডানদিকে অবস্থিত ক্লাউড শেল খুলুন, নিশ্চিত করুন যে আপনি ক্লাউড শেলে সঠিক প্রজেক্ট আইডি দেখতে পাচ্ছেন, অ্যাক্সেসের অনুমতি দেওয়ার জন্য যেকোনো প্রম্পট নিশ্চিত করুন। 4261e776f64ea978.png
  2. terraform-build নামে একটি ফোল্ডার তৈরি করুন এবং ফোল্ডারে সরান
mkdir terraform-build  && cd terraform-build
  1. একটি main.tf এবং variable.tf ফাইল তৈরি করুন।
touch main.tf variable.tf 
  1. ক্লাউড শেল এডিটর ভিউতে যান। এডিটর নির্বাচন করুন, এবং ইন্টারফেসটি লোড হওয়ার জন্য প্রয়োজনীয় প্রম্পটগুলোতে অনুমতি দিন।
  2. লোড হয়ে গেলে, ফাইল > ওপেন ফোল্ডার- এ যান এবং /home/your-user-name/terraform-build- এ গিয়ে এডিটর-এ ফোল্ডারটি খোলার জন্য Ok নির্বাচন করুন। 78f5eb9f2f82f1b0.png
  3. variable.tf ফাইলটি নির্বাচন করুন এবং নিম্নলিখিতটি যোগ করুন। your-project-id-here লেখাটিকে উদ্ধৃতি চিহ্নের মধ্যে আপনার আসল প্রজেক্ট আইডি দিয়ে প্রতিস্থাপন করুন।
variable "project_id" {
  type = string
  default = "your-project-id-here"
}

variable "network_id" {
  type = string
  default = "gemini-vpc-net"
}
  1. এরপর main.tf ফাইলটি খুলুন। নিচে ব্যাখ্যা করা অনুযায়ী বিভিন্ন কাজ সম্পাদনের জন্য আমরা কিছু টেরাফর্ম কোড যোগ করব।

এপিআই সক্রিয় করুন

resource "google_project_service" "default"

python-net নামে একটি VPC তৈরি করুন

resource "google_compute_network" "default"

একটি সাবনেট যোগ করুন

resource "google_compute_subnetwork" "default"

দুটি ফায়ারওয়াল নিয়ম যোগ করুন

resource "google_compute_firewall" "allow_icmp"resource "google_compute_firewall" "allow_ssh"

  1. নিচের অংশটি মূল .tf ফাইলে কপি ও পেস্ট করুন।
resource "google_project_service" "default" {
  for_each = toset([
    "dns.googleapis.com",
    "aiplatform.googleapis.com",
    "servicedirectory.googleapis.com"
  ])

  service            = each.value
  disable_on_destroy = false
}

resource "google_compute_network" "default" {
  project                 = var.project_id
  name                    = var.network_id
  auto_create_subnetworks = false
  mtu                     = 1460
  routing_mode            = "GLOBAL"
}

resource "google_compute_subnetwork" "default" {
  name          = "vm1-subnet"
  ip_cidr_range = "192.168.100.0/24"
  region        = "us-east1"
  stack_type    = "IPV4_ONLY"
  network       = google_compute_network.default.id
}

resource "google_compute_firewall" "allow_icmp" {
  name    = "allow-icmp-${google_compute_network.default.name}"
  network = google_compute_network.default.id
  project = var.project_id

  allow {
    protocol = "icmp"
  }

  source_ranges = ["0.0.0.0/0"]
  target_tags   = ["allow-icmp"]
}

resource "google_compute_firewall" "allow_ssh" {
  name    = "allow-ssh-${google_compute_network.default.name}"
  network = google_compute_network.default.id
  project = var.project_id

  allow {
    protocol = "tcp"
    ports    = ["22"]
  }

  source_ranges = ["0.0.0.0/0"]
  target_tags   = ["allow-ssh"]
}
  1. ক্লাউড শেল টার্মিনালে ফিরে যান, নিশ্চিত করুন যে আপনি terraform-build ডিরেক্টরিতে আছেন cd terraform-build এবং নিম্নলিখিত কমান্ডগুলি চালান।

terraform init

ওয়ার্কিং ডিরেক্টরি প্রস্তুত করে। এই ধাপে প্রদত্ত কনফিগারেশনের জন্য প্রয়োজনীয় প্রোভাইডারগুলো ডাউনলোড করা হয়।

terraform plan

একটি এক্সিকিউশন প্ল্যান তৈরি করে, যা দেখায় আপনার ইনফ্রাস্ট্রাকচার ডেপ্লয় করতে Terraform কী কী পদক্ষেপ নেবে।

  1. এখন রিসোর্সগুলো তৈরি করতে terraform apply কমান্ডটি চালান এবং রান করার জন্য yes টাইপ করুন।

৪. কাজ ২. Terraform ব্যবহার করে NAT গেটওয়ে এবং VM তৈরি করুন

আমাদের ইন্টারনেটে বহির্গামী বাহ্যিক অ্যাক্সেস মঞ্জুর করতে হবে, তাই চলুন একটি ক্লাউড ন্যাট গেটওয়ে তৈরি করে সংযুক্ত করি।

  1. ক্লাউড শেল খুলুন, terraform-build ফোল্ডারে যান এবং নিম্নলিখিত ফাইলগুলি তৈরি করুন (মোট তিনটি ফাইল)। আমরা পরে এগুলি সম্পাদনা করব।
touch nat-vm.tf psc.tf dns.tf
  1. ক্লাউড শেল এডিটর ভিউতে যান এবং nat-vm.tf ফাইলটি নির্বাচন করে নিম্নলিখিত টেরাফর্ম কোডটি যোগ করুন। এটি একটি NAT গেটওয়ে এবং দুটি VM তৈরি করবে।

টেরাফর্ম nat-vm.tf

resource "google_compute_router" "default" {
  name    = "outbound-nat"
  region  = "us-east1"
  network = google_compute_network.default.id

 bgp {
  asn = 64514
  }
}

resource "google_compute_router_nat" "default" {
  name                               = "outbound-gw"
  router                             = google_compute_router.default.name
  region                             = google_compute_router.default.region
  nat_ip_allocate_option             = "AUTO_ONLY"
  source_subnetwork_ip_ranges_to_nat = "ALL_SUBNETWORKS_ALL_IP_RANGES"

  log_config {
    enable = true
    filter = "ERRORS_ONLY"
  }
}

resource "google_compute_instance" "vm1" {
  name         = "cli-vm"
  zone         = "us-east1-b"
  machine_type = "n2-standard-2"

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-12"
    }
  }

  network_interface {
    subnetwork = google_compute_subnetwork.default.id  
    stack_type = "IPV4_ONLY"
  }

  tags = ["allow-ssh", "allow-icmp"]

  metadata_startup_script = <<-EOF
    sudo apt-get update    
  EOF
}

resource "google_compute_instance" "vm2" {
  name         = "monitor-vm"
  zone         = "us-east1-b"
  machine_type = "n2-standard-2"

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-12"
    }
  }

  network_interface {
    subnetwork = google_compute_subnetwork.default.id   
    stack_type = "IPV4_ONLY"
  }

  tags = ["allow-ssh", "allow-icmp"]

  metadata_startup_script = <<-EOF
    sudo apt-get update
    sudo apt-get install python3 python3-dev python3-venv -y
    sudo apt-get install tcpdump dnsutils -y
  EOF
}
  1. ক্লাউড শেল টার্মিনালে যান, নিশ্চিত করুন যে আপনি terraform-build ফোল্ডারে আছেন এবং terraform plan চালান। এটি আপনাকে দেখাবে যে ৪টি আইটেম যুক্ত হবে। এরপর, terraform apply চালান এবং NAT গেটওয়ে ও দুটি ভিএম তৈরি করার জন্য yes টাইপ করুন।

৫. কাজ ৩. CLI VM কনফিগার করুন এবং পরীক্ষা করুন

  1. ভিএম ইনস্ট্যান্সগুলিতে যান। cli-vm দিয়ে শুরু হওয়া ভিএমটি নির্বাচন করুন। SSH বেছে নিন।
  2. একবার SSH করলে আপনি vm-এ অ্যাক্সেস পেয়ে যাবেন। চলুন Gemini CLI চালানোর জন্য একটি ফোল্ডার তৈরি করি।
mkdir geminicli && cd geminicli
  1. Gemini CLI ইনস্টল করার জন্য আমাদের Node js প্রয়োজন। নিম্নলিখিত পদ্ধতি অনুসরণ করে Node JS ইনস্টল করুন।
curl -fsSL https://deb.nodesource.com/setup_24.x -o nodesource_setup.sh

স্ক্রিপ্ট চালান

sudo -E bash nodesource_setup.sh

নোড জেএস ইনস্টল করুন

sudo apt-get install -y nodejs
  1. চলুন কিছু ভ্যারিয়েবল সেট করি যা পরবর্তীতে কিছু টেস্টিং করার জন্য ভার্টেক্স এআই অথেন্টিকেশন অপশন ব্যবহার করে এটিকে অথেন্টিকেট করতে সাহায্য করবে। দ্রষ্টব্য: YOUR_PROJECT_ID এর জায়গায় আপনার আসল project ID বসান।
cat <<EOF >> ~/.bashrc 

export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"
export GOOGLE_CLOUD_LOCATION="us-east1" 
export GOOGLE_GENAI_USE_VERTEXAI=true
EOF

রিলোড ব্যাশ

source ~/.bashrc
  1. এবার প্রমাণীকরণ করা যাক। ভিএম-এ নিম্নলিখিত কমান্ডটি চালান, অনুরোধ করা হলে y চাপুন।
gcloud auth application-default login
  1. এরপর https:// দিয়ে শুরু হওয়া ইউআরএলটি কপি করুন, আপনার ল্যাব ব্রাউজার উইন্ডোতে একটি নতুন ট্যাব খুলে ইউআরএলটি পেস্ট করুন। নির্দেশাবলী গ্রহণ করুন।
  2. যখন আপনি নিম্নলিখিতটি দেখতে পাবেন, তখন কপি নির্বাচন করুন, vm cli-vm সেশনে ফিরে যান এবং 'Enter authorization code:' এর জায়গায় আপনার কপি করা কোডটি পেস্ট করে প্রমাণীকরণের জন্য এন্টার চাপুন।

c29615cdf9324209.png

  1. এখন Gemini CLI ইনস্টল করে কমান্ডটি চালান।
sudo npm install -g @google/gemini-cli

একবার সম্পূর্ণ হলে ইন্টারফেসটি চালু করতে gemini টাইপ করুন, আপনার পছন্দের একটি থিম নির্বাচন করুন এবং 'Select Auth method'-এর অধীনে Vertex AI বেছে নিন।

7fb8ea7fbf48cad9.png

a9f9a93ae8694e2f.png

  1. একবার প্রমাণীকরণ সম্পন্ন হলে আপনি জেমিনি ক্লি ব্যবহার শুরু করতে পারবেন।

b13a934b6220c9af.png

মনিটর ভিএম-এর মাধ্যমে জেমিনিতে ট্র্যাফিক রুট নিরীক্ষণ করুন

  1. ভিএম ইনস্ট্যান্সগুলিতে যান। monitor-vm দিয়ে শুরু হওয়া ভিএমটি নির্বাচন করুন। SSH বেছে নিন।
  2. একবার আপনি monitor-vm-এ SSH করলে আপনার অ্যাক্সেস পাওয়ার কথা।
  3. চলুন, জেমিনি এপিআই-এর কানেকশন পাথ পরীক্ষা করার জন্য dig কমান্ডটি ব্যবহার করি। আমরা us-east1-aiplatform.googleapis.com ব্যবহার করব।
dig us-east1-aiplatform.googleapis.com

আপনি একই রকম কিছু দেখতে পাবেন (ঠিকানাটি ভিন্ন হবে)। লক্ষ্য করুন, যেহেতু এপিআইটি একটি পাবলিক এপিআই, তাই পাথটি পাবলিক আইপি অ্যাড্রেসের মাধ্যমে যায়।

অনুলিপি করবেন না

; <<>> DiG 9.18.33-1~deb12u2-Debian <<>> us-east1-aiplatform.googleapis.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58905
;; flags: qr rd ra; QUERY: 1, ANSWER: 14, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;us-east1-aiplatform.googleapis.com. IN A

;; ANSWER SECTION:
us-east1-aiplatform.googleapis.com. 300 IN A    173.194.217.95
us-east1-aiplatform.googleapis.com. 300 IN A    172.217.204.95
us-east1-aiplatform.googleapis.com. 300 IN A    172.217.203.95
us-east1-aiplatform.googleapis.com. 300 IN A    142.250.98.95
us-east1-aiplatform.googleapis.com. 300 IN A    142.251.107.95
us-east1-aiplatform.googleapis.com. 300 IN A    74.125.196.95
us-east1-aiplatform.googleapis.com. 300 IN A    173.194.216.95
us-east1-aiplatform.googleapis.com. 300 IN A    108.177.11.95
us-east1-aiplatform.googleapis.com. 300 IN A    192.178.219.95
us-east1-aiplatform.googleapis.com. 300 IN A    173.194.210.95
us-east1-aiplatform.googleapis.com. 300 IN A    173.194.212.95
us-east1-aiplatform.googleapis.com. 300 IN A    173.194.215.95
us-east1-aiplatform.googleapis.com. 300 IN A    108.177.12.95
us-east1-aiplatform.googleapis.com. 300 IN A    74.125.26.95
  1. এবার আমরা জেমিনি এপিআই-এর সাথে সংযোগ করতে পারি কিনা তা দেখতে একটি দ্রুত ping টেস্ট করে নিই। এই কমান্ডটি us-east1-aiplatform.googleapis.com-এ ৪টি পিং ব্যবহার করবে, ফলে আমরা এপিআই-এর পাবলিক অ্যাড্রেস থেকে একটি প্রতিক্রিয়া পাব।
ping -c 4 us-east1-aiplatform.googleapis.com
  1. আমরা পরে এই ভিএমটি পরীক্ষা করতে ফিরে আসব। এসএসএইচ সেশনটি বন্ধ করে দিন এবং চলুন চালিয়ে যাই।

৬. কাজ ৪. Terraform ব্যবহার করে googleapis-এর জন্য PSC এন্ডপয়েন্ট তৈরি করুন।

আমাদের Vertex API এন্ডপয়েন্টে ব্যক্তিগত সংযোগ সক্ষম করতে, আমরা Google API-এর জন্য একটি প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট তৈরি করব। এর ফলে আমরা আমাদের নির্ধারিত একটি ব্যক্তিগত আইপি অ্যাড্রেস ব্যবহার করে প্রয়োজনীয় Google API-গুলোতে (এই ক্ষেত্রে Vertex) ট্র্যাফিক রাউট করতে পারব।

  1. ক্লাউড শেল আগে থেকে খোলা না থাকলে এডিটর ভিউতে খুলুন। আমরা নিম্নলিখিত বিষয়গুলো তৈরি করতে যাচ্ছি:
  • PSC এন্ডপয়েন্ট 10.10.100.250- এর জন্য একটি IP তৈরি করুন ( resource "google_compute_global_address" "default")
  • গুগল এপিআই-এর জন্য একটি PSC এন্ডপয়েন্ট তৈরি করুন ( resource "google_compute_global_forwarding_rule" "default")

terraform-build ফোল্ডারে থাকা psc.tf ফাইলটি খুলুন। ফাইলটিতে নিম্নলিখিত কোডটি যোগ করুন।

টেরাফর্ম psc.tf

resource "google_compute_global_address" "default" {
  name         = "gemini-ip"
  purpose      = "PRIVATE_SERVICE_CONNECT"
  network      = google_compute_network.default.id
  address_type = "INTERNAL"
  address      = "10.10.100.250"
}

resource "google_compute_global_forwarding_rule" "default" {  
  name                  = "pscgemini"
  target                = "all-apis"
  network               = google_compute_network.default.id
  ip_address            = google_compute_global_address.default.id
  load_balancing_scheme = ""
  }
  1. ক্লাউড শেল টার্মিনালে যান এবং নিশ্চিত করুন যে আপনি terraform-build ফোল্ডারে আছেন। এরপর terraform init চালান। তারপর terraform plan চালালে আপনি দেখতে পাবেন যে ২টি আইটেম যুক্ত হয়েছে।
    এরপর terraform apply চালান এবং IP ও PSC গুগল এপিআই এন্ডপয়েন্ট তৈরি করতে yes টাইপ করুন।
  2. এন্ডপয়েন্টের অস্তিত্ব যাচাই করুন
gcloud compute addresses list --filter="name=( 'gemini-ip' ...)"
gcloud compute forwarding-rules describe pscgemini --global

৭. কাজ ৫. টেরাফর্ম ব্যবহার করে googleapis-এর জন্য ম্যানুয়াল ডিএনএস এন্ট্রি তৈরি করুন।

আপনি প্রাইভেট ডিএনএস ব্যবহার করে পিএসসি এন্ডপয়েন্টকে নির্দেশ করার জন্য একটি ম্যানুয়াল ডিএনএস এন্ট্রি তৈরি করতে পারেন। এটি আপনার দ্বারা নির্ধারিত সমস্ত নেটওয়ার্ককে প্রভাবিত করবে।

  1. নেটওয়ার্ক পরিষেবাগুলিতে যান এবং ক্লাউড ডিএনএস নির্বাচন করুন।
  2. জোনগুলিতে আপনি প্রাইভেট সার্ভিস কানেক্ট ফর গুগল এপিআই (Private Service Connect for Google APIs)-এর জন্য একটি স্বয়ংক্রিয়ভাবে তৈরি জোন দেখতে পাবেন, যার জোন টাইপ হবে সার্ভিস ডিরেক্টরি (service directory)। এটি ** SERVICE-ENDPOINT** ফরম্যাট ব্যবহার করে PSC এন্ডপয়েন্টের সাথে সংযোগ করার জন্য ব্যবহার করা যেতে পারে। p.googleapis.com উদাহরণ: aiplatform-pscgemini.p.googleapis.com
  3. এক্ষেত্রে আমরা ম্যানুয়ালি একটি প্রাইভেট ডিএনএস এন্ট্রি তৈরি করতে চাই। কনফিগারেশনটি নিম্নরূপ হবে।
  • 'googleapis.com'-এর জন্য 'googleapis-private' নামে একটি প্রাইভেট ডিএনএস জোন তৈরি করুন এবং এটিকে 'python-net' নেটওয়ার্কে সীমাবদ্ধ করুন।
  • 'googleapis.com'-কে '10.10.100.250' আইপি অ্যাড্রেসের সাথে ম্যাপ করতে একটি A রেকর্ড যোগ করুন
  • 'googleapis.com'-এর সমস্ত সাবডোমেইনকে (যেমন, www.googleapis.com) 'googleapis.com'-এ রিডাইরেক্ট করতে একটি CNAME রেকর্ড যোগ করুন
  1. ক্লাউড শেল আগে থেকে খোলা না থাকলে এডিটর ভিউতে খুলুন। terraform-build ফোল্ডারে থাকা dns.tf ফাইলটি খুলুন। ফাইলটিতে নিম্নলিখিত কোডটি যোগ করুন।

টেরাফর্ম dns.tf

resource "google_dns_managed_zone" "private_zone" {
  name        = "googleapis-private"
  dns_name    = "googleapis.com."  
  visibility  = "private"
  project     = var.project_id     

  private_visibility_config {
    networks {
      network_url = google_compute_network.default.id  
    }
  }
}

resource "google_dns_record_set" "a_record" {
  name    = "googleapis.com."  
  type    = "A"
  ttl     = 300
  managed_zone = google_dns_managed_zone.private_zone.name
  project = var.project_id    

  rrdatas = ["10.10.100.250"]
}

resource "google_dns_record_set" "cname_record" {
 name    = "*.googleapis.com."
 type    = "CNAME"
 ttl     = 300
 managed_zone = google_dns_managed_zone.private_zone.name
 project = var.project_id    

 rrdatas = ["googleapis.com."]  
}
  1. ক্লাউড শেল টার্মিনালে যান এবং নিশ্চিত করুন যে আপনি terraform-build ফোল্ডারে আছেন। এরপর terraform plan চালান, এটি আপনাকে দেখাবে কোন কোন আইটেম যোগ করা হবে।
    এরপর terraform apply চালান এবং প্রাইভেট DNS এন্ট্রি তৈরি করতে yes টাইপ করুন।
  2. আপনি A রেকর্ড এবং CNAME সহ এইরকম একটি সেটআপ দেখতে পাবেন, দেখুন।

a33a4d3d629c54dd.png

  1. এরপর আমরা monitor-vm- এ এই পরিবর্তনগুলোর সাথে সংযোগ যাচাই করব।

৮. কাজ ৭. আইপি অ্যাড্রেসের মাধ্যমে এন্ডপয়েন্ট কানেক্টিভিটি যাচাই করুন।

জেমিনিতে সংযোগ করার জন্য প্রাইভেট এন্ডপয়েন্ট ব্যবহার করে সংযোগ স্থাপন করা যাক।

  1. ভিএম ইনস্ট্যান্স monitor-vm- এ যান। SSH নির্বাচন করুন এবং ভিএম-এ SSH-এর মাধ্যমে প্রবেশ করুন।
  2. ping কমান্ড ব্যবহার করে us-east1-aiplatform.googleapis.com- এর কানেক্টিভিটি পাথ চেক করুন। এটি প্রাইভেট ডিএনএস-এর এ রেকর্ডে থাকা googleapis-এর আইপি অ্যাড্রেসটিকে পিং করবে। এই আইপিটি একটি পিএসসি এন্ডপয়েন্ট এবং আপনার পিংগুলো অসফল হবে।
ping -c 2 us-east1-aiplatform.googleapis.com
  1. PSC Google API-এর জন্য স্বয়ংক্রিয়ভাবে তৈরি হওয়া DNS এন্ট্রি aiplatform-pscvertexgemini.p.googleapis.com ব্যবহার করে ping মাধ্যমে কানেক্টিভিটি পাথটি যাচাই করুন। এটি PSC এন্ডপয়েন্টের আইপি অ্যাড্রেসকে নির্দেশ করে এবং আপনার পিংগুলো অসফল হবে।
ping -c 2 aiplatform-pscgemini.p.googleapis.com
  1. dig কমান্ড ব্যবহার করে us-east1-aiplatform.googleapis.com- এর কানেক্টিভিটি পাথ চেক করুন। এটি PSC এন্ডপয়েন্টের আইপি অ্যাড্রেস (10.10.100.250) হওয়া উচিত।
dig us-east1-aiplatform.googleapis.com

bcb26844349ee775.png

  1. কাজটি সম্পন্ন হলে আপনি monitor-vm SSH সেশনটি বন্ধ করতে পারেন।
  2. এখন আমরা cli-vm- এ একটি TCP ডাম্প চালাতে পারি। এর জন্য আমাদের একই vm-এ দুটি SSH সেশন খুলতে হবে। একটি সেশনে tcpdump কমান্ডটি চালানো হবে এবং অন্যটিতে আমরা Gemini CLI ব্যবহার করব।
  3. cli-vm- এর প্রথম সেশনে SSH করুন
  4. tcpdump-এ সংযোগ দেখতে নিম্নলিখিত কমান্ডটি টাইপ করুন।
sudo tcpdump -i any port 53 -n or host us-east1-aiplatform.googleapis.com
  1. এখন cli-vm- এর পরবর্তী সেশনে SSH করুন।
  2. gemini টাইপ করে Gemini CLI সক্রিয় করুন।
  3. জেমিনি এপিআই-তে একটি কল তৈরি করতে, "আকাশের রঙ কী?" এই প্রশ্নটি জিজ্ঞাসা করুন।

d6189c2adef69eaf.png

  1. চালানোর জন্য এবং ফলাফল দেখার জন্য এন্টার চাপুন।
  2. cli-vm-এর প্রথম সেশনে ফিরে যান। আপনি tcpdump-এর ফলাফল দেখতে পাবেন। আপনি ইন এবং আউট লক্ষ্য করবেন এবং দেখবেন যে VM-টি gemini API-এর সাথে সংযোগ করার জন্য PSC এন্ডপয়েন্ট আইপি অ্যাড্রেস ব্যবহার করছে।

ce99170d9f9c7858.png

ভিএম ইনস্ট্যান্সগুলির সমস্ত SSH সেশন বন্ধ করুন

৯. পরিষ্কার করা

  1. ক্লাউড শেলে যান, নিশ্চিত করুন যে আপনি terraform-build ডিরেক্টরিতে আছেন। এরপর cd terraform-build কমান্ডটি চালিয়ে terraform destroy কমান্ডটি চালান এবং yes টাইপ করুন। আপনার প্রোজেক্টে Terraform দিয়ে তৈরি করা সমস্ত রিসোর্স মুছে ফেলা হবে।

১০. অভিনন্দন

অভিনন্দন, আপনি পাবলিক এপিআই অ্যাড্রেস এবং প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট ফর গুগল এপিআই ব্যবহার করে ব্যক্তিগতভাবে উভয় পদ্ধতিতেই সফলভাবে জেমিনি সিএলআই-এর সাথে সংযুক্ত হয়েছেন। এই কার্যকারিতাটি আপনার অন-প্রেম/অন্যান্য ক্লাউড পরিবেশে ব্যক্তিগত এপিআই সংযোগ প্রসারিত করতে পারে, যা (ইন্টারকানেক্ট, ক্রস-ক্লাউড ইন্টারকানেক্ট এবং ভিপিসি)-এর মাধ্যমে সংযুক্ত থাকে।

পরবর্তী পদক্ষেপ / আরও জানুন

আপনি ভার্টেক্স এআই নেটওয়ার্কিং সম্পর্কে আরও পড়তে পারেন এবং জেমিনি সিএলআই রিপোটি দেখতে পারেন।

আপনার পরবর্তী ল্যাব নিন

গুগল ক্লাউডের সাথে আপনার অনুসন্ধান চালিয়ে যান, এবং এই অন্যান্য গুগল ক্লাউড ল্যাবগুলোও দেখে নিন: