Agentspace al database self-hosted NEG a livello di zona

1. Introduzione

In questo codelab eseguirai il deployment di un bilanciatore del carico del proxy TCP interno e di un gruppo di endpoint di rete (NEG) zonale, pubblicato come servizio di produzione PSC. Il NEG sarà costituito da una o più istanze di calcolo in GCP che ospitano autonomamente un database, ad esempio JIRA, Confluence, Sharepoint.

Private Service Connect è una funzionalità di networking di Google Cloud che consente ai consumer di accedere ai servizi gestiti privatamente dall'interno della propria rete VPC. Allo stesso modo, consente ai producer di servizi gestiti di ospitare questi servizi nella propria rete VPC o cross-cloud, offrendo una connessione privata ai propri consumer. Ad esempio, quando utilizzi Private Service Connect per accedere a un NEG zonale, tu sei il producer di servizi e Google (Agentspace) è il consumer di servizi.

Cosa imparerai a fare

  • Requisiti di rete per Agentspace
  • Best practice di networking di Agentspace
  • Crea un servizio producer Private Service Connect

Che cosa ti serve

  • Progetto Google Cloud con autorizzazioni di proprietario

2. Cosa creerai

Stabilirai una rete di producer, agentspace-psc-demo, per eseguire il deployment del bilanciatore del carico proxy TCP interno e del NEG zonale pubblicato come servizio tramite Private Service Connect (PSC).

3. Requisiti di rete

Di seguito è riportata la suddivisione dei requisiti di rete per la rete del produttore. Il consumatore in questo codelab è Agentspace.

Componenti

Descrizione

VPC (agentspace-psc-demo)

VPC in modalità personalizzata

Subnet NAT PSC

I pacchetti provenienti dalla rete VPC consumer vengono convertiti utilizzando il source NAT (SNAT) in modo che i loro indirizzi IP di origine originali vengano convertiti in indirizzi IP di origine dalla subnet NAT nella rete VPC del producer. PSC NAT supporta una subnet /29 per ogni collegamento del servizio.

Subnet della regola di forwarding PSC

Utilizzato per allocare un indirizzo IP per il bilanciatore del carico del proxy TCP interno regionale.La subnet della regola di forwarding è considerata una subnet normale.

Subnet NEG

Utilizzato per allocare un indirizzo IP per il gruppo di endpoint di rete da una subnet normale.

Subnet solo proxy

A ognuno dei proxy del bilanciatore del carico viene assegnato un indirizzo IP interno. I pacchetti inviati da un proxy a una VM di backend o a un gruppo di endpoint di rete hanno un indirizzo IP di origine dalla subnet solo proxy.Una subnet /23 è consigliata , anche se è supportata la subnet minima /26. È necessaria una subnet proxy regionale per regione.

Servizio di backend

Un servizio di backend funge da ponte tra il bilanciatore del carico e le risorse di backend. Nel tutorial, il servizio di backend è associato al NEG zonale.

4. Best practice

  • I NEG a livello di zona supportano una o più istanze GCE a livello di zona in base a GCE_VM_IP_PORT
  • Abilita l'accesso globale nella regola di forwarding del producer prima di creare il collegamento del servizio.
  • Abilita l'accesso globale durante la creazione dell'endpoint Agentspace.
  • Il bilanciatore del carico proxy TCP interno supporta anche i gruppi di istanze gestite e non gestite.
  • I bilanciatori del carico proxy TCP o passthrough di Google Cloud esistenti possono essere esposti come servizio produttore

5. Topologia del codelab

9a8a948b0a4ad91e.png

6. Configurazione e requisiti

Configurazione dell'ambiente autonoma

  1. Accedi alla console Google Cloud e crea un nuovo progetto o riutilizzane uno esistente. Se non hai già un account Gmail o Google Workspace, devi crearne uno.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Il nome del progetto è il nome visualizzato per i partecipanti a questo progetto. È una stringa di caratteri non utilizzata dalle API di Google. Puoi sempre aggiornarlo.
  • L'ID progetto è univoco in tutti i progetti Google Cloud ed è immutabile (non può essere modificato dopo l'impostazione). La console Cloud genera automaticamente una stringa univoca, di solito non ti interessa di cosa si tratta. Nella maggior parte dei codelab, dovrai fare riferimento all'ID progetto (in genere identificato come PROJECT_ID). Se non ti piace l'ID generato, puoi generarne un altro casuale. In alternativa, puoi provare a crearne uno e vedere se è disponibile. Non può essere modificato dopo questo passaggio e rimane per tutta la durata del progetto.
  • Per tua informazione, esiste un terzo valore, un numero di progetto, utilizzato da alcune API. Scopri di più su tutti e tre questi valori nella documentazione.
  1. Successivamente, devi abilitare la fatturazione in Cloud Console per utilizzare le risorse/API Cloud. Completare questo codelab non costa molto, se non nulla. Per arrestare le risorse ed evitare addebiti oltre a quelli previsti da questo tutorial, puoi eliminare le risorse che hai creato o il progetto. I nuovi utenti di Google Cloud possono usufruire del programma prova senza costi di 300$.

Avvia Cloud Shell

Sebbene Google Cloud possa essere gestito da remoto dal tuo laptop, in questo codelab utilizzerai Google Cloud Shell, un ambiente a riga di comando in esecuzione nel cloud.

Nella console Google Cloud, fai clic sull'icona di Cloud Shell nella barra degli strumenti in alto a destra:

55efc1aaa7a4d3ad.png

Bastano pochi istanti per eseguire il provisioning e connettersi all'ambiente. Al termine, dovresti vedere un risultato simile a questo:

7ffe5cbb04455448.png

Questa macchina virtuale è caricata con tutti gli strumenti di sviluppo di cui avrai bisogno. Offre una home directory permanente da 5 GB e viene eseguita su Google Cloud, migliorando notevolmente le prestazioni di rete e l'autenticazione. Tutto il lavoro in questo codelab può essere svolto all'interno di un browser. Non devi installare nulla.

7. Prima di iniziare

Abilita API

In Cloud Shell, assicurati che l'ID progetto sia configurato:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
zone1a=[YOUR-ZONE1a]
zone1b=[YOUR-ZONE1b]
echo $project
echo $region
echo $zone1a
echo $zone1b

Attiva tutti i servizi necessari:

gcloud services enable compute.googleapis.com

8. Crea rete VPC producer

Rete VPC

In Cloud Shell, esegui le seguenti operazioni:

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

Crea subnet

La subnet PSC verrà associata al collegamento del servizio PSC ai fini della Network Address Translation.

In Cloud Shell, crea la subnet NAT PSC:

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

In Cloud Shell, crea la subnet della regola di forwarding del produttore:

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

In Cloud Shell, crea la subnet del gruppo di endpoint di rete:

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

In Cloud Shell, crea la subnet solo proxy regionale del produttore

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

Prenota l'indirizzo IP del bilanciatore del carico

In Cloud Shell, prenota un indirizzo IP interno per il bilanciatore del carico:

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

In Cloud Shell, visualizza l'indirizzo IP riservato.

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

Output di esempio:

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

Configura il NEG a livello di zona

Nella sezione seguente, creerai un gruppo di endpoint di rete di zona contenente una o più combinazioni di indirizzo IP o indirizzo IP e porta di destinazione:

  • L'indirizzo IPv4 interno principale di un'interfaccia di rete VM
  • L'indirizzo IPv4 interno principale di un'interfaccia di rete VM più un numero di porta di destinazione
  • Un indirizzo IPv4 interno dall'intervallo di indirizzi IP alias assegnato a un'interfaccia di rete VM
  • Un indirizzo IPv4 interno dall'intervallo di indirizzi IP alias assegnato a un'interfaccia di rete VM più un numero di porta di destinazione

L'interfaccia di rete contenente l'endpoint GCE_VM_IP_PORT deve trovarsi nella subnet del NEG. Quando ometti un numero di porta da un endpoint GCE_VM_IP_PORT, Google Cloud utilizza il numero di porta predefinito del NEG per l'endpoint.

Nell'architettura di riferimento, le istanze GCE associate al NEG zonale sono costituite da:

  • database-us-central1-a | us-central1-a | IP: 100.100.10.2 | Porta: 443
  • database-us-central1-a | us-central1-b | IP: 100.100.10.3 | Porta: 443
  • Nome subnet: database-subnet-1

Crea il NEG di zona per zone1a

Nella sezione seguente, creerai il gruppo di endpoint di rete per zona, ad esempio us-central1-a, e specificherai il nome della subnet utilizzata per creare l'istanza GCE. Nell'architettura di riferimento, il nome della subnet è database-subnet-1.

In Cloud Shell, crea un NEG di zona:

gcloud compute network-endpoint-groups create us-central-zonal-neg-1a \
    --zone=$zone1a \
    --network=agentspace-psc-demo \
    --subnet=database-subnet-1 \
    --default-port=443

In Cloud Shell, aggiorna il NEG zonale con l'IP:porta dell'istanza GCE di cui è stato eseguito il deployment in zone1a. Nell'architettura di riferimento, l'istanza GCE è 100.100.10.2 porta 443 di cui è stato eseguito il deployment nella zona us-central1-a.

gcloud compute network-endpoint-groups update us-central-zonal-neg-1a --zone=$zone1a --add-endpoint instance=database-us-central1-a,port=443

Crea il NEG a livello di zona per zone1b

Nella sezione seguente, creerai il gruppo di endpoint di rete per zona, ad esempio us-central1-b, e specificherai il nome della subnet utilizzata per creare l'istanza GCE. Nell'architettura di riferimento, il nome della subnet è database-subnet-1.

In Cloud Shell, crea un NEG di zona:

gcloud compute network-endpoint-groups create us-central-zonal-neg-1b \
    --zone=$zone1b \
    --network=agentspace-psc-demo \
    --subnet=database-subnet-1 \
    --default-port=443

In Cloud Shell, aggiorna il NEG zonale con l'IP:porta dell'istanza GCE di cui è stato eseguito il deployment in zone1b. Nell'architettura di riferimento, l'istanza GCE è 100.100.10.3 porta 443 di cui è stato eseguito il deployment nella zona us-central1-b.

gcloud compute network-endpoint-groups update us-central-zonal-neg-1b --zone=$zone1b --add-endpoint instance=database-us-central1-b,port=443

Crea un controllo di integrità a livello di regione

In Cloud Shell, crea un controllo di integrità che esegua il probe della porta del database on-premise, 443:

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

Crea policy firewall di rete e regole firewall

In Cloud Shell, esegui le seguenti operazioni:

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

La seguente regola firewall consente il traffico dall'intervallo di subnet NAT PSC a tutte le istanze della rete.

In Cloud Shell, esegui le seguenti operazioni:

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

La seguente regola firewall consente il traffico dall'intervallo di probe del controllo di integrità a tutte le istanze della rete. Tieni presente che la porta del controllo di integrità e dell'applicazione devono corrispondere.

In Cloud Shell, esegui le seguenti operazioni:

gcloud compute network-firewall-policies rules create 2002 --action ALLOW --firewall-policy agentspace-psc-demo-policy --description "allow internal probe health check range to GCE" --direction INGRESS --src-ip-ranges 35.191.0.0/16,130.211.0.0/22 --global-firewall-policy --layer4-configs=tcp:443

La seguente regola firewall consente il traffico dall'intervallo della subnet solo proxy a tutte le istanze della rete. Tieni presente che la subnet proxy e la porta dell'applicazione devono corrispondere.

In Cloud Shell, esegui le seguenti operazioni:

gcloud compute network-firewall-policies rules create 2003 --action ALLOW --firewall-policy agentspace-psc-demo-policy --description "allow internal tcp proxy health check range to GCE" --direction INGRESS --src-ip-ranges 10.10.10.0/24 --global-firewall-policy --layer4-configs=tcp:443

9. Crea servizio producer

Crea i componenti del bilanciatore del carico

In Cloud Shell, crea un servizio di backend:

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

In Cloud Shell, associa il NEG zonale us-central-zonal-neg-1a al servizio di backend:

gcloud compute backend-services add-backend producer-backend-svc \
   --network-endpoint-group=us-central-zonal-neg-1a  \
   --network-endpoint-group-zone=$zone1a \
   --balancing-mode=CONNECTION \
   --max-connections-per-endpoint=100 \
   --region=$region

In Cloud Shell, associa il NEG zonale us-central-zonal-neg-1b al servizio di backend:

gcloud compute backend-services add-backend producer-backend-svc \
   --network-endpoint-group=us-central-zonal-neg-1b  \
   --network-endpoint-group-zone=$zone1b \
   --balancing-mode=CONNECTION \
   --max-connections-per-endpoint=100 \
   --region=$region

In Cloud Shell, crea un proxy TCP di destinazione per instradare le richieste al servizio di backend:

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

Nella sintassi seguente, crea una regola di forwarding (bilanciatore del carico proxy TCP interno) con l'accesso globale abilitato.

In Cloud Shell, esegui le seguenti operazioni:

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

Convalida l'integrità del backend

Convalida l'integrità (stato verde) del servizio di backend e delle relative istanze di Compute utilizzando la console Google Cloud nella sezione seguente. Vai a:

Servizi di rete → Bilanciamento del carico → Producer-backend-svc

dbbc97dcef9db785.png

Crea collegamento al servizio

Per pubblicare un servizio, devi creare un collegamento al servizio Private Service Connect. Puoi pubblicare il servizio con l'approvazione automatica o esplicita.

  • Per pubblicare il servizio e consentire automaticamente a qualsiasi consumatore di connettersi, segui le istruzioni riportate in Pubblicare un servizio con approvazione automatica.
  • Per pubblicare il servizio con l'approvazione esplicita del consumer, nelle impostazioni di connessione del collegamento al servizio, seleziona Accetta connessioni per i progetti selezionati e lascia vuoto il campo Progetti accettati.
  • Dopo aver generato l'allegato del servizio, gli endpoint consumer che richiedono l'accesso al servizio producer inizialmente entrano in uno stato in attesa. Per autorizzare la connessione, il produttore deve quindi accettare il progetto da cui ha avuto origine la richiesta dell'endpoint consumer.

In Cloud Shell, crea l'allegato di servizio cc-database1-svc-attachment con approvazione automatica:

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

Successivamente, ottieni e annota l'allegato di servizio elencato nell'URI selfLink che inizia con i progetti per configurare l'endpoint PSC in Agentspace.

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

In Cloud Shell, esegui le seguenti operazioni:

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

Output previsto di esempio:

connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2025-07-12T16:00:22.429-07:00'
description: ''
enableProxyProtocol: false
fingerprint: zOpeRQnPWSc=
id: '1784245893044590569'
kind: compute#serviceAttachment
name: zonal-database1-svc-attachment
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project-svc4/regions/us-central1/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
  high: '119824781489996776'
  low: '1784245893044590569'
reconcileConnections: false
region: https://www.googleapis.com/compute/v1/projects/$project-svc4/regions/us-central1
selfLink: https://www.googleapis.com/compute/v1/projects/$project-svc4/regions/us-central1/serviceAttachments/zonal-database1-svc-attachment
targetService: https://www.googleapis.com/compute/v1/projects/$project-svc4/regions/us-central1/forwardingRules/producer-zonal-neg-fr

In Cloud Console, vai a:

Servizi di rete → Private Service Connect → Servizi pubblicati

898fe7673474be14.png

4d0b77966af14c7a.png

10. Stabilire una connessione endpoint PSC in Agentspace

Associa l'URI del collegamento del servizio producer ad Agentspace, assicurandoti che sia selezionato l'accesso globale. Di seguito è riportato un esempio di attivazione dell'accesso globale con l'allegato di servizio dell'architettura di riferimento.

cb16ba8d7cfb86dd.png

Per finalizzare il networking privato, consulta le origini dati di terze parti di Agentspace per ulteriori istruzioni.

Convalida l'endpoint PSC in Cloud Console

Per confermare una connessione PSC riuscita tra Agentspace (il consumatore) e il produttore, verifica il progetto tenant Agentspace collegato al servizio del produttore. Puoi trovarlo in "Progetti collegati". L'ID progetto tenant viene assegnato in modo casuale, ma termina sempre con "tp".

Dalla console Cloud puoi convalidare la connessione PSC. In Cloud Console, vai a:

Servizi di rete → Private Service Connect → Servizio pubblicato, poi seleziona il servizio zonal-database1-svc-attachment.

2f6b7830ce3db3b7.png

11. Esegui la pulizia

Elimina i componenti del lab da un singolo terminale Cloud Shell

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

gcloud compute forwarding-rules delete producer-zonal-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 rules delete 2002 --firewall-policy agentspace-psc-demo-policy --global-firewall-policy -q

gcloud compute network-firewall-policies rules delete 2003 --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 us-central-zonal-neg-1a --zone=$zone1a -q

gcloud compute network-endpoint-groups delete us-central-zonal-neg-1b --zone=$zone1b -q

gcloud compute addresses delete zonal-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 networks subnets delete neg-subnet --region=$region -q

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

gcloud compute networks delete agentspace-psc-demo -q

12. Complimenti

Congratulazioni, hai configurato e pubblicato correttamente un servizio producer con Private Service Connect.

Hai creato l'infrastruttura del produttore, hai imparato a creare un NEG zonale, un servizio del produttore e ad associare l'allegato del servizio ad Agentspace.

Cosmopup pensa che i codelab siano fantastici.

c911c127bffdee57.jpeg

Passaggi successivi

Dai un'occhiata ad alcuni di questi codelab…

Ulteriori letture e video

Documenti di riferimento