Agentspace vers base de données auto-hébergée de NEG zonal

1. Introduction

Dans cet atelier de programmation, vous allez déployer un équilibreur de charge proxy TCP interne et un groupe de points de terminaison du réseau (NEG) zonal, publiés en tant que service de producteur PSC. Le NEG se composera d'une ou plusieurs instances de calcul dans GCP auto-hébergeant une base de données (JIRA, Confluence, Sharepoint, par exemple).

Private Service Connect est une fonctionnalité de mise en réseau de Google Cloud qui permet aux clients d'accéder à des services gérés en mode privé depuis leur réseau VPC. De même, il permet aux producteurs de services gérés d'héberger ces services dans leur propre réseau VPC ou multicloud, en proposant une connexion privée à leurs clients. Par exemple, lorsque vous utilisez Private Service Connect pour accéder à un NEG zonal, vous êtes le producteur de services et Google (Agentspace) est le client du service.

Points abordés

  • Configuration réseau requise pour Agentspace
  • Bonnes pratiques de mise en réseau Agentspace
  • Créer un service producteur Private Service Connect

Prérequis

  • Projet Google Cloud avec des autorisations de propriétaire

2. Ce que vous allez faire

Vous allez établir un réseau de producteurs, agentspace-psc-demo, pour déployer un équilibreur de charge proxy TCP interne et un NEG zonal publié en tant que service via Private Service Connect (PSC).

3. Configuration réseau requise

Vous trouverez ci-dessous la répartition des exigences réseau pour le réseau de producteurs. Dans cet atelier de programmation, le consommateur est Agentspace.

Composants

Description

VPC (agentspace-psc-demo)

VPC en mode personnalisé

Sous-réseau NAT PSC

Les paquets du réseau VPC du client sont traduits à l'aide de la traduction NAT source (SNAT) afin que leurs adresses IP sources d'origine soient converties en adresses IP sources du sous-réseau NAT du réseau VPC du producteur. PSC NAT accepte un sous-réseau /29 par rattachement de service.

Sous-réseau de la règle de transfert PSC

Permet d'allouer une adresse IP à l'équilibreur de charge proxy TCP interne régional.Le sous-réseau de la règle de transfert est considéré comme un sous-réseau standard.

Sous-réseau NEG

Permet d'allouer une adresse IP au groupe de points de terminaison du réseau à partir d'un sous-réseau standard.

Sous-réseau proxy réservé

Une adresse IP interne est attribuée à chacun des proxys de l'équilibreur de charge. Les paquets envoyés à partir d'un proxy vers une VM ou un groupe de points de terminaison du réseau de backend possèdent une adresse IP source provenant du sous-réseau proxy réservé.Un sous-réseau /23 est recommandé , mais la taille minimale (/26) est acceptée. Un sous-réseau proxy régional est requis par région.

Service de backend

Un service de backend sert de pont entre votre équilibreur de charge et vos ressources de backend. Dans le tutoriel, le service de backend est associé au NEG zonal.

4. Bonnes pratiques

  • Les NEG zonaux sont compatibles avec une ou plusieurs instances GCE zonales basées sur GCE_VM_IP_PORT.
  • Activez l'accès global sur la règle de transfert du producteur avant de créer le rattachement de service.
  • Activez l'accès mondial lorsque vous créez le point de terminaison Agentspace.
  • L'équilibreur de charge proxy TCP interne est également compatible avec les groupes d'instances gérés et non gérés.
  • Les équilibreurs de charge Google Cloud proxy TCP ou directs existants peuvent être exposés en tant que service de producteur.

5. Topologie de l'atelier de programmation

9a8a948b0a4ad91e.png

6. Préparation

Configuration de l'environnement au rythme de chacun

  1. Connectez-vous à la console Google Cloud, puis créez un projet ou réutilisez un projet existant. Si vous n'avez pas encore de compte Gmail ou Google Workspace, vous devez en créer un.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Le nom du projet est le nom à afficher pour les participants au projet. Il s'agit d'une chaîne de caractères non utilisée par les API Google. Vous pourrez toujours le modifier.
  • L'ID du projet est unique parmi tous les projets Google Cloud et non modifiable une fois défini. La console Cloud génère automatiquement une chaîne unique (en général, vous n'y accordez d'importance particulière). Dans la plupart des ateliers de programmation, vous devrez indiquer l'ID de votre projet (généralement identifié par PROJECT_ID). Si l'ID généré ne vous convient pas, vous pouvez en générer un autre de manière aléatoire. Vous pouvez également en spécifier un et voir s'il est disponible. Après cette étape, l'ID n'est plus modifiable et restera donc le même pour toute la durée du projet.
  • Pour information, il existe une troisième valeur (le numéro de projet) que certaines API utilisent. Pour en savoir plus sur ces trois valeurs, consultez la documentation.
  1. Vous devez ensuite activer la facturation dans la console Cloud pour utiliser les ressources/API Cloud. L'exécution de cet atelier de programmation est très peu coûteuse, voire sans frais. Pour désactiver les ressources et éviter ainsi que des frais ne vous soient facturés après ce tutoriel, vous pouvez supprimer le projet ou les ressources que vous avez créées. Les nouveaux utilisateurs de Google Cloud peuvent participer au programme d'essai sans frais pour bénéficier d'un crédit de 300 $.

Démarrer Cloud Shell

Bien que Google Cloud puisse être utilisé à distance depuis votre ordinateur portable, nous allons nous servir de Google Cloud Shell pour cet atelier de programmation, un environnement de ligne de commande exécuté dans le cloud.

Dans la console Google Cloud, cliquez sur l'icône Cloud Shell dans la barre d'outils supérieure :

55efc1aaa7a4d3ad.png

Le provisionnement et la connexion à l'environnement prennent quelques instants seulement. Une fois l'opération terminée, le résultat devrait ressembler à ceci :

7ffe5cbb04455448.png

Cette machine virtuelle contient tous les outils de développement nécessaires. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud, ce qui améliore nettement les performances du réseau et l'authentification. Vous pouvez effectuer toutes les tâches de cet atelier de programmation dans un navigateur. Vous n'avez rien à installer.

7. Avant de commencer

Activer les API

Dans Cloud Shell, assurez-vous que l'ID de votre projet est configuré :

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

Activez tous les services nécessaires :

gcloud services enable compute.googleapis.com

8. Créer un réseau VPC de producteur

Réseau VPC

Dans Cloud Shell, procédez comme suit :

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

Créer des sous-réseaux

Le sous-réseau PSC sera associé au rattachement de service PSC à des fins de traduction d'adresse réseau.

Dans Cloud Shell, créez le sous-réseau 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

Dans Cloud Shell, créez le sous-réseau de la règle de transfert du producteur :

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

Dans Cloud Shell, créez le sous-réseau du groupe de points de terminaison du réseau :

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

Dans Cloud Shell, créez le sous-réseau proxy régional réservé du producteur.

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

Réserver l'adresse IP de l'équilibreur de charge

Dans Cloud Shell, réservez une adresse IP interne pour l'équilibreur de charge :

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

Dans Cloud Shell, affichez l'adresse IP réservée.

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

Exemple de résultat :

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

Configurer le NEG zonal

Dans la section suivante, vous allez créer un groupe de points de terminaison du réseau zonal contenant une ou plusieurs combinaisons d'adresses IP, ou d'adresses IP et de ports de destination :

  • Adresse IPv4 interne principale d'une interface réseau de VM
  • L'adresse IPv4 interne principale d'une interface réseau de VM plus un numéro de port de destination
  • Une adresse IPv4 interne issue de la plage d'adresses IP d'alias attribuée à une interface réseau de VM
  • Une adresse IPv4 interne de la plage d'adresses IP d'alias attribuée à une interface réseau de VM, plus un numéro de port de destination

L'interface réseau contenant le point de terminaison GCE_VM_IP_PORT doit se trouver dans le sous-réseau du NEG. Lorsque vous omettez un numéro de port d'un point de terminaison GCE_VM_IP_PORT, Google Cloud utilise le numéro de port par défaut du NEG pour le point de terminaison.

Dans l'architecture de référence, les instances GCE associées au NEG zonal se composent des éléments suivants :

  • database-us-central1-a | us-central1-a | IP: 100.100.10.2 | Port: 443
  • database-us-central1-a | us-central1-b | IP: 100.100.10.3 | Port: 443
  • Nom du sous-réseau : database-subnet-1

Créer le NEG zonal pour la zone1a

Dans la section suivante, vous allez créer le groupe de points de terminaison du réseau par zone (par exemple, us-central1-a) et spécifier le nom du sous-réseau utilisé pour créer l'instance GCE. Dans l'architecture de référence, le nom du sous-réseau est "database-subnet-1".

Dans Cloud Shell, créez un NEG zonal :

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

Dans Cloud Shell, mettez à jour le NEG zonal avec l'adresse IP et le port de l'instance GCE déployée dans la zone 1a. Dans l'architecture de référence, l'instance GCE est 100.100.10.2, port 443, déployée dans la zone 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

Créer le NEG zonal pour la zone1b

Dans la section suivante, vous allez créer le groupe de points de terminaison du réseau par zone (par exemple, us-central1-b) et spécifier le nom du sous-réseau utilisé pour créer l'instance GCE. Dans l'architecture de référence, le nom du sous-réseau est "database-subnet-1".

Dans Cloud Shell, créez un NEG zonal :

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

Dans Cloud Shell, mettez à jour le NEG zonal avec l'adresse IP et le port de l'instance GCE déployée dans la zone 1b. Dans l'architecture de référence, l'instance GCE est 100.100.10.3, port 443, déployée dans la zone 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

Créer une vérification d'état régionale

Dans Cloud Shell, créez une vérification de l'état qui analyse le port 443 de la base de données sur site :

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

Créer une stratégie de pare-feu réseau et des règles de pare-feu

Dans Cloud Shell, procédez comme suit :

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 règle de pare-feu suivante autorise le trafic de la plage de sous-réseaux NAT PSC vers toutes les instances du réseau.

Dans Cloud Shell, procédez comme suit :

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 règle de pare-feu suivante autorise le trafic provenant de la plage de vérification de l'état vers toutes les instances du réseau. Notez que le port de vérification d'état et le port de l'application doivent correspondre.

Dans Cloud Shell, procédez comme suit :

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 règle de pare-feu suivante autorise le trafic de la plage de sous-réseau proxy réservé vers toutes les instances du réseau. Notez que le sous-réseau du proxy et le port de l'application doivent correspondre.

Dans Cloud Shell, procédez comme suit :

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. Créer un service producteur

Créer des composants pour l'équilibreur de charge

Dans Cloud Shell, créez un service de 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

Dans Cloud Shell, associez le NEG zonal us-central-zonal-neg-1a au service de 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

Dans Cloud Shell, associez le NEG zonal us-central-zonal-neg-1b au service de 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

Dans Cloud Shell, créez un proxy TCP cible pour acheminer les requêtes vers votre service de backend :

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

Dans la syntaxe suivante, créez une règle de transfert (équilibreur de charge proxy TCP interne) avec l'accès mondial activé.

Dans Cloud Shell, procédez comme suit :

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

Valider l'état du backend

Validez l'état (vert) du service de backend et de ses instances de calcul associées à l'aide de la console cloud dans la section suivante. Accédez à l'un des éléments suivants :

Services réseau → Équilibrage de charge → Producer-backend-svc

dbbc97dcef9db785.png

Créer un rattachement de service

Pour publier un service, vous devez créer un rattachement de service Private Service Connect. Vous pouvez publier le service avec approbation automatique ou explicite.

  • Pour publier le service et autoriser automatiquement tous les clients à s'y connecter, suivez les instructions de la section Publier un service avec approbation automatique.
  • Pour publier le service avec une approbation explicite du client, sélectionnez "Accepter les connexions pour les projets sélectionnés" dans les paramètres de connexion du rattachement de service, puis laissez le champ "Projets acceptés" vide.
  • Une fois le rattachement de service généré, les points de terminaison client qui demandent l'accès au service producteur passent initialement à l'état "En attente". Pour autoriser la connexion, le producteur doit ensuite accepter le projet à partir duquel la demande de point de terminaison du consommateur a été envoyée.

Dans Cloud Shell, créez le rattachement de service cc-database1-svc-attachment avec approbation automatique :

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

Ensuite, obtenez et notez le rattachement de service listé dans l'URI selfLink commençant par "projects" pour configurer le point de terminaison PSC dans Agentspace.

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

Dans Cloud Shell, procédez comme suit :

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

Exemple de résultat attendu :

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

Dans la console Cloud, accédez à :

Services réseau → Private Service Connect → Services publiés

898fe7673474be14.png

4d0b77966af14c7a.png

10. Établir une connexion de point de terminaison PSC dans Agentspace

Associez l'URI du rattachement de service producteur à Agentspace, en veillant à sélectionner l'accès mondial. Vous trouverez ci-dessous un exemple d'activation de l'accès mondial avec l'attachement de service de l'architecture de référence.

cb16ba8d7cfb86dd.png

Pour finaliser la mise en réseau privée, consultez les sources de données tierces d'Agentspace pour obtenir des instructions supplémentaires.

Valider le point de terminaison PSC dans la console Cloud

Pour confirmer qu'une connexion PSC a bien été établie entre Agentspace (le consommateur) et le producteur, vérifiez le projet de locataire Agentspace associé au service producteur. Vous le trouverez sous "Projets associés". L'ID du projet locataire est attribué de manière aléatoire, mais se termine toujours par "tp".

Dans la console Cloud, vous pouvez valider la connexion PSC. Dans la console Cloud, accédez à :

Services réseau → Private Service Connect → Service publié, puis sélectionnez le service zonal-database1-svc-attachment.

2f6b7830ce3db3b7.png

11. Effectuer un nettoyage

Supprimer les composants de l'atelier à partir d'un seul terminal 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. Félicitations

Félicitations, vous avez configuré et publié un service de producteur avec Private Service Connect.

Vous avez créé l'infrastructure du producteur, appris à créer un NEG zonal et un service de producteur, et à associer l'attachement de service à Agentspace.

Cosmopup pense que les ateliers de programmation sont géniaux !

c911c127bffdee57.jpeg

Et ensuite ?

Découvrez quelques-uns des ateliers de programmation...

Lectures et vidéos complémentaires

Documents de référence