1. Einführung
Looker (Google Cloud Core) bietet eine vereinfachte und optimierte Bereitstellung, Konfiguration und Verwaltung einer Looker-Instanz über die Google Cloud Console. Einige Verwaltungsaufgaben für Instanzen können auch über die Konsole ausgeführt werden.
Für Looker (Google Cloud Core)-Instanzen sind drei Netzwerkkonfigurationen verfügbar:
- Öffentlich: Die Netzwerkverbindung verwendet eine externe, über das Internet zugängliche IP-Adresse.
- Privat: Die Netzwerkverbindung verwendet eine interne, von Google gehostete VPC-IP-Adresse (Virtual Private Cloud).
- Öffentlich und privat: Die Netzwerkverbindung verwendet sowohl eine öffentliche als auch eine private IP-Adresse. Eingehender Traffic wird über die öffentliche IP-Adresse und ausgehender Traffic über die private IP-Adresse weitergeleitet.
In dieser Anleitung stellen Sie ein umfassendes privates End-to-End-Netzwerk bereit, um die Looker-Verbindung zu einer lokalen VPC über HA VPN zu unterstützen. Dieses Netzwerk kann repliziert werden, um Ihre Anforderungen an die Multi-Cloud- und lokale Konnektivität zu erfüllen.
Looker (Google Cloud Core) unterstützt private IP-Adressen für Instanzen, die die folgenden Kriterien erfüllen:
- Instanzversionen müssen Enterprise oder Embed sein.
Umfang
In dieser Anleitung erstellen Sie eine umfassende private Looker-Netzwerkbereitstellung in einer eigenständigen VPC mit Hybridkonnektivität zu Multi-Cloud- und lokalen Umgebungen.
Sie richten ein VPC-Netzwerk mit dem Namen on-prem-vpc ein, das eine lokale Umgebung darstellt. In Ihrer Bereitstellung ist „on-prem-vpc“ nicht vorhanden. Stattdessen wird ein Hybridnetzwerk zu Ihrem lokalen Rechenzentrum oder Cloud-Anbieter verwendet.
Im Folgenden sind die wichtigsten Schritte des Tutorials aufgeführt.
- Eigenständige VPC in „us-central1“ erstellen
- IP-Subnetz für den Zugriff auf private Dienste zuweisen
- Looker-Instanz in der eigenständigen VPC bereitstellen
- VPC „on-prem-vpc“ und Hybrid Networking erstellen
- Looker-IP-Bereich über BGP bewerben und validieren
- Looker- und PostgreSQL-Datenkommunikation einrichten und validieren
Figure1

Lerninhalte
- VPC und zugehöriges Hybridnetzwerk erstellen
- Looker in einer eigenständigen VPC bereitstellen
- Lokales VPC-Netzwerk und zugehöriges Hybridnetzwerk erstellen
- on-prem-vpc über HA VPN mit analytics-vps verbinden
- Looker-Subnetze über Hybridnetzwerke bewerben
- Hybride Netzwerkinfrastruktur überwachen
- PostgreSQL-Datenbank in Looker Cloud Core einbinden
Voraussetzungen
- Google Cloud-Projekt
IAM-Berechtigungen
2. Hinweis
Projekt für das Tutorial aktualisieren
In dieser Anleitung werden $variables verwendet, um die Implementierung der gcloud-Konfiguration in Cloud Shell zu erleichtern.
Führen Sie in Cloud Shell folgende Schritte aus:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
3. VPC einrichten
analytics-vpc erstellen
Führen Sie in Cloud Shell folgende Schritte aus:
gcloud compute networks create analytics-vpc --project=$projectid --subnet-mode=custom
on-prem-vpc erstellen
Führen Sie in Cloud Shell folgende Schritte aus:
gcloud compute networks create on-prem-vpc --project=$projectid --subnet-mode=custom
PostgreSQL-Datenbank-Subnetz erstellen
Führen Sie in Cloud Shell folgende Schritte aus:
gcloud compute networks subnets create database-subnet-us-central1 --project=$projectid --range=172.16.10.0/27 --network=on-prem-vpc --region=us-central1
Cloud Router- und NAT-Konfiguration
Cloud NAT wird im Tutorial für die Installation von Softwarepaketen verwendet, da die Datenbank-VM-Instanz keine externe IP-Adresse hat.
Erstellen Sie den Cloud Router in Cloud Shell.
gcloud compute routers create on-prem-cr-us-central1-nat --network on-prem-vpc --region us-central1
Erstellen Sie das NAT-Gateway in Cloud Shell.
gcloud compute routers nats create on-prem-nat-us-central1 --router=on-prem-cr-us-central1-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1
Datenbank-Testinstanz erstellen
Erstellen Sie eine postgres-Datenbankinstanz, die zum Testen und Validieren der Verbindung zu Looker verwendet wird.
Erstellen Sie die Instanz in Cloud Shell.
gcloud compute instances create postgres-database \
--project=$projectid \
--zone=us-central1-a \
--machine-type=e2-medium \
--subnet=database-subnet-us-central1 \
--no-address \
--image=projects/ubuntu-os-cloud/global/images/ubuntu-2304-lunar-amd64-v20230621 \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt -y install postgresql postgresql-client postgresql-contrib -y"
Firewallregeln erstellen
Damit IAP eine Verbindung zu Ihren VM-Instanzen herstellen kann, erstellen Sie eine Firewallregel, die:
- Gilt für alle VM-Instanzen, die über IAP zugänglich sein sollen.
- Lässt eingehenden Traffic aus dem IP-Bereich 35.235.240.0/20 zu. Dieser Bereich enthält alle IP-Adressen, die IAP für die TCP-Weiterleitung verwendet.
Über Cloud Shell
gcloud compute firewall-rules create on-prem-ssh \
--network on-prem-vpc --allow tcp:22 --source-ranges=35.235.240.0/20
4. Privater Dienstzugriff
Der Zugriff auf private Dienste ist eine private Verbindung zwischen Ihrem VPC-Netzwerk und einem Netzwerk von Google oder einem Drittanbieter. Google oder der Drittanbieter (Entitäten, die Dienste anbieten) werden auch als Dienstersteller bezeichnet. Looker Cloud Core ist ein Dienstproduzent.
Über die private Verbindung können VM-Instanzen in Ihrem VPC-Netzwerk und die Dienste, auf die Sie zugreifen, ausschließlich über interne IP-Adressen kommunizieren.
Wenn Sie den Zugriff auf private Dienste nutzen möchten, müssen Sie einen IP-Adressbereich (CIDR-Block) in Ihrem VPC-Netzwerk zuweisen und anschließend eine private Verbindung zu einem Dienstersteller erstellen.
IP-Adressbereich für Dienste zuweisen
Bevor Sie eine private Verbindung erstellen, müssen Sie einen IPv4-Adressbereich zuweisen, der vom VPC-Netzwerk des Diensterstellers verwendet werden soll. Dadurch wird sichergestellt, dass kein IP-Adressenkonflikt zwischen Ihrem VPC-Netzwerk und dem Netzwerk des Diensterstellers auftritt.
Wenn Sie einen Bereich in Ihrem VPC-Netzwerk zuweisen, ist dieser Bereich für Subnetze (primäre und sekundäre Bereiche) und Ziele von benutzerdefinierten statischen Routen nicht geeignet.
Die Verwendung von IPv6-Adressbereichen mit dem Zugriff auf private Dienste wird nicht unterstützt.
Aktivieren Sie die Service Networking API für Ihr Projekt in der Google Cloud Console. Wenn Sie die API aktivieren, müssen Sie die Seite der Console möglicherweise aktualisieren, um zu bestätigen, dass die API aktiviert wurde.
IP-Adresszuweisung erstellen
Legen Sie einen Adressbereich und eine Präfixlänge (Subnetzmaske) mit den Flags „addresses“ und „prefix-length“ fest. Wenn Sie beispielsweise den CIDR-Block 192.168.0.0/22 zuordnen möchten, geben Sie 192.168.0.0 für die Adresse und 22 für die Präfixlänge an.
Erstellen Sie in Cloud Shell die IP-Zuweisung für Looker.
gcloud compute addresses create psa-range-looker \
--global \
--purpose=VPC_PEERING \
--addresses=192.168.0.0 \
--prefix-length=22 \
--description="psa range for looker" \
--network=analytics-vpc
Prüfen Sie in Cloud Shell die IP-Zuweisung.
gcloud compute addresses list --global --filter="purpose=VPC_PEERING"
Beispiel:
userl@cloudshell$ gcloud compute addresses list --global --filter="purpose=VPC_PEERING"
NAME: psa-range-looker
ADDRESS/RANGE: 192.168.0.0/22
TYPE: INTERNAL
PURPOSE: VPC_PEERING
NETWORK: analytics-vpc
REGION:
SUBNET:
STATUS: RESERVED
Private Verbindung erstellen
Nachdem Sie einen zugewiesenen Bereich erstellt haben, können Sie eine private Verbindung zu einem Dienstersteller, Looker Cloud Core, herstellen. Die private Verbindung richtet nach der Einrichtung der Looker-Instanz eine VPC-Netzwerk-Peering-Verbindung zwischen Ihrem VPC-Netzwerk und dem Netzwerk des Diensterstellers ein.
Private Verbindungen erfolgen als 1:1-Beziehung zwischen Ihrem VPC-Netzwerk und einem Dienstersteller. Wenn ein einzelner Dienstersteller mehrere Dienste anbietet, benötigen Sie nur eine private Verbindung für alle Dienste des Erstellers.
Wenn Sie eine Verbindung zu mehreren Diensterstellern herstellen, verwenden Sie für jeden Dienstersteller eine eindeutige Zuweisung. Mit dieser Vorgehensweise können Sie Ihre Netzwerkeinstellungen wie Routen und Firewallregeln für jeden Dienstersteller verwalten.
Erstellen Sie in Cloud Shell eine private Verbindung und notieren Sie sich den Vorgangsnamen.
gcloud services vpc-peerings connect \
--service=servicenetworking.googleapis.com \
--ranges=psa-range-looker \
--network=analytics-vpc
Beispiel:
user@cloudshell$ gcloud services vpc-peerings connect \
--service=servicenetworking.googleapis.com \
--ranges=psa-range-looker \
--network=analytics-vpc
Operation "operations/pssn.p24-1049481044803-f16d61ba-7db0-4516-b525-cd0be063d4ea" finished successfully.
Prüfen Sie in Cloud Shell, ob der Vorgang erfolgreich war. Ersetzen Sie OPERATION_NAME durch den Namen, der im vorherigen Schritt generiert wurde.
gcloud services vpc-peerings operations describe \
--name=OPERATION_NAME
Beispiel:
user@cloudshell$ gcloud services vpc-peerings operations describe \
--name=operations/pssn.p24-1049481044803-f16d61ba-7db0-4516-b525-cd0be063d4ea
Operation "operations/pssn.p24-1049481044803-f16d61ba-7db0-4516-b525-cd0be063d4ea" finished successfully.
5. Looker-Instanz (Google Cloud Core) erstellen
Hinweis
Aktivieren Sie die Looker API für Ihr Projekt in der Google Cloud Console. Wenn Sie die API aktivieren, müssen Sie die Seite der Console möglicherweise aktualisieren, um zu bestätigen, dass die API aktiviert wurde.
Richten Sie einen OAuth-Client ein, um sich zu authentifizieren und auf die Instanz zuzugreifen.
Im folgenden Abschnitt müssen Sie die OAuth-Client-ID und das Secret verwenden, um die Looker-Instanz zu erstellen.
Autorisierte JavaScript-Quellen und Weiterleitungs-URIs sind nicht erforderlich.

Erstellen Sie in der Cloud Console eine Instanz anhand der Screenshots.
Rufen Sie LOOKER → INSTANZ ERSTELLEN auf.
Geben Sie die zuvor erstellte OAuth-Client-ID und das Secret ein.



Klicken Sie auf ERSTELLEN.
Während die Instanz erstellt wird, werden Sie in der Console zur Seite Instanzen weitergeleitet. Möglicherweise müssen Sie die Seite aktualisieren, um den Status Ihrer neuen Instanz zu sehen. Sie können die Aktivität zur Instanzerstellung auch aufrufen, indem Sie im Google Cloud Console-Menü auf das Benachrichtigungssymbol klicken. Während die Instanz erstellt wird, wird das Benachrichtigungssymbol im Google Cloud Console-Menü von einem Ladesymbol umkreist.
Nachdem die Looker-Instanz erstellt wurde, wird eine Instanz-URL generiert. Notieren Sie sich die URL.

6. OAuth 2.0-Client-ID aktualisieren
Im folgenden Abschnitt müssen Sie den autorisierten Weiterleitungs-URI der zuvor erstellten OAuth-Client-ID aktualisieren, indem Sie /oauth2callback an die Instanz-URL anhängen.
Anschließend können Sie sich mit der Instanz-URL in der Looker-Benutzeroberfläche anmelden.
Rufen Sie in der Cloud Console APIs & DIENSTE → ANMELDEDATEN auf.
Wählen Sie Ihre OAuth 2.0-Client-ID aus und aktualisieren Sie Ihre Instanz-URL. Beispiel:

7. Looker-Zugriff validieren
Rufen Sie in der Cloud Console Looker auf und wählen Sie die URL Ihrer Instanz aus, um die Looker-Benutzeroberfläche zu öffnen.

Nach dem Start wird die Landingpage gemäß dem Screenshot unten angezeigt, auf der Ihr Zugriff auf Looker Cloud Core bestätigt wird.

8. Hybridkonnektivität
Im folgenden Abschnitt erstellen Sie einen Cloud Router, mit dem Sie Routen zwischen Ihrer Virtual Private Cloud (VPC) und dem Peer-Netzwerk dynamisch über das Border Gateway Protocol (BGP) austauschen können.
Mit Cloud Router kann eine BGP-Sitzung über einen Cloud VPN-Tunnel eingerichtet werden, um Ihre Netzwerke zu verbinden. Es erkennt automatisch neue Subnetz-IP-Adressbereiche und kündigt sie in Ihrem Peer-Netzwerk an.
In dieser Anleitung stellen Sie ein HA VPN zwischen der analytics-vpc und der on-prem-vpc bereit, um die private Verbindung zu Looker zu veranschaulichen.
HA VPN-Gateway für analytics-vpc erstellen
Beim Erstellen der Gateways werden automatisch zwei externe IPv4-Adressen zugewiesen, eine für jede Gateway-Schnittstelle. Notieren Sie sich diese IP-Adressen, um sie später in den Konfigurationsschritten zu verwenden.
HA VPN-Gateway in Cloud Shell erstellen
gcloud compute vpn-gateways create analytics-vpn-gw \
--network=analytics-vpc\
--region=us-central1
HA VPN-Gateway für on-prem-vpc erstellen
Beim Erstellen der Gateways werden automatisch zwei externe IPv4-Adressen zugewiesen, eine für jede Gateway-Schnittstelle. Notieren Sie sich diese IP-Adressen, um sie später in den Konfigurationsschritten zu verwenden.
Erstellen Sie das HA VPN-Gateway in Cloud Shell.
gcloud compute vpn-gateways create on-prem-vpn-gw \
--network=on-prem-vpc\
--region=us-central1
Erstellung von HA VPN-Gateways validieren
Rufen Sie in der Console HYBRID CONNECTIVITY → VPN → CLOUD VPN GATEWAYS auf.

Cloud Router für die analytics-vpc erstellen
Erstellen Sie in Cloud Shell den Cloud Router in us-central1.
gcloud compute routers create analytics-cr-us-central1 \
--region=us-central1 \
--network=analytics-vpc\
--asn=65001
Cloud Router für on-prem-vpc erstellen
Erstellen Sie in Cloud Shell den Cloud Router in us-central1.
gcloud compute routers create on-prem-cr-us-central1 \
--region=us-central1 \
--network=on-prem-vpc \
--asn=65002
VPN-Tunnel für analytics-vpc erstellen
Sie erstellen zwei VPN-Tunnel auf jedem HA VPN-Gateway.
VPN-Tunnel0 erstellen
Erstellen Sie in Cloud Shell tunnel0:
gcloud compute vpn-tunnels create analytics-vpc-tunnel0 \
--peer-gcp-gateway on-prem-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
--router analytics-cr-us-central1 \
--vpn-gateway analytics-vpn-gw \
--interface 0
VPN-Tunnel 1 erstellen
Erstellen Sie in Cloud Shell den Tunnel 1:
gcloud compute vpn-tunnels create analytics-vpc-tunnel1 \
--peer-gcp-gateway on-prem-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
--router analytics-cr-us-central1 \
--vpn-gateway analytics-vpn-gw \
--interface 1
VPN-Tunnel für on-prem-vpc erstellen
Sie erstellen zwei VPN-Tunnel auf jedem HA VPN-Gateway.
VPN-Tunnel0 erstellen
Erstellen Sie in Cloud Shell tunnel0:
gcloud compute vpn-tunnels create on-prem-tunnel0 \
--peer-gcp-gateway analytics-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
--router on-prem-cr-us-central1 \
--vpn-gateway on-prem-vpn-gw \
--interface 0
VPN-Tunnel 1 erstellen
Erstellen Sie in Cloud Shell den Tunnel 1:
gcloud compute vpn-tunnels create on-prem-tunnel1 \
--peer-gcp-gateway analytics-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
--router on-prem-cr-us-central1 \
--vpn-gateway on-prem-vpn-gw \
--interface 1
Erstellung von VPN-Tunneln prüfen
Rufen Sie in der Console HYBRID CONNECTIVITY → VPN → CLOUD VPN TUNNELS auf.

9. BGP-Nachbarn einrichten
BGP-Sitzungen erstellen
In diesem Abschnitt konfigurieren Sie Cloud Router-Schnittstellen und BGP-Peers.
BGP-Schnittstelle und ‑Peering für analytics-vpc erstellen
Erstellen Sie in Cloud Shell die BGP-Schnittstelle:
gcloud compute routers add-interface analytics-cr-us-central1 \
--interface-name if-tunnel0-to-onprem \
--ip-address 169.254.1.1 \
--mask-length 30 \
--vpn-tunnel analytics-vpc-tunnel0 \
--region us-central1
Erstellen Sie in Cloud Shell den BGP-Peer:
gcloud compute routers add-bgp-peer analytics-cr-us-central1 \
--peer-name bgp-on-premises-tunnel0 \
--interface if-tunnel1-to-onprem \
--peer-ip-address 169.254.1.2 \
--peer-asn 65002 \
--region us-central1
Erstellen Sie in Cloud Shell die BGP-Schnittstelle:
gcloud compute routers add-interface analytics-cr-us-central1 \
--interface-name if-tunnel1-to-onprem \
--ip-address 169.254.2.1 \
--mask-length 30 \
--vpn-tunnel analytics-vpc-tunnel1 \
--region us-central1
Erstellen Sie in Cloud Shell den BGP-Peer:
gcloud compute routers add-bgp-peer analytics-cr-us-central1 \
--peer-name bgp-on-premises-tunnel1 \
--interface if-tunnel2-to-onprem \
--peer-ip-address 169.254.2.2 \
--peer-asn 65002 \
--region us-central1
BGP-Schnittstelle und ‑Peering für on-prem-vpc erstellen
Erstellen Sie in Cloud Shell die BGP-Schnittstelle:
gcloud compute routers add-interface on-prem-cr-us-central1 \
--interface-name if-tunnel0-to-analytics-vpc \
--ip-address 169.254.1.2 \
--mask-length 30 \
--vpn-tunnel on-prem-tunnel0 \
--region us-central1
Erstellen Sie in Cloud Shell den BGP-Peer:
gcloud compute routers add-bgp-peer on-prem-cr-us-central1 \
--peer-name bgp-analytics-vpc-tunnel0 \
--interface if-tunnel1-to-analytics-vpc \
--peer-ip-address 169.254.1.1 \
--peer-asn 65001 \
--region us-central1
Erstellen Sie in Cloud Shell die BGP-Schnittstelle:
gcloud compute routers add-interface on-prem-cr-us-central1 \
--interface-name if-tunnel1-to-analytics-vpc \
--ip-address 169.254.2.2 \
--mask-length 30 \
--vpn-tunnel on-prem-tunnel1 \
--region us-central1
Erstellen Sie in Cloud Shell den BGP-Peer:
gcloud compute routers add-bgp-peer on-prem-cr-us-central1 \
--peer-name bgp-analytics-vpc-tunnel1\
--interface if-tunnel2-to-analytics-vpc \
--peer-ip-address 169.254.2.1 \
--peer-asn 65001 \
--region us-central1
Rufen Sie Hybridkonnektivität → VPN auf, um die VPN-Tunneldetails aufzurufen.

Erkannte Routen von analytics-vpc über HA VPN validieren
Da die HA VPN-Tunnel und BGP-Sitzungen eingerichtet sind, werden Routen von on-prem-vpc von analytics-vpc erlernt. Rufen Sie in der Console VPC-Netzwerk → VPC-Netzwerke → analytics-vpc → ROUTEN → REGION → us-central1 → ANSEHEN auf.
Prüfen Sie, ob analytics-vpc Routen aus dem on-prem-vpc-Datenbanksubnetz database-subnet-us-central1 172.16.10.0/27 erlernt hat.

Prüfen, ob on-prem-vpc keine Routen über HA VPN erlernt hat
Die analytics-vpc hat kein Subnetz. Daher bewirbt der Cloud Router keine Subnetze gegenüber der on-prem-vpc. Rufen Sie in der Console VPC-Netzwerk → VPC-Netzwerke → on-prem-vpc → ROUTEN → REGION → us-central1 → ANSEHEN auf.

10. Looker-Subnetz lokal anbieten
Das PSA-Subnetz (Private Service Access) von Looker wird vom Cloud Router „analytics-cr-us-central1“ nicht automatisch beworben, da das Subnetz PSA und nicht dem VPC zugewiesen ist.
Sie müssen ein benutzerdefiniertes Route Advertisement von analytics-cr-central1 für das PSA-Subnetz 192.168.0.0/22 (psa-range-looker) erstellen, das in der lokalen Umgebung beworben und von Arbeitslasten für den Zugriff auf Looker verwendet wird.
Rufen Sie in der Konsole HYBRID CONNECTIVITY → CLOUD ROUTERS → analytics-cr-us-central1 auf und wählen Sie EDIT (BEARBEITEN) aus.
Wählen Sie im Abschnitt „Beworbene Routen“ die Option Benutzerdefinierte Routen erstellen aus, aktualisieren Sie die Felder anhand des Beispiels unten, wählen Sie FERTIG aus und klicken Sie dann auf SPEICHERN.

11. Prüfen, ob die on-prem-vpc das Looker-Subnetz erlernt hat
Die on-prem-vpc kann jetzt auf das Looker-PSA-Subnetz zugreifen, da es von analytics-cr-us-central1 als benutzerdefiniertes Route Advertisement beworben wurde.
Rufen Sie in der Console VPC‑NETZWERK → VPC‑NETZWERKE → on-prem-vpc → ROUTEN → REGION → us-central1 → ANSEHEN auf.
Sehen Sie sich die Looker-Routen an, die von der analytics-vpc beworben werden:

12. Aktuelles VPC-Peering validieren
Die Verbindung zwischen Looker Cloud Core und der Analytics-VPC erfolgt über VPC-Peering, das den Austausch von benutzerdefinierten Routen ermöglicht, die über BGP gelernt wurden. Im Tutorial muss die analytics-vpc die von der on-prem-vpc erkannten Routen in Looker veröffentlichen. Damit diese Funktion aktiviert werden kann, muss das VPC-Peering aktualisiert werden, um benutzerdefinierte Routen zu exportieren.
Aktuell importierte und exportierte Routen validieren
Rufen Sie VPC-NETZWERK → VPC-NETZWERK-PEERING → servicenetworking-googleapis-com auf.

Der Screenshot unten zeigt, dass „analytics-vpc“ den Bereich „psa-range-looker“ aus dem von Google verwalteten Peering-VPC-Netzwerk „servicesnetworking“ importiert.

Wenn Sie „EXPORTED ROUTES“ auswählen, werden keine Routen in das Peering-VPC-Netzwerk exportiert, da 1) keine Subnetze in „analytics-vpc“ konfiguriert sind und 2) „Benutzerdefinierte Routen exportieren“ nicht ausgewählt ist.

13. VPC-Peering aktualisieren
Rufen Sie VPC-NETZWERK → VPC-NETZWERK-PEERING → servicenetworking-googleapis-com → BEARBEITEN auf.
Wählen Sie BENUTZERDEFINIERTE ROUTEN EXPORTIEREN → SPEICHERN aus.

14. Aktualisiertes VPC-Peering validieren
Exportierte Routen validieren
Rufen Sie VPC-NETZWERK → VPC-NETZWERK-PEERING → servicenetworking-googleapis-com auf.
Wenn Sie „EXPORTED ROUTES“ (EXPORTIERTE ROUTEN) auswählen, sehen Sie, dass die Routen vom lokalen VPC-Netzwerk (Datenbanksubnetz 172.16.10.0/27) vom VPC-Netzwerk „analytics-vpc“ in das Peering-VPC-Netzwerk exportiert werden, in dem Looker gehostet wird.

15. Postgres-Datenbank in Looker erstellen
Im folgenden Abschnitt stellen Sie mit Cloud Shell eine SSH-Verbindung zur VM für die PostgreSQL-Datenbank her.
Führen Sie in Cloud Shell einen SSH-Befehl für die PostgreSQL-Datenbankinstanz aus.
gcloud compute ssh --zone "us-central1-a" "postgres-database" --project "$projectid"
Ermitteln Sie im Betriebssystem die IP-Adresse (ens4) der postgres-Datenbankinstanz und notieren Sie sie.
ip a
Beispiel:
user@postgres-database:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc mq state UP group default qlen 1000
link/ether 42:01:ac:10:0a:02 brd ff:ff:ff:ff:ff:ff
altname enp0s4
inet 172.16.10.2/32 metric 100 scope global dynamic ens4
valid_lft 84592sec preferred_lft 84592sec
inet6 fe80::4001:acff:fe10:a02/64 scope link
valid_lft forever preferred_lft forever
Melden Sie sich im Betriebssystem bei PostgreSQL an.
sudo -u postgres psql postgres
Geben Sie im Betriebssystem das Passwort ein.
\password postgres
Legen Sie im Betriebssystem das Passwort für Postgres fest (geben Sie das gleiche Passwort zweimal ein).
postgres
Beispiel:
user@postgres-database:~$ sudo -u postgres psql postgres
\password postgres
psql (13.11 (Debian 13.11-0+deb11u1))
Type "help" for help.
postgres=# \password postgres
Enter new password for user "postgres":
Enter it again:
Beenden Sie Postgres im Betriebssystem.
\q
Beispiel:
postgres=# \q
user@postgres-database:~$
Im folgenden Abschnitt fügen Sie die IP-Adresse Ihrer Postgres-Datenbankinstanz und das Looker Private Google Access-Subnetz (192.168.0.0/22) in die Datei „pg_hba.conf“ unter den lokalen IPv4-Verbindungen ein, wie im Screenshot unten dargestellt:

sudo nano /etc/postgresql/15/main/pg_hba.conf
Entfernen Sie im folgenden Abschnitt die Kommentarzeichen aus postgresql.conf, um gemäß dem Screenshot unten auf alle „*“-IP-Adressen zu warten:
sudo nano /etc/postgresql/15/main/postgresql.conf
Vorher:

Nachher:

Starten Sie den PostgreSQL-Dienst im Betriebssystem neu.
sudo service postgresql restart
Prüfen Sie im Betriebssystem, ob der PostgreSQL-Status „Aktiv“ lautet.
sudo service postgresql status
Beispiel:
Prüfen Sie im Betriebssystem, ob der PostgreSQL-Status „Aktiv“ lautet.
user@postgres-database$ sudo service postgresql status
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; preset: enabled)
Active: active (exited) since Sat 2023-07-01 23:40:59 UTC; 7s ago
Process: 4073 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 4073 (code=exited, status=0/SUCCESS)
CPU: 2ms
Jul 01 23:40:59 postgres-database systemd[1]: Starting postgresql.service - PostgreSQL RDBMS...
Jul 01 23:40:59 postgres-database systemd[1]: Finished postgresql.service - PostgreSQL RDBMS.
16. Postgres-Datenbank erstellen
Im folgenden Abschnitt erstellen Sie eine Postgres-Datenbank mit dem Namen „postgres_looker“ und das Schema „looker_schema“, mit denen die Verbindung von Looker zu lokalen Ressourcen validiert wird.
Melden Sie sich im Betriebssystem bei Postgres an.
sudo -u postgres psql postgres
Erstellen Sie die Datenbank im Betriebssystem.
create database postgres_looker;
Listen Sie die Datenbank im Betriebssystem auf.
\l
Erstellen Sie im Betriebssystem den Looker-Nutzer mit dem Looker-Passwort.
create user postgres_looker with password 'postgreslooker';
Stellen Sie im Betriebssystem eine Verbindung zur Datenbank her.
\c postgres_looker;
Erstellen Sie im Betriebssystem das Schema „looker-schema“ und beenden Sie es, um zur Cloud Shell-Eingabeaufforderung zurückzukehren.
create schema looker_schema;
create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
exit
Beispiel:
user@postgres-database$ sudo -u postgres psql postgres
psql (15.3 (Ubuntu 15.3-0ubuntu0.23.04.1))
Type "help" for help.
postgres=# create database postgres_looker;
CREATE DATABASE
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | ICU Locale | Locale Provider | Access privileges
-----------------+----------+----------+---------+---------+------------+-----------------+-----------------------
postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc |
postgres_looker | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc |
template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
(4 rows)
postgres=# create user postgres_looker with password 'postgreslooker';
CREATE ROLE
postgres=# \c postgres_looker;
You are now connected to database "postgres_looker" as user "postgres".
postgres_looker=# create schema looker_schema;
CREATE SCHEMA
postgres_looker=# create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
CREATE TABLE
postgres_looker=# exit
Beenden Sie das Betriebssystem, um zur Cloud Shell zurückzukehren.
\q
exit
17. Firewall in der on-prem-vpc erstellen
Im folgenden Abschnitt erstellen Sie eine Ingress-Firewall mit Logging, die die Kommunikation des Looker-Subnetzes mit der postgres-Datenbankinstanz zulässt.
Erstellen Sie in Cloud Shell die Firewall für on-prem-vpc.
gcloud compute --project=$projectid firewall-rules create looker-access-to-postgres --direction=INGRESS --priority=1000 --network=on-prem-vpc --action=ALLOW --rules=all --source-ranges=192.168.0.0/22 --enable-logging
18. Private DNS in der analytics-vpc erstellen
Looker wird zwar in einer von Google verwalteten VPC bereitgestellt, der Zugriff auf das private DNS der Analytics-VPC wird jedoch durch Peering mit Dienstnetzwerken unterstützt.
Im folgenden Abschnitt erstellen Sie eine private DNS-Zone in der analytics-vpc, die aus einem A-Eintrag des vollqualifizierten Domainnamens (postgres.analytics.com)) und der IP-Adresse der postgres-Datenbankinstanz besteht.
Erstellen Sie in Cloud Shell die private Zone „analytics.com“.
gcloud dns --project=$projectid managed-zones create gcp-private-zone --description="" --dns-name="analytics.com." --visibility="private" --networks="https://www.googleapis.com/compute/v1/projects/$projectid/global/networks/analytics-vpc"
Ermitteln Sie in Cloud Shell die IP-Adresse der postgres-database-Instanz.
gcloud compute instances describe postgres-database --zone=us-central1-a | grep networkIP:
Beispiel:
user@cloudshell$ gcloud compute instances describe postgres-database --zone=us-central1-a | grep networkIP:
networkIP: 172.16.10.2
Erstellen Sie in Cloud Shell den A-Eintrag und fügen Sie die zuvor ermittelte IP-Adresse hinzu.
gcloud dns --project=$projectid record-sets create postgres.analytics.com. --zone="gcp-private-zone" --type="A" --ttl="300" --rrdatas="your-postgres-database-ip"
Beispiel:
user@cloudshell$ gcloud dns --project=$projectid record-sets create postgres.analytics.com. --zone="gcp-private-zone" --type="A" --ttl="300" --rrdatas="172.16.10.2"
NAME: postgres.analytics.com.
TYPE: A
TTL: 300
DATA: 172.16.10.2
Stellen Sie in Cloud Shell eine Peering-Verbindung zwischen dem DNS-Suffix analytics.com und dem Dienstnetzwerk her, damit Looker auf die private Zone „analytics-vpc“ zugreifen kann.
gcloud services peered-dns-domains create looker-com --network=analytics-vpc --service=servicenetworking.googleapis.com --dns-suffix=analytics.com.
19. Looker in die Postgres-Datenbank einbinden
Im folgenden Abschnitt erstellen Sie mit der Cloud Console eine Datenbankverbindung zur lokalen Postgres-Datenbankinstanz.
Rufen Sie in der Cloud Console Looker auf und wählen Sie die URL Ihrer Instanz aus, um die Looker-Benutzeroberfläche zu öffnen.

Nach dem Start wird die Landingpage wie im Screenshot unten angezeigt.

Gehen Sie zu ADMINISTRATOR → DATENBANK → VERBINDUNGEN und wählen Sie VERBINDUNG HINZUFÜGEN aus.
Geben Sie die Verbindungsinformationen wie im Screenshot unten ein und wählen Sie VERBINDEN aus.

Die Verbindung wurde hergestellt

20. Looker-Verbindung validieren
Im folgenden Abschnitt erfahren Sie, wie Sie die Looker-Verbindung zur Postgres-Datenbank in der On-Prem-VPC mit der Looker-Aktion „test“ und TCPDUMP validieren.
Melden Sie sich in Cloud Shell bei der postgres-Datenbank an, wenn die Sitzung abgelaufen ist.
Führen Sie in Cloud Shell folgende Schritte aus:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
gcloud compute ssh --zone "us-central1-a" "postgres-database" --project "$projectid"
Erstellen Sie im Betriebssystem einen TCPDUMP-Filter mit dem PSA-Range-Looker-Subnetz 192.168.0.0/22.
sudo tcpdump -i any net 192.168.0.0/22 -nn
Rufen Sie die Datenverbindung auf: VERWALTUNG → DATENBANK → VERBINDUNGEN → Auswählen → Testen
Wenn „Test“ ausgewählt ist, stellt Looker eine Verbindung zur PostgreSQL-Datenbank her, wie unten dargestellt:

Kehren Sie zum Betriebssystemterminal zurück und prüfen Sie, ob TCPDUMP erkannt hat, dass der psc-range-Looker eine Verbindung zur lokalen postgres-Datenbankinstanz herstellt.
Fügen Sie einen Hinweis hinzu, dass alle IP-Adressen aus dem PSA-Bereich in Looker angezeigt werden.
user@postgres-database$ sudo tcpdump -i any net 192.168.0.0/22 -nn
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
00:16:55.121631 ens4 In IP 192.168.1.24.46892 > 172.16.10.2.5432: Flags [S], seq 2221858189, win 42600, options [mss 1366,sackOK,TS val 4045928414 ecr 0,nop,wscale 7], length 0
00:16:55.121683 ens4 Out IP 172.16.10.2.5432 > 192.168.1.24.46892: Flags [S.], seq 1464964586, ack 2221858190, win 64768, options [mss 1420,sackOK,TS val 368503074 ecr 4045928414,nop,wscale 7], length 0
21. Sicherheitsempfehlungen
Es gibt einige Sicherheitsempfehlungen und Best Practices für die Sicherung von Looker und der Postgres-Datenbank. Dazu gehören:
- Die Datenbank-Kontoberechtigungen müssen so streng wie möglich eingerichtet werden, müssen dabei aber noch alle benötigten Funktionen ausführen können.
- Daten, die zwischen dem Client und der Looker-Benutzeroberfläche sowie zwischen Looker und der Datenbank übertragen werden, werden mit TLS 1.2+ verschlüsselt.
- Ruhende Daten werden standardmäßig verschlüsselt. Kunden können auch CMEK für Looker-Instanzen ( https://cloud.google.com/looker/docs/looker-core-cmek) und für Postgres ( https://cloud.google.com/sql/docs/postgres/configure-cmek) nutzen.
- Looker-Zugriffssteuerung: Looker-Administratoren können steuern, was ein Prinzipal oder eine Gruppe von Nutzern in Looker sehen und tun kann, indem sie Inhalts-, Daten- und Funktionszugriff gewähren. Mit diesen Optionen können Looker-Administratoren bestimmte Rollen mit Modell- und Berechtigungssätzen definieren und eine detaillierte Zugriffssteuerung für Daten erstellen.
- Looker unterstützt sowohl Audit-Logs als auch Datenzugriffslogs, in denen erfasst wird, wer was wann und wo getan hat. Audit-Logs sind standardmäßig aktiviert, während Datenzugriffslogs explizit aktiviert werden müssen.
- Derzeit werden VPC-SC-Instanzen vom Typ „Enterprise“ und „Embed“ unterstützt, die nur mit privaten IP-Adressen konfiguriert sind.
22. Bereinigen
Löschen Sie die Looker Cloud Core-Instanz. Rufen Sie dazu Folgendes auf:
LOOKER → looker-tutorial → DELETE

Löschen Sie die Komponenten der Anleitung in Cloud Shell.
gcloud compute vpn-tunnels delete analytics-vpc-tunnel0 analytics-vpc-tunnel1 on-prem-tunnel0 on-prem-tunnel1 --region=us-central1 --quiet
gcloud compute vpn-gateways delete analytics-vpn-gw on-prem-vpn-gw --region=us-central1 --quiet
gcloud compute routers delete analytics-cr-us-central1 on-prem-cr-us-central1 on-prem-cr-us-central1-nat --region=us-central1 --quiet
gcloud compute instances delete postgres-database --zone=us-central1-a --quiet
gcloud compute networks subnets delete database-subnet-us-central1 --region=us-central1 --quiet
gcloud compute firewall-rules delete looker-access-to-postgres on-prem-ssh --quiet
gcloud dns record-sets delete postgres.analytics.com. --type=A --zone=gcp-private-zone
gcloud dns managed-zones delete gcp-private-zone
gcloud compute networks delete on-prem-vpc --quiet
gcloud compute addresses delete psa-range-looker --global --quiet
gcloud compute networks delete analytics-vpc --quiet
23. Glückwunsch
Sie haben die Looker-Verbindung über Hybrid Networking erfolgreich konfiguriert und validiert. Damit ist die Datenkommunikation zwischen lokalen und Multi-Cloud-Umgebungen möglich.
Außerdem konnten Sie die Verbindung von Looker Cloud Core zur Postgres-Datenbank mit dem Tool „Test“ von Looker Connect und TCPDUMP in der Postgres-Datenbankinstanz testen.
Cosmopup findet Tutorials toll!!

Weitere Informationen und Videos
- Die nächste Generation von Looker
- Sie möchten zur GCP migrieren? Das Wichtigste zuerst: VPCs
- Dynamisches Routing mit Cloud Router
Referenzdokumente
- Dokumentation zu Looker (Google Cloud Core)
- Looker-Instanz (Google Cloud Core) erstellen
- Private IP-Verbindung für Looker (Google Cloud Core) erstellen
- HA VPN zwischen Google Cloud-Netzwerken
- Network Address Translation mit Cloud NAT einrichten und verwalten
- Optionen für den Austausch dynamischer Routen