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

1. مقدمه

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

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

چیزی که یاد خواهید گرفت

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

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

  • پروژه Google Cloud با مجوزهای مالک

2. آنچه می سازید

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

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

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

اجزاء

توضیحات

VPC (agentspace-psc-demo)

حالت سفارشی VPC

زیرشبکه PSC NAT

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

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

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

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

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

هیبرید NEG

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

خدمات Backend

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

4. بهترین شیوه ها

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

5. توپولوژی Codelab

f5cb7b235f6fa306.png

6. راه اندازی و الزامات

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

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

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

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

Cloud Shell را راه اندازی کنید

در حالی که Google Cloud را می توان از راه دور از لپ تاپ شما کار کرد، در این کد لبه از Google Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان که در Cloud اجرا می شود.

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

55efc1aaa7a4d3ad.png

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

7ffe5cbb04455448.png

این ماشین مجازی با تمام ابزارهای توسعه که شما نیاز دارید بارگذاری شده است. این یک فهرست اصلی 5 گیگابایتی دائمی را ارائه می دهد و در Google Cloud اجرا می شود و عملکرد و احراز هویت شبکه را تا حد زیادی افزایش می دهد. تمام کارهای شما در این کد لبه را می توان در یک مرورگر انجام داد. شما نیازی به نصب چیزی ندارید.

7. قبل از شروع

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

8. Producer VPC Network ایجاد کنید

شبکه 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 regional Proxy only ایجاد کنید که توسط پایگاه داده cross cloud به عنوان 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

Hybrid NEG را راه اندازی کنید

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

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

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 پایگاه داده متقابل ابری، 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-prem، 443 را بررسی کند:

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 به تمام نمونه های شبکه اجازه می دهد.

در داخل 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

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

اجزای Load Balancer را ایجاد کنید

در داخل 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

در داخل Cloud Shell، Backend NEG Hybrid را به سرویس Backend اضافه کنید:

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 هدف ایجاد کنید تا درخواست‌ها را به سرویس باطن خود هدایت کند:

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

در دستور زیر، یک قانون فوروارد (internal tcp proxy load balancer) با دسترسی سراسری فعال ایجاد کنید.

در 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

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

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

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

در داخل 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

در Cloud Console به مسیر زیر بروید:

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

62a981141ca52077.png

e36e988fc46c07a8.png

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

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

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

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

c80e0e3845880771.png

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

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

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

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

خدمات شبکه ← Private Service Connect → Published Service، سپس Service, cc-database1-svc-attachment را انتخاب کنید.

4ae5916ea5402c1e.png

11. پاکسازی کنید

از یک ترمینال 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

12. تبریک می گویم

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

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

Cosmopup فکر می کند که نرم افزارهای کدنویسی عالی هستند!!

c911c127bffdee57.jpeg

بعدش چی؟

برخی از این کدها را بررسی کنید...

ادامه مطلب و ویدیوها

اسناد مرجع