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 Instanzverwaltungsaufgaben können auch über die Console ausgeführt werden.
Es gibt drei verfügbare Netzwerkkonfigurationen für Instanzen von Looker (Google Cloud Core):
- Ö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: Netzwerkverbindung verwendet sowohl eine öffentliche IP-Adresse als auch eine private IP-Adresse, wobei eingehender Traffic über öffentliche IP-Adressen und ausgehender Traffic über private IP-Adressen geleitet wird.
In dieser Anleitung stellen Sie ein umfassendes privates Netzwerk bereit, das die Looker-Verbindung zu einem lokalen VPC-Netzwerk über HA VPN unterstützt, das repliziert werden kann, um Ihre Anforderungen an Multi-Cloud- und lokale Verbindungen zu erfüllen.
Looker (Google Cloud Core) unterstützt private IP-Adressen für Instanzen, die die folgenden Kriterien erfüllen:
- Die Instanzversionen müssen Enterprise oder Embed sein.
Inhalt
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. Für Ihre Bereitstellung würde der On-Prem-vpc nicht vorhanden sein, sondern ein hybrides Netzwerk mit Ihrem lokalen Rechenzentrum oder Ihrem Cloud-Anbieter.
Nachfolgend sind die wichtigsten Schritte der Anleitung aufgeführt.
- Eigenständige VPC in us-central1 erstellen
- IP-Subnetz dem privaten Dienstzugriff zuweisen
- Looker-Instanz in der eigenständigen VPC bereitstellen
- Lokales VPC-Netzwerk und Hybridnetzwerk erstellen
- Looker-IP-Bereich über BGP bewerben und validieren
- Looker- und Postgresql-Datenkommunikation integrieren und validieren
Figure1
Lerninhalte
- VPC und zugehöriges Hybridnetzwerk erstellen
- So stellen Sie Looker in einem eigenständigen VPC-PC bereit
- So erstellen Sie einen lokalen VPC-Server und ein zugehöriges Hybridnetzwerk
- On-Prem-VPC mit analytics-vps über HA VPN verbinden
- Looker-Subnetze über Hybridnetzwerke bewerben
- Hybrid-Netzwerkinfrastruktur überwachen
- Postgresql-Datenbank in Looker Cloud Core einbinden
Voraussetzungen
- Google Cloud-Projekt
IAM-Berechtigungen
2. Hinweis
Projekt zur Unterstützung der Anleitung aktualisieren
In dieser Anleitung wird mithilfe von $variables die Implementierung der gcloud-Konfiguration in Cloud Shell unterstützt.
Führen Sie in Cloud Shell die folgenden Schritte aus:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
3. VPC-Einrichtung
analytics-vpc erstellen
Führen Sie in Cloud Shell die folgenden Schritte aus:
gcloud compute networks create analytics-vpc --project=$projectid --subnet-mode=custom
On-prem-vpc erstellen
Führen Sie in Cloud Shell die folgenden Schritte aus:
gcloud compute networks create on-prem-vpc --project=$projectid --subnet-mode=custom
Postgresql-Datenbanksubnetz erstellen
Führen Sie in Cloud Shell die folgenden 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
In der Anleitung wird Cloud NAT 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
Datenbanktestinstanz erstellen
Erstellen Sie eine postgres-Datenbankinstanz, die zum Testen und Validieren der Konnektivität 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, müssen Sie eine Firewallregel erstellen, die:
- Gilt für alle VM-Instanzen, die mit 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.
Von 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 Dritten. Google oder der Drittanbieter, also Rechtssubjekte, die Dienste anbieten, werden auch als Dienstersteller bezeichnet. Looker Cloud Core ist ein Dienstersteller.
Die private Verbindung ermöglicht VM-Instanzen in Ihrem VPC-Netzwerk und die Dienste, auf die Sie ausschließlich über interne IP-Adressen zugreifen.
Wenn Sie den Zugriff auf private Dienste nutzen möchten, müssen Sie einen IP-Adressbereich (CIDR-Block) in Ihrem VPC-Netzwerk zuweisen und dann 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-Adresskonflikt 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 zulässig.
Die Verwendung von IPv6-Adressbereichen mit dem Zugriff auf private Dienste wird nicht unterstützt.
Aktivieren Sie in der Google Cloud Console die Service Networking API für Ihr Projekt. Wenn Sie die API aktivieren, müssen Sie möglicherweise die Konsolenseite aktualisieren, um zu bestätigen, dass die API aktiviert wurde.
IP-Zuweisung erstellen
Verwenden Sie die Flags „Adressen“ und „Präfixlänge“, um einen Adressbereich und eine Präfixlänge (Subnetzmaske) anzugeben. Wenn Sie beispielsweise den CIDR-Block 192.168.0.0/22 zuweisen 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
Eine private Verbindung erstellen
Nachdem Sie einen zugewiesenen Bereich erstellt haben, können Sie eine private Verbindung zu einem Dienstersteller Looker Cloud Core erstellen. Die private Verbindung stellt eine VPC-Netzwerk-Peering-Verbindung zwischen Ihrem VPC-Netzwerk und dem Netzwerk des Diensterstellers her, sobald die Looker-Instanz eingerichtet ist.
Private Verbindungen sind eine 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 dann OPERATION_NAME durch den im vorherigen Schritt generierten Namen.
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 (Google Cloud Core)-Instanz erstellen
Hinweis
Aktivieren Sie in der Google Cloud Console die Looker API für Ihr Projekt. Wenn Sie die API aktivieren, müssen Sie möglicherweise die Konsolenseite aktualisieren, um zu bestätigen, dass die API aktiviert wurde.
Richten Sie einen OAuth-Client für die Authentifizierung und den Zugriff auf die Instanz ein.
Im folgenden Abschnitt müssen Sie die OAuth-Client-ID und den geheimen Clientschlüssel verwenden, um die Looker-Instanz zu erstellen.
Autorisierte JavaScript-Quellen und Weiterleitungs-URIs sind nicht erforderlich.
Erstellen Sie in der Cloud Console anhand der bereitgestellten Screenshots eine Instanz.
Gehen Sie zu LOOKER → INSTANZ ERSTELLEN.
Fülle die zuvor erstellte OAuth-Client-ID und das erstellte OAuth-Client-Secret aus.
Wähle ERSTELLEN aus.
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 sich die Aktivitäten zur Instanzerstellung auch ansehen, indem Sie im Menü der Google Cloud Console auf das Benachrichtigungssymbol klicken. Während die Instanz erstellt wird, ist das Benachrichtigungssymbol im Menü der Google Cloud Console von einem Ladesymbol umgeben.
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 die zuvor erstellte OAuth-Client-ID Autorisierter Weiterleitungs-URI aktualisieren, indem Sie /oauth2callback
an die Instanz-URL anhängen.
Anschließend können Sie sich mit der Instanz-URL bei der Looker-Benutzeroberfläche anmelden.
Rufen Sie in der Cloud Console APIs und DIENSTE → ANMELDEDATEN
Wählen Sie Ihre OAuth 2.0-Client-ID aus und aktualisieren Sie die Instanz-URL (siehe Beispiel unten):
7. Looker-Zugriff validieren
Rufen Sie in der Cloud Console Looker auf und wählen Sie die Instanz-URL aus, mit der die Looker-Benutzeroberfläche geöffnet werden soll.
Nach der Einführung wird gemäß dem folgenden Screenshot die Landingpage angezeigt, mit 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 Ihrem Peer-Netzwerk mithilfe des Border Gateway Protocol (BGP) dynamisch austauschen können.
Cloud Router kann eine BGP-Sitzung über einen Cloud VPN-Tunnel einrichten, um Ihre Netzwerke zu verbinden. Er erkennt automatisch neue Subnetz-IP-Adressbereiche und kündigt sie Ihrem Peer-Netzwerk an.
In dieser Anleitung stellen Sie ein HA VPN zwischen dem analytics-vpc und dem on-prem-vpc bereit, um die private Verbindung zu Looker zu veranschaulichen.
HA VPN-GW für analytics-vpc erstellen
Beim Erstellen eines 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 in Cloud Shell das HA VPN-GW
gcloud compute vpn-gateways create analytics-vpn-gw \
--network=analytics-vpc\
--region=us-central1
HA VPN-GW für on-prem-vpc erstellen
Beim Erstellen eines 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 in Cloud Shell das HA VPN-GW.
gcloud compute vpn-gateways create on-prem-vpn-gw \
--network=on-prem-vpc\
--region=us-central1
HA VPN-GW-Erstellung validieren
Gehen Sie in der Console zu HYBRID-KONNEKTIVITÄT → VPN → CLOUD VPN GATEWAYS.
Cloud Router für 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-Tunnel erstellen0
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 erstellen1
Erstellen Sie in Cloud Shell "tunnel1":
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-Tunnel erstellen0
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 erstellen1
Erstellen Sie in Cloud Shell "tunnel1":
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
VPN-Tunnelerstellung validieren
Gehen Sie in der Konsole zu HYBRID-KONNEKTIVITÄT → VPN → CLOUD VPN-TUNNELS.
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
Gehen Sie zu Hybridkonnektivität → VPN, um die Details zum VPN-Tunnel aufzurufen.
Erkannte „analytics-vpc“-Routen über HA VPN validieren
Da die HA VPN-Tunnel und BGP-Sitzungen eingerichtet sind, werden Routen von "on-prem-vpc" vom "analytics-vpc" erkannt. Gehen Sie in der Console zu VPC-Netzwerk → VPC-Netzwerke → analytics-vpc → ROUTES → REGION → us-central1 → VIEW.
Sehen Sie sich an, ob „analytics-vpc“ Routen aus „on-prem-vpc database-subnet-us-central1 172.16.10.0/27“ erkannt hat.
Prüfen, ob „on-prem-vpc“ Routen über HA VPN nicht erkannt hat
Der analytics-vpc hat kein Subnetz. Daher bewirbt der Cloud Router dem "on-prem-vpc" keine Subnetze. Gehen Sie in der Console zu VPC-Netzwerk → VPC-Netzwerke → On-prem-vpc → ROUTES → REGION → us-central1 → VIEW.
10. Looker-Subnetz lokal anbieten
Das Subnetz des privaten Dienstzugriffs (PSA) von Looker wird nicht automatisch vom Cloud Router analytics-cr-us-central1 beworben, da das Subnetz nicht der VPC, sondern einem PSA zugewiesen ist.
Sie müssen ein benutzerdefiniertes Route Advertising aus der Analyse-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.
Gehen Sie in der Console zu HYBRID-KONNEKTIVITÄT → CLOUD-ROUTER → analytics-cr-us-central1 und wählen Sie BEARBEITEN aus.
Wählen Sie im Abschnitt „Beworbene Routen“ die Option Benutzerdefinierte Routen erstellen aus und aktualisieren Sie die Felder anhand des Beispiels unten, wählen Sie FERTIG aus und klicken Sie dann auf SPEICHERN.
11. Prüfen, ob der On-Prem-vpc das Looker-Subnetz erkannt hat
Der On-Prem-vpc kann jetzt auf das PSA-Subnetz von Looker zugreifen, da es von analytics-cr-us-central1 als benutzerdefiniertes Route Advertising beworben wurde.
Gehen Sie in der Console zu VPC NETWORK → VPC NETWORKS → on-prem-vpc → ROUTES → REGION → us-central1 → VIEW.
Beobachten Sie die vom analytics-vpc beworbenen Looker-Routen:
12. Aktuelles VPC-Peering validieren
Die Verbindung zwischen Looker Cloud Core und dem analytics-vpc erfolgt über VPC-Peering, das den Austausch von benutzerdefinierten Routen ermöglicht, die über BGP ermittelt wurden. In diesem Tutorial muss der „analytics-vpc“ die vom lokalen VPC erlernten Routen in Looker veröffentlichen. Zum Aktivieren dieser Funktion ist für das VPC-Peering eine Aktualisierung zum Exportieren benutzerdefinierter Routen erforderlich.
Validieren Sie aktuell importierte und exportierte Routen.
Gehen Sie zu VPC-NETZWERK → VPC-NETZWERK-PEERING → servicenetworking-googleapis-com.
Im Screenshot unten sehen Sie Details zum „analytics-vpc“, das den PSA-Bereich Looker aus dem von Google verwalteten Peering-VPC-Netzwerk, „servicesnetworking“, importiert.
Wählen Sie EXPORTIERTE ROUTES-Rückläufe aus, die keine Routen in das Peering-VPC-Netzwerk exportiert haben, da 1) Subnetze nicht in analytics-vpc konfiguriert sind. 2) Benutzerdefinierte Routen exportieren ist nicht ausgewählt
13. VPC-Peering aktualisieren
Gehen Sie zu VPC-NETZWERK → VPC-NETZWERK-PEERING → servicenetworking-googleapis-com → BEARBEITEN.
Wählen Sie BENUTZERDEFINIERTE ROUTES EXPORTIEREN → SPEICHERN aus.
14. Aktualisiertes VPC-Peering validieren
Exportierte Routen validieren.
Gehen Sie zu VPC-NETZWERK → VPC-NETZWERK-PEERING → servicenetworking-googleapis-com.
Durch die Auswahl von EXPORTIERTEN ROUTES wird gezeigt, dass die lokalen VPC-Routen (Datenbanksubnetz 172.16.10.0/27) in das Peering-VPC-Netzwerk exportiert werden, das Looker vom analytics-vpc hostet.
15. Erstellung der Looker-Postgres-Datenbank
Im folgenden Abschnitt führen Sie mit Cloud Shell eine SSH-Verbindung zur VM „postgres-database“ aus.
Führen Sie in Cloud Shell eine SSH-Verbindung zur Instanz "postgres-database" aus.**
gcloud compute ssh --zone "us-central1-a" "postgres-database" --project "$projectid"
Ermitteln und notieren Sie die IP-Adresse (ens4) der postgres-Datenbankinstanz im Betriebssystem.
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 die Passwort-Eingabeaufforderung ein.
\password postgres
Stellen Sie im Betriebssystem das Passwort auf „postgres“ ein, d. h. 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 im Betriebssystem Postgres.
\q
Beispiel:
postgres=# \q
user@postgres-database:~$
Im folgenden Abschnitt fügen Sie die IP-Adresse der postgres-Datenbank-Instanz und das private Google-Zugriffs-Subnetz von Looker (192.168.0.0/22) in die Datei pg_hba.conf unter den lokalen IPv4-Verbindungen wie im Screenshot unten ein:
sudo nano /etc/postgresql/15/main/pg_hba.conf
Entfernen Sie im folgenden Abschnitt die Kommentarzeichen von postgresql.conf, um alle '*' zu überwachen IP-Adressen gemäß dem folgenden Screenshot:
sudo nano /etc/postgresql/15/main/postgresql.conf
Vorher:
Nachher:
Starten Sie den postgresql-Dienst im Betriebssystem neu.
sudo service postgresql restart
Überprüfen Sie im Betriebssystem den Postgresql-Status als aktiv.
sudo service postgresql status
Beispiel:
Überprüfen Sie im Betriebssystem den Postgresql-Status als aktiv.
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 dem Looker zur lokalen Verbindung 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
Im Betriebssystem mit Passwort-Looker die Benutzer-Looker erstellen
create user postgres_looker with password 'postgreslooker';
Stellen Sie im Betriebssystem eine Verbindung zur Datenbank her.
\c postgres_looker;
Erstellen Sie im Betriebssystem das Looker-Schema für das Looker-Schema und verlassen Sie die Cloud Shell-Eingabeaufforderung.
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 und kehren Sie zu Cloud Shell zurück.
\q
exit
17. Firewall im lokalen VPC-Netzwerk erstellen
Erstellen Sie im folgenden Abschnitt eine Ingress-Firewall mit Logging, die dem Looker-Subnetz die Kommunikation mit der postgres-Datenbankinstanz ermöglicht.
Erstellen Sie in Cloud Shell die Firewall "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. Privates DNS in analytics-vpc erstellen
Obwohl Looker in einer von Google verwalteten VPC bereitgestellt wird, wird der Zugriff auf das private DNS analytics-vpc über das Peering mit Diensten unterstützt.
Im folgenden Abschnitt erstellen Sie eine private DNS-Zone im analytics-vpc, die aus einem A-Eintrag der postgres-Datenbankinstanz mit vollem qualifizierten Domainnamen (postgres.analytics.com)
und IP-Adresse) 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 Instanz "postgres-database".
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 identifizierte 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
Rufen Sie in Cloud Shell das Peer-DNS-Suffix analytics.com auf. und ermöglicht Looker den Zugriff auf die private Zone analytics-vpc.
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 „postgres“ einbinden
Im folgenden Abschnitt verwenden Sie die Cloud Console, um eine Datenbankverbindung zur lokalen postgres-database-Instanz zu erstellen.
Rufen Sie in der Cloud Console Looker auf und wählen Sie die Instanz-URL aus, mit der die Looker-Benutzeroberfläche geöffnet werden soll.
Nach der Aktivierung wird die Landingpage (siehe Screenshot unten) angezeigt.
Gehen Sie zu VERWALTUNG → DATENBANK → VERBINDUNGEN → Wählen Sie VERBINDUNG HINZUFÜGEN aus.
Geben Sie die Verbindungsdetails wie im Screenshot unten ein und wählen Sie VERBINDEN aus.
Die Verbindung ist jetzt hergestellt
20. Looker-Konnektivität validieren
Im folgenden Abschnitt erfahren Sie, wie Sie die Konnektivität von Looker zur postgres-Datenbank im lokalen VPC-Netzwerk mithilfe des Looker-„Test“-Tools validieren. Aktion und TCPDUMP.
Melden Sie sich über Cloud Shell bei der postgres-Datenbank an, wenn das Zeitlimit der Sitzung überschritten wurde.
Führen Sie in Cloud Shell die folgenden 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
Gehen Sie zur Datenverbindung VERWALTUNG → DATENBANK → VERBINDUNGEN → Auswählen → Testen.
Nachdem „Test“ ausgewählt wurde, stellt Looker wie unten angegeben eine Verbindung zur postgres-Datenbank her:
Kehren Sie zum Terminal des Betriebssystems zurück und prüfen Sie, ob TCPDUMP erkannt hat, dass psc-range-looker eine Verbindung zur lokalen Postgres-Datenbankinstanz herstellt.
Fügen Sie einen Hinweis hinzu, dass jede IP-Adresse aus dem PSA-Bereich von Looker angezeigt wird
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
Im Zusammenhang mit dem Schutz von Looker und der Postgres-Datenbank gibt es wenige Sicherheitsempfehlungen und Best Practices. Dazu gehören:
- Richten Sie Datenbankkontoberechtigungen mit den geringsten Berechtigungen für Looker ein, damit Looker noch alle erforderlichen Funktionen ausführen kann.
- Daten bei der Übertragung zwischen Client und Looker-Benutzeroberfläche und Looker zur Datenbank werden mit TLS 1.2+ verschlüsselt.
- Inaktive Daten sind standardmäßig verschlüsselt. Kunden können einen CMEK auch 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) verwenden.
- Looker-Zugriffssteuerung: Looker-Administratoren können steuern, was ein Prinzip oder eine Gruppe von Nutzern in Looker sehen und tun kann, indem sie Zugriff auf Inhalte, Daten und Funktionen gewähren. Mit diesen Optionen kann der Looker-Administrator bestimmte Rollen definieren, einschließlich Modell und Berechtigungssatz, und eine detaillierte Zugriffssteuerung für Daten erstellen.
- Looker unterstützt sowohl Audit-Logs als auch Datenzugriffs-Logs, mit 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 unterstützt VPC-SC Enterprise- und Embed-Instanzen, die nur mit privaten IP-Adressen konfiguriert sind
22. Bereinigen
Löschen Sie die Looker Cloud Core-Instanz. Gehen Sie dazu zu:
LOOKER → Looker-Tutorial → DELETE
Löschen Sie in Cloud Shell die Komponenten der Anleitung.
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
Herzlichen Glückwunsch! Sie haben die Looker-Konnektivität über ein Hybridnetzwerk erfolgreich konfiguriert und validiert, um eine Datenkommunikation in lokalen und Multi-Cloud-Umgebungen zu ermöglichen.
Außerdem konnten Sie die Konnektivität von Looker Cloud Core zur Postgres-Datenbank mit „Test“ von Looker Connect testen. und TCPDUMP in der Instanz "postgres-database".
Cosmopup findet die Anleitungen super!
Weitere Informationen und Videos
- Die nächste Weiterentwicklung von Looker
- 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 NA einrichten und verwalten
- Optionen zum Austauschen dynamischer Routen