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 Aufgaben zur Instanzverwaltung können auch über die Console 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: Für die Netzwerkverbindung werden sowohl eine öffentliche als auch eine private IP-Adresse verwendet. 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 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 einem eigenständigen VPC mit Hybridkonnektivität zu Multi-Cloud- und On-Premises-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.
Im Folgenden sind die wichtigsten Schritte der Anleitung aufgeführt.
- Eigenständige VPC in der Region „us-central1“ erstellen
- IP-Subnetz für den Zugriff auf private Dienste zuweisen
- Looker-Instanz in der eigenständigen VPC bereitstellen
- On-prem-VPC und Hybridnetzwerk erstellen
- Looker-IP-Bereich über BGP bewerben und validieren
- Looker- und PostgreSQL-Datenkommunikation integrieren und validieren
Abbildung 1
Lerninhalte
- VPC und zugehöriges Hybridnetzwerk erstellen
- So stellen Sie Looker in einem eigenständigen VPC-PC bereit
- On-Premises-VPC und zugehöriges Hybridnetzwerk erstellen
- 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 werden $-Variablen verwendet, um die Implementierung der gcloud-Konfiguration in Cloud Shell zu unterstützen.
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 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-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 in Cloud Shell den Cloud Router.
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, 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, also Rechtssubjekte, die Dienste anbieten, werden auch als Dienstersteller bezeichnet. Looker Cloud Core ist ein Dienstanbieter.
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-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 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 die Console-Seite möglicherweise aktualisieren, um zu prüfen, ob 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
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 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 die Console-Seite möglicherweise aktualisieren, um zu prüfen, ob 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 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 → INSTANCE 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 Ladebalken umgeben.
Nach dem Erstellen der Looker-Instanz 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 in der Looker-Benutzeroberfläche anmelden.
Gehen Sie in der Cloud Console zu APIS & DIENSTE → ANMELDEDATEN.
Wählen Sie Ihre OAuth 2.0-Client-ID aus und aktualisieren Sie die Instanz-URL (siehe Beispiel unten):
7. Looker-Zugriff prüfen
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 die Landingpage im 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 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 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-GW 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 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 der Region „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 der Region „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 Console zu HYBRIDKONNEKTIVITÄ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
Rufen Sie HYBRIDKONNEKTIVITÄT → VPN auf, um die VPN-Tunneldetails aufzurufen.
Erkannte „analytics-vpc“-Routen über HA VPN validieren
Da die HA VPN-Tunnel und BGP-Sitzungen eingerichtet sind, werden Routes von on-prem-vpc aus dem Analytics-VPC erlernt. 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 für die On-Premise-Umgebung 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 prüfen
Die Verbindung zwischen Looker Cloud Core und dem Analytics-VPC erfolgt über VPC-Peering, das den Austausch benutzerdefinierter Routen ermöglicht, die über BGP gelernt 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.
Prüfen Sie die aktuell importierten und exportierten Routen.
Gehen Sie zu VPC-NETZWERK → VPC-NETZWERK-PEERING → servicenetworking-googleapis-com.
Im folgenden Screenshot ist der Import des psa-range-lookers aus dem von Google verwalteten Peering-VPC-Netzwerk „servicesnetworking“ in das „analytics-vpc“ zu sehen.
Wenn Sie „EXPORTIERTE ROUTEN“ auswählen, werden keine Routen in das Peering-VPC-Netzwerk exportiert, da 1) Subnetze nicht im Analytics-VPC konfiguriert sind und 2) „Benutzerdefinierte Routen exportieren“ nicht ausgewählt ist.
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 prüfen
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. Looker-Postgres-Datenbank erstellen
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 Sie die IP-Adresse (ens4) der Postgres-Datenbankinstanz im Betriebssystem und notieren Sie sich diese.
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
Legen Sie im Betriebssystem das Passwort für postgres fest (zweimal dasselbe Passwort eingeben).
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 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 wie im Screenshot unten nach allen '*'-IP-Adressen zu überwachen:
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 Status von postgresql „aktiv“ ist.
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 eine Verbindung zur Datenbank her.
\c postgres_looker;
Erstellen Sie im Betriebssystem das Schema „looker-schema“ und kehren Sie zum Cloud Shell-Prompt zurück.
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 zu Cloud Shell zurückzukehren.
\q
exit
17. Firewall in on-prem-vpc erstellen
Erstellen Sie im folgenden Abschnitt eine Ingress-Firewall mit Protokollierung, die die Kommunikation des Looker-Subnetzes mit der Postgres-Datenbankinstanz zulässt.
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 der 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 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 mit dem DNS-Suffix analytics.com her. So erhält Looker 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 Einführung wird die Landingpage wie im Screenshot unten angezeigt.
Gehen Sie zu ADMIN → DATABASE → CONNECTIONS (ADMIN → DATABASE → CONNECTIONS) und wählen Sie ADD CONNECTION (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 Looker-Verbindung zur postgres-Datenbank im lokalen VPC-PC mithilfe der Looker-Aktion „test“ und TCPDUMP prüfen.
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 über das 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 Betriebssystem-Terminal zurück und prüfen Sie, ob TCPDUMP erkannt hat, dass psc-range-looker eine Verbindung zur lokalen PostgreSQL-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.
- Ruhedaten werden standardmäßig verschlüsselt. Kunden können 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 festlegen, was ein Prinzipal 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, 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 von VPC-SC nur Enterprise- und eingebettete Instanzen unterstützt, 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 dem „Test“-Tool von Looker Connect und TCPDUMP in der Instanz „postgres-database“ erfolgreich testen.
Cosmopup findet Tutorials super!
Weitere Lesematerialien und Videos
- Die nächste Stufe von Looker
- Sie migrieren zur GCP? 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