Équilibreur de charge L7 interne régional Northbound Looker PSC

1. Introduction

Dans cet atelier de programmation, vous allez créer un équilibreur de charge d'application interne régional de couche 7 et un backend Private Service Connect pour accéder à Looker en direction nord. L'accès à Looker en amont nécessite que le VPC du consommateur soit ajouté à la liste d'autorisation de l'instance PSC Looker.

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 leurs propres réseaux VPC séparés et de proposer une connexion privée à leurs clients. Par exemple, lorsque vous utilisez Private Service Connect pour accéder à Looker, vous êtes le client du service et Google est le producteur de services, comme indiqué dans la figure 1.

Figure 1.

145ea4672c3a3b14.png

L'accès sortant, également appelé PSC inversé, permet au consommateur de créer un service publié en tant que producteur pour autoriser Looker à accéder aux points de terminaison sur site, dans un VPC, aux services gérés et à Internet. Les connexions vers le sud peuvent être déployées dans n'importe quelle région, indépendamment de l'emplacement de déploiement de Looker PSC, comme indiqué sur la figure 2.

Figure 2.

3edfcc67e195d082.png

Points abordés

  • Configuration réseau requise
  • Mettre à jour la liste d'autorisation Looker pour l'accès Northbound
  • Créer un backend Private Service Connect dans le VPC consommateur
  • Certificats Google et certificats autosignés

Prérequis

def88091b42bfe4d.png

2. Ce que vous allez faire

Vous allez établir un réseau consommateur autorisé, looker-psc-demo, pour déployer un équilibreur de charge d'application interne de couche 7 régional et un NEG de backend PSC qui nécessite un certificat Google ou autogéré. Pour en savoir plus, consultez la page Récapitulatif de l'équilibreur de charge et du certificat.

3. Configuration réseau requise

Voici la répartition des exigences réseau :

Composants

Description

VPC (looker-psc-demo)

VPC en mode personnalisé

Sous-réseau PSC NEG

Permet d'allouer une adresse IP au groupe de points de terminaison du réseau

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 point de terminaison de backend possèdent une adresse IP source provenant du sous-réseau proxy réservé.

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 PSC.

4. Topologie de l'atelier de programmation

2f6bb87ef0e139b2.png

5. 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.

6. 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]
echo $project
echo $region

Activez tous les services nécessaires :

gcloud services enable compute.googleapis.com

7. Réseau de consommateurs

Dans la section suivante, vous allez créer le réseau consommateur qui sera mis à jour dans la liste d'autorisation VPC PSC Looker.

Réseau VPC

Dans Cloud Shell, procédez comme suit :

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

Créer des sous-réseaux

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

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

Dans Cloud Shell, créez le sous-réseau de l'équilibreur de charge d'application interne :

gcloud compute networks subnets create consumer-ilb-subnet --network looker-psc-demo --range 172.16.40.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=looker-psc-demo \
  --range=10.10.10.0/24

8. Créer un domaine personnalisé

Voici les étapes à suivre pour établir un domaine personnalisé :

Dans l'exemple ci-dessous, looker.cosmopup.com est le domaine personnalisé.

5424ce99136d5b3a.png

Exemple OAuth

Vous trouverez ci-dessous un exemple d'identifiants OAuth pour les origines autorisées et le rappel du sous-domaine looker.cosmopup.com.

c7e5b8c7d2cc6a01.png

9. Certificats

Vous pouvez créer des certificats Compute Engine ou via le gestionnaire de certificats. Utilisez l'une des méthodes suivantes pour créer des certificats à l'aide du gestionnaire de certificats :

10. Ajouter Looker à la liste d'autorisation du VPC

Afficher les VPC autorisés

Dans la section suivante, vous allez utiliser l'interface utilisateur de la console Cloud pour afficher la liste des VPC autorisés Looker.

Dans la console Cloud, accédez à :

Looker → Instance Looker → Détails

Dans l'exemple ci-dessous, aucune entrée ne figure dans la liste des VPC autorisés :

ad33177a2d721ea7.png

Mettre à jour les VPC autorisés

Mettez à jour votre instance Looker pour prendre en charge l'accès Northbound en ajoutant looker-psc-demo en tant que VPC autorisé.

Dans la console Cloud, accédez à :

Looker → Instance Looker → Modifier

cbbc069688890b82.png

Connexions → VPC autorisés

Assurez-vous de sélectionner le projet dans lequel looker-psc-demo est déployé, suivi du VPC looker-psc-demo, puis cliquez sur "Continuer".

dc931643e1b220a.png

3e26d16d83cceae9.png

Valider les VPC autorisés

Afficher la liste des VPC autorisés mis à jour

Dans la console Cloud, accédez à :

Looker → Instance Looker → Détails

e34664c867929c66.png

11. Créer un backend PSC

Looker PSC en tant que producteur de services génère un URI de rattachement de service utilisé par les consommateurs de services pour déployer des points de terminaison et des backends afin d'accéder à Looker en amont. À l'étape suivante, vous identifierez l'URI du rattachement de service Looker PSC, puis vous créerez un backend de groupe de points de terminaison du réseau (NEG) Private Service Connect dans le VPC consommateur.

Identifier le rattachement de service PSC Looker

Dans la console Cloud, accédez à l'URI du rattachement de service et copiez-le :

Looker → Instance Looker → Détails

a253f94e946a1eef.png

Créer le groupe de points de terminaison du réseau PSC

Dans Cloud Shell, procédez comme suit en veillant à mettre à jour psc-target-service :

gcloud compute network-endpoint-groups create looker-northbound-neg \
    --network-endpoint-type=private-service-connect \
    --psc-target-service=[UPDATE WITH YOU LOOKER SERVICE ATTACHMENT URI] \
    --region=$region \
    --network=looker-psc-demo \
    --subnet=consumer-psc-neg-subnet

Exemple :

gcloud compute network-endpoint-groups create looker-northbound-neg \
    --network-endpoint-type=private-service-connect \
 --psc-target-service=projects/t7ec792caf2a609d1-tp/regions/us-central1/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183 \
    --region=$region \
    --network=looker-psc-demo \
    --subnet=consumer-psc-neg-subnet

Valider la création d'un groupe de points de terminaison du réseau PSC

Dans Cloud Shell, procédez comme suit en vous assurant que l'état de la connexion PSC est "accepté" :

gcloud compute network-endpoint-groups describe looker-northbound-neg --region=$region | grep -i pscConnectionStatus:

Exemple :

user@cloudshell$ gcloud compute network-endpoint-groups describe looker-northbound-neg --region=$region | grep -i pscConnectionStatus: 
  pscConnectionStatus: ACCEPTED

Créer un équilibreur de charge d'application interne régional

Dans les étapes suivantes, vous utiliserez la console Cloud pour créer l'équilibreur de charge d'application interne régional tout en associant vos certificats générés à la configuration du frontend.

Dans la console Cloud, accédez à :

Services réseau → Équilibrage de charge → Créer un équilibreur de charge

e3474ca153d7c55a.png

Sélectionnez les options suivantes :

c80afa6a28b6d922.png

Créer la configuration du backend

Sélectionnez les options suivantes et personnalisez l'environnement en fonction de votre déploiement :

  • Région utilisée pour déployer l'infrastructure réseau
  • Réseau : looker-psc-demo
  • Le sous-réseau proxy réservé est renseigné automatiquement en fonction de votre région et de votre réseau.

115627dc54d7a582.png

b3eaa88dd02a95c1.png

cf519145f0259061.png

530527bc9273e002.png

Règles de routage

Aucune configuration requise

53a80d74b3c7dd56.png

Configuration de l'interface

29faa25397025fb4.png

538da2b4930d243b.png

bbc13e921681dd65.png

Assurez-vous que l'équilibreur de charge est activé et obtenez l'adresse IP.

Dans la console Cloud → Services réseau → Équilibrage de charge → looker-ilb-alb

abc7d02b4c951c73.png

12. Résolution DNS

La résolution DNS vers le domaine personnalisé peut être faisant autorité sur site ou dans Cloud DNS. Dans ce tutoriel, nous allons définir Cloud DNS comme serveur faisant autorité pour le domaine personnalisé Looker. Pour activer la résolution DNS sur site vers GCP, vous devez activer les règles de serveur entrant.  Lorsque vous créez une règle de serveur entrant, Cloud DNS crée des points d'entrée de règle de serveur entrant dans le réseau VPC auquel la règle de serveur est appliquée. Les points d'entrée des règles de serveur entrant sont des adresses IPv4 internes provenant de la plage d'adresses IPv4 principale de chaque sous-réseau du réseau VPC applicable, à l'exception des sous-réseaux proxy réservés.

Dans la section suivante, une zone DNS privée pour le domaine personnalisé Looker, looker.cosmopup.com et un enregistrement A sont créés. Ils se composent de l'adresse IP de l'équilibreur de charge.

13. Créer une zone DNS privée

Dans Cloud Shell, créez la zone privée Cloud DNS.

gcloud dns --project=$projectid managed-zones create looker-cosmopup-dns --description="" --dns-name="looker.cosmopup.com." --visibility="private" --networks="https://compute.googleapis.com/compute/v1/projects/$projectid/global/networks/looker-psc-demo"

Dans Cloud Shell, créez l'enregistrement A composé de l'adresse IP de l'équilibreur de charge obtenue à l'étape précédente.

gcloud dns --project=$projectid record-sets create looker.cosmopup.com. --zone="looker-cosmopup-dns" --type="A" --ttl="300" --rrdatas="<insert-your-ip>"

Exemple :

gcloud dns --project=$projectid record-sets create looker.cosmopup.com. --zone="looker-cosmopup-dns" --type="A" --ttl="300" --rrdatas="172.16.20.7"

Ensuite, la mise en réseau hybride (par exemple, Interconnect, VPN haute disponibilité) doit être configurée entre le VPC looker-psc-demo et le réseau sur site pour permettre la connectivité.

Voici les étapes à suivre pour établir la connectivité du NEG hybride à l'environnement sur site :

  • Choisir un produit de connectivité réseau | Google Cloud
  • Dans une architecture en étoile avec appairage de réseaux VPC, le NEG hybride est déployé dans le même VPC que Cloud Router (hub).
  • Assurez-vous que les pare-feu sur site sont mis à jour pour s'adapter à la plage de sous-réseau proxy réservé, car ce sous-réseau sert d'adresse IP source pour la communication avec les charges de travail sur site.
  • Mettez à jour le DNS sur site avec l'adresse IP de transfert entrant comme résolveur DNS pour looker.cosomopup.com.

Accéder à l'interface utilisateur Looker

Maintenant que l'équilibreur de charge est opérationnel, vous pouvez accéder à votre domaine Looker personnalisé via un navigateur Web. Il est important de noter que vous pouvez rencontrer un avertissement en fonction du type de certificat que vous utilisez (par exemple, certificat non approuvé ou approuvé).

Vous trouverez ci-dessous un exemple (certificat non approuvé) d'accès au domaine personnalisé Looker looker.cosmopup.com qui permet d'accéder à l'interface utilisateur Looker en amont :

ae43d0d0d7136044.png

14. Effectuer un nettoyage

À partir d'un seul terminal Cloud Shell, supprimez les composants de l'atelier :

gcloud compute forwarding-rules delete regional-internal-alb-fr --region=$region -q

gcloud compute target-https-proxies delete regional-internal-alb-target-proxy --region=$region -q

gcloud compute url-maps delete regional-internal-alb --region=$region -q

gcloud compute backend-services delete looker-psc-neg-backend-svc --region=$region -q

gcloud compute addresses delete regional-alb-static-ip --region=$region -q

gcloud compute network-endpoint-groups delete looker-northbound-neg --region=$region -q

gcloud compute networks delete looker-psc-demo -q

15. Félicitations

Félicitations, vous avez correctement configuré et validé la connectivité nord-sud à Looker à l'aide d'un domaine client et d'un équilibreur de charge d'application interne régional.

Vous avez créé l'infrastructure consommateur, appris à créer un NEG PSC et un domaine personnalisé, et découvert les différentes options de certificat. Découvrez toutes les fonctionnalités intéressantes de Looker.

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