پایگاه داده خود میزبان Agentspace Hybrid NEG به Cross Cloud

۱. مقدمه

در این آزمایشگاه کد، شما یک متعادل‌کننده بار پروکسی TCP داخلی و گروه نقطه پایانی شبکه ترکیبی (NEG) را که به عنوان یک سرویس تولیدکننده PSC منتشر شده است، مستقر خواهید کرد. NEG شامل آدرس IP و پورت پایگاه داده خود-میزبانی شده ابری متقابل مانند JIRA، Confluence، Sharepoint خواهد بود.

اتصال سرویس خصوصی (Private Service Connect) قابلیتی از شبکه گوگل کلود (Google Cloud) است که به مصرف‌کنندگان اجازه می‌دهد تا به صورت خصوصی از داخل شبکه VPC خود به سرویس‌های مدیریت‌شده دسترسی داشته باشند. به طور مشابه، به تولیدکنندگان سرویس‌های مدیریت‌شده نیز اجازه می‌دهد تا این سرویس‌ها را در شبکه VPC یا Cross Cloud خود میزبانی کنند و یک اتصال خصوصی به مصرف‌کنندگان خود ارائه دهند. به عنوان مثال، وقتی از اتصال سرویس خصوصی برای دسترسی به یک پایگاه داده ابری استفاده می‌کنید، شما تولیدکننده سرویس هستید و گوگل (Agentspace) مصرف‌کننده سرویس است.

آنچه یاد خواهید گرفت

  • الزامات شبکه برای Agentspace
  • بهترین شیوه‌های شبکه‌سازی Agentspace
  • ایجاد یک سرویس تولیدکننده Private Service Connect

آنچه نیاز دارید

  • پروژه گوگل کلود با مجوزهای مالک

۲. آنچه خواهید ساخت

شما یک شبکه تولیدکننده، agentspace-psc-demo، ایجاد خواهید کرد تا متعادل‌کننده بار پروکسی TCP داخلی و Hybrid NEG منتشر شده به عنوان یک سرویس از طریق Private Service Connect (PSC) را مستقر کنید.

۳. الزامات شبکه

در زیر، جزئیات الزامات شبکه برای شبکه تولیدکننده آمده است. در این آزمایشگاه کد، مصرف‌کننده، Agentspace است.

قطعات

توضیحات

VPC (agentspace-psc-demo)

حالت سفارشی VPC

زیرشبکه PSC NAT

بسته‌های شبکه‌ی VPC مصرف‌کننده با استفاده از NAT منبع (SNAT) ترجمه می‌شوند، به طوری که آدرس‌های IP منبع اصلی آنها به آدرس‌های IP منبع از زیرشبکه‌ی NAT در شبکه‌ی VPC تولیدکننده تبدیل می‌شوند. PSC NAT از زیرشبکه‌ی /29 به ازای هر ضمیمه‌ی سرویس پشتیبانی می‌کند.

زیرشبکه قانون ارسال PSC

برای اختصاص آدرس IP برای متعادل‌کننده بار پروکسی TCP داخلی منطقه‌ای استفاده می‌شود. زیرشبکه قانون ارسال، یک زیرشبکه معمولی در نظر گرفته می‌شود.

زیرشبکه فقط پروکسی

به هر یک از پروکسی‌های متعادل‌کننده بار، یک آدرس IP داخلی اختصاص داده می‌شود. بسته‌هایی که از یک پروکسی به یک ماشین مجازی backend یا گروه نقاط پایانی شبکه ارسال می‌شوند، دارای یک آدرس IP منبع از زیرشبکه فقط پروکسی هستند. یک زیرشبکه /23 توصیه می‌شود ، اگرچه حداقل /26 نیز پشتیبانی می‌شود. یک زیرشبکه پروکسی منطقه‌ای برای هر منطقه مورد نیاز است.

هیبرید منفی

سرویس‌های ابری داخلی و سایر سرویس‌ها مانند هر سرویس ابری دیگری در backend متعادل‌سازی بار (Cloud Load Balancing) در نظر گرفته می‌شوند. تفاوت کلیدی این است که شما از یک اتصال ترکیبی NEG برای پیکربندی نقاط انتهایی این backendها استفاده می‌کنید. نقاط انتهایی باید ترکیبات معتبری از IP:port باشند که متعادل‌کننده بار شما بتواند با استفاده از محصولات اتصال ترکیبی مانند Cloud VPN یا Cloud Interconnect به آنها دسترسی پیدا کند.

خدمات بک‌اند

یک سرویس backend به عنوان پلی بین متعادل‌کننده بار و منابع backend شما عمل می‌کند. در این آموزش، سرویس backend با Hybrid NEG مرتبط است.

۴. بهترین شیوه‌ها

  • AgentSpace از دسترسی بین ابری به پایگاه‌های داده خود-میزبان مستقر در محل یا محاسباتی (مانند AWS EC2 و Azure VMs) در صورت انتشار به عنوان یک تولیدکننده سرویس، پشتیبانی می‌کند.
  • ترافیک به پایگاه داده بین ابری از زیرشبکه پروکسی منطقه‌ای سرچشمه می‌گیرد. بنابراین، قوانین فایروال باید به‌روزرسانی شوند تا امکان فهرست کردن این ترافیک را فراهم کنند.
  • اگرچه زیرشبکه‌ی فقط پروکسی به طور پیش‌فرض توسط روتر ابری اعلان می‌شود، تأیید کنید که شبکه‌ی بین ابری این زیرشبکه را یاد گرفته است.
  • تأیید کنید که شبکه Agentspace VPC آدرس IP میزبان یا زیرشبکه پایگاه داده بین ابری را یاد گرفته است.
  • قبل از ایجاد پیوست سرویس، دسترسی سراسری (Global Access) را در قانون ارسال تولیدکننده (Producer Forwarding Rule) فعال کنید.
  • هنگام ایجاد نقطه پایانی Agentspace، دسترسی سراسری را فعال کنید.

۵. توپولوژی Codelab

f5cb7b235f6fa306.png

۶. تنظیمات و الزامات

تنظیم محیط خودتنظیم

  1. وارد کنسول گوگل کلود شوید و یک پروژه جدید ایجاد کنید یا از یک پروژه موجود دوباره استفاده کنید. اگر از قبل حساب جیمیل یا گوگل ورک اسپیس ندارید، باید یکی ایجاد کنید .

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • نام پروژه، نام نمایشی برای شرکت‌کنندگان این پروژه است. این یک رشته کاراکتری است که توسط APIهای گوگل استفاده نمی‌شود. شما همیشه می‌توانید آن را به‌روزرسانی کنید.
  • شناسه پروژه در تمام پروژه‌های گوگل کلود منحصر به فرد است و تغییرناپذیر است (پس از تنظیم، قابل تغییر نیست). کنسول کلود به طور خودکار یک رشته منحصر به فرد تولید می‌کند؛ معمولاً برای شما مهم نیست که چیست. در اکثر آزمایشگاه‌های کد، باید شناسه پروژه خود را (که معمولاً با عنوان PROJECT_ID شناخته می‌شود) ارجاع دهید. اگر شناسه تولید شده را دوست ندارید، می‌توانید یک شناسه تصادفی دیگر ایجاد کنید. به عنوان یک جایگزین، می‌توانید شناسه خودتان را امتحان کنید و ببینید که آیا در دسترس است یا خیر. پس از این مرحله قابل تغییر نیست و در طول پروژه باقی می‌ماند.
  • برای اطلاع شما، یک مقدار سوم، شماره پروژه ، وجود دارد که برخی از APIها از آن استفاده می‌کنند. برای کسب اطلاعات بیشتر در مورد هر سه این مقادیر، به مستندات مراجعه کنید.
  1. در مرحله بعد، برای استفاده از منابع/API های ابری، باید پرداخت صورتحساب را در کنسول ابری فعال کنید . اجرای این آزمایشگاه کد هزینه زیادی نخواهد داشت، اگر اصلاً هزینه‌ای داشته باشد. برای خاموش کردن منابع به منظور جلوگیری از پرداخت صورتحساب پس از این آموزش، می‌توانید منابعی را که ایجاد کرده‌اید یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان ۳۰۰ دلاری هستند.

شروع پوسته ابری

اگرچه می‌توان از راه دور و از طریق لپ‌تاپ، گوگل کلود را مدیریت کرد، اما در این آزمایشگاه کد، از گوگل کلود شل ، یک محیط خط فرمان که در فضای ابری اجرا می‌شود، استفاده خواهید کرد.

از کنسول گوگل کلود ، روی آیکون Cloud Shell در نوار ابزار بالا سمت راست کلیک کنید:

55efc1aaa7a4d3ad.png

آماده‌سازی و اتصال به محیط فقط چند لحظه طول می‌کشد. وقتی تمام شد، باید چیزی شبیه به این را ببینید:

7ffe5cbb04455448.png

این ماشین مجازی با تمام ابزارهای توسعه‌ای که نیاز دارید، مجهز شده است. این ماشین مجازی یک دایرکتوری خانگی پایدار ۵ گیگابایتی ارائه می‌دهد و روی فضای ابری گوگل اجرا می‌شود که عملکرد شبکه و احراز هویت را تا حد زیادی بهبود می‌بخشد. تمام کارهای شما در این آزمایشگاه کد را می‌توان در یک مرورگر انجام داد. نیازی به نصب چیزی ندارید.

۷. قبل از شروع

فعال کردن APIها

در داخل Cloud Shell، مطمئن شوید که شناسه پروژه شما تنظیم شده است:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
zone=[YOUR-ZONE]
echo $project
echo $region

فعال کردن تمام سرویس‌های لازم:

gcloud services enable compute.googleapis.com

۸. ایجاد شبکه VPC تولیدکننده

شبکه VPC

درون Cloud Shell، موارد زیر را انجام دهید:

gcloud compute networks create agentspace-psc-demo --subnet-mode custom

ایجاد زیرشبکه‌ها

زیرشبکه PSC به منظور ترجمه آدرس شبکه با پیوست سرویس PSC مرتبط خواهد شد.

درون Cloud Shell، زیرشبکه PSC NAT را ایجاد کنید:

gcloud compute networks subnets create producer-psc-nat-subnet --network agentspace-psc-demo --range 172.16.10.0/28 --region $region --purpose=PRIVATE_SERVICE_CONNECT

درون Cloud Shell، زیرشبکه‌ی قانون ارسال تولیدکننده را ایجاد کنید:

gcloud compute networks subnets create producer-psc-fr-subnet --network agentspace-psc-demo --range 172.16.20.0/28 --region $region --enable-private-ip-google-access

درون Cloud Shell، زیرشبکه فقط پروکسی منطقه‌ای Producer را ایجاد کنید، که توسط پایگاه داده ابری متقابل به عنوان IP منبع مشاهده می‌شود.

gcloud compute networks subnets create $region-proxy-only-subnet \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=$region \
  --network=agentspace-psc-demo \
  --range=10.10.10.0/24

آدرس IP متعادل‌کننده بار را رزرو کنید

در داخل Cloud Shell، یک آدرس IP داخلی برای متعادل‌کننده بار رزرو کنید:

gcloud compute addresses create hybrid-neg-lb-ip \
  --region=$region \
  --subnet=producer-psc-fr-subnet

در داخل Cloud Shell، آدرس IP رزرو شده را مشاهده کنید.

gcloud compute addresses describe hybrid-neg-lb-ip \
  --region=$region | grep -i address:

خروجی مثال:

gcloud compute addresses describe hybrid-neg-lb-ip   --region=$region | grep -i address:
address: 172.16.20.2

NEG هیبریدی را تنظیم کنید

یک شبکه NEG ترکیبی ایجاد کنید و –network-endpoint-type را روی NON_GCP_PRIVATE_IP_PORT تنظیم کنید.

در داخل Cloud Shell، یک حساب NEG ترکیبی ایجاد کنید که برای دسترسی به پایگاه داده on-premium استفاده می‌شود:

gcloud compute network-endpoint-groups create on-prem-hybrid-neg \
    --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
    --network=agentspace-psc-demo \
    --zone=$zone

درون Cloud Shell، Hybrid NEG را با IP:Port پایگاه داده cross cloud، 192.168.10.10 و پورت 443 طبق معماری مرجع، به‌روزرسانی کنید:

gcloud compute network-endpoint-groups update on-prem-hybrid-neg \
    --add-endpoint=ip=192.168.10.10,port=443 \
    --zone=$zone

ایجاد یک بررسی سلامت منطقه‌ای

درون Cloud Shell، یک بررسی سلامت ایجاد کنید که پورت پایگاه داده‌ی on-premium، یعنی ۴۴۳، را بررسی کند:

gcloud compute health-checks create tcp on-prem-443-healthcheck \
    --region=$region \
    --port=443

ایجاد سیاست و قوانین فایروال شبکه

درون Cloud Shell، موارد زیر را انجام دهید:

gcloud compute network-firewall-policies create agentspace-psc-demo-policy --global

gcloud compute network-firewall-policies associations create --firewall-policy agentspace-psc-demo-policy --network agentspace-psc-demo --name agentspace-psc-demo --global-firewall-policy

قانون فایروال زیر اجازه می‌دهد ترافیک از محدوده PSC NAT Subnet به تمام نمونه‌های شبکه ارسال شود.

درون Cloud Shell، موارد زیر را انجام دهید:

gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy agentspace-psc-demo-policy --description "allow traffic from PSC NAT subnet" --direction INGRESS --src-ip-ranges 172.16.10.0/28 --global-firewall-policy --layer4-configs=tcp

۹. ایجاد سرویس تولیدکننده

ایجاد اجزای متعادل‌کننده بار

درون Cloud Shell، یک سرویس backend ایجاد کنید::

gcloud compute backend-services create producer-backend-svc --region=$region --load-balancing-scheme=INTERNAL_MANAGED --protocol=TCP --region=$region --health-checks=on-prem-443-healthcheck --health-checks-region=$region

Inside Cloud Shell, add the Hybrid NEG backend to the backend service:

gcloud compute backend-services add-backend producer-backend-svc --network-endpoint-group=on-prem-hybrid-neg --network-endpoint-group-zone=$zone --balancing-mode=CONNECTION --max-connections=100 --region=$region

در Cloud Shell، یک پروکسی TCP هدف ایجاد کنید تا درخواست‌ها را به سرویس backend خود هدایت کنید:

gcloud compute target-tcp-proxies create producer-lb-tcp-proxy \
      --backend-service=producer-backend-svc  \
      --region=$region

در سینتکس زیر، یک قانون ارسال (متعادل‌کننده بار پروکسی داخلی tcp) با دسترسی سراسری فعال ایجاد کنید.

در Cloud Shell، موارد زیر را انجام دهید:

gcloud compute forwarding-rules create producer-hybrid-neg-fr \
     --load-balancing-scheme=INTERNAL_MANAGED \
     --network-tier=PREMIUM \
     --network=agentspace-psc-demo \
     --subnet=producer-psc-fr-subnet \
     --address=hybrid-neg-lb-ip \
     --target-tcp-proxy=producer-lb-tcp-proxy \
     --target-tcp-proxy-region=$region \
     --region=$region \
     --allow-global-access \
     --ports=443

ایجاد پیوست سرویس

برای انتشار یک سرویس، باید یک پیوست سرویس ایجاد کنید. می‌توانید سرویس را با تأیید خودکار یا تأیید صریح منتشر کنید.

  • برای انتشار سرویس و اجازه خودکار به هر مصرف‌کننده برای اتصال به آن، دستورالعمل‌های موجود در بخش «انتشار یک سرویس با تأیید خودکار» را دنبال کنید.
  • برای انتشار سرویس با تأیید صریح مصرف‌کننده ، در تنظیمات اتصال پیوست سرویس، گزینه پذیرش اتصالات برای پروژه‌های انتخاب‌شده را انتخاب کنید و فیلد پروژه‌های پذیرفته‌شده را خالی بگذارید.
  • پس از ایجاد پیوست سرویس، نقاط پایانی Consumer که درخواست دسترسی به سرویس Producer را دارند، ابتدا وارد حالت Pending می‌شوند. برای تأیید اتصال، Producer باید پروژه‌ای را که درخواست نقطه پایانی Consumer از آن سرچشمه گرفته است، بپذیرد.

درون Cloud Shell، ضمیمه سرویس، cc-database1-svc-attachment را با تأیید خودکار ایجاد کنید:

gcloud compute service-attachments create cc-database1-svc-attachment --region=$region --producer-forwarding-rule=producer-hybrid-neg-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=producer-psc-nat-subnet

در مرحله بعد، پیوست سرویس ذکر شده در selfLink URI را که با پروژه‌های پیکربندی نقطه پایانی PSC در Agentspace شروع می‌شود، دریافت و یادداشت کنید.

selfLink: projects/<your-project-id>/regions/<your-region>/serviceAttachments/cc-database1-svc-attachment

درون Cloud Shell، موارد زیر را انجام دهید:

gcloud compute service-attachments describe cc-database1-svc-attachment --region=$region

مثال خروجی مورد انتظار:

connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2025-07-06T16:05:14.706-07:00'
description: ''
enableProxyProtocol: false
fingerprint: rXjeAOjb41k=
id: '1726139744351862725'
kind: compute#serviceAttachment
name: cc-database1-svc-attachment
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
  high: '54619734758392808'
  low: '1726139744351862725'
reconcileConnections: false
region: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1
selfLink: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/serviceAttachments/cc-database1-svc-attachment
targetService: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/forwardingRules/producer-hybrid-neg-fr

در کنسول ابری، به مسیر زیر بروید:

سرویس‌های شبکه → اتصال سرویس خصوصی → سرویس‌های منتشر شده

62a981141ca52077.png

e36e988fc46c07a8.png

۱۰. ایجاد یک اتصال نقطه پایانی PSC در Agentspace

قبل از اتصال سرویس تولیدکننده به Agentspace، از تکمیل اعتبارسنجی‌های زیر اطمینان حاصل کنید:

  • فایروال شبکه بین ابری، زیرشبکه پروکسی منطقه‌ای را فهرست می‌کند.
  • شبکه‌ی میان‌ابری، زیرشبکه‌ی پروکسی منطقه‌ای را یاد گرفته است.
  • سرور مجازی Agentspace، زیرشبکه پایگاه داده بین ابری یا IP میزبان را یاد گرفته است.

URI مربوط به سرویس پیوست تولیدکنندگان را با Agentspace مرتبط کنید و مطمئن شوید که دسترسی سراسری انتخاب شده است. در زیر مثالی از فعال‌سازی دسترسی سراسری با معماری مرجع سرویس پیوست آمده است.

c80e0e3845880771.png

برای نهایی کردن شبکه خصوصی، برای دستورالعمل‌های بیشتر به منابع داده شخص ثالث Agentspace مراجعه کنید.

اعتبارسنجی نقطه پایانی PSC در Cloud Console

برای تأیید اتصال موفقیت‌آمیز PSC بین Agentspace (مصرف‌کننده) و تولیدکننده، پروژه مستاجر Agentspace که به سرویس تولیدکننده متصل است را تأیید کنید. این مورد را می‌توانید در بخش «پروژه‌های متصل» پیدا کنید. شناسه پروژه مستاجر به صورت تصادفی اختصاص داده می‌شود اما همیشه با «tp» خاتمه می‌یابد.

از طریق Cloud Console می‌توانید اتصال PSC را تأیید کنید. در Cloud Console، به مسیر زیر بروید:

سرویس‌های شبکه → اتصال سرویس خصوصی → سرویس منتشر شده، سپس سرویس، cc-database1-svc-attachment را انتخاب کنید.

4ae5916ea5402c1e.png

۱۱. تمیز کردن

از یک ترمینال Cloud Shell، اجزای آزمایشگاه را حذف کنید

gcloud compute service-attachments delete cc-database1-svc-attachment --region=$region -q

gcloud compute forwarding-rules delete producer-hybrid-neg-fr --region=$region -q

gcloud compute target-tcp-proxies delete producer-lb-tcp-proxy --region=$region -q

gcloud compute backend-services delete producer-backend-svc --region=$region -q

gcloud compute network-firewall-policies rules delete 2001 --firewall-policy agentspace-psc-demo-policy --global-firewall-policy -q

gcloud compute network-firewall-policies associations delete --firewall-policy=agentspace-psc-demo-policy  --name=agentspace-psc-demo --global-firewall-policy -q

gcloud compute network-firewall-policies delete agentspace-psc-demo-policy --global -q

gcloud compute network-endpoint-groups delete on-prem-hybrid-neg --zone=$zone -q

gcloud compute addresses delete hybrid-neg-lb-ip --region=$region -q

gcloud compute networks subnets delete $region-proxy-only-subnet --region=$region -q

gcloud compute networks subnets delete producer-psc-nat-subnet --region=$region -q

gcloud compute networks subnets delete producer-psc-fr-subnet --region=$region -q

gcloud compute health-checks delete on-prem-443-healthcheck --region=us-central1 -q

gcloud compute networks delete agentspace-psc-demo -q

۱۲. تبریک

تبریک می‌گویم، شما با موفقیت یک سرویس تولیدکننده را با Private Service Connected پیکربندی و منتشر کردید.

شما زیرساخت تولیدکننده را ایجاد کردید، یاد گرفتید که چگونه یک Hybrid NEG، سرویس تولیدکننده ایجاد کنید و پیوست سرویس را به Agentspace مرتبط کنید.

کازموپاپ فکر می‌کند که کدلب‌ها فوق‌العاده هستند!!

c911c127bffdee57.jpeg

بعدش چی؟

به برخی از این آزمایشگاه‌های کد نگاهی بیندازید...

مطالعه بیشتر و ویدیوها

اسناد مرجع