Looker-PSC-Zugriff von Süden auf Cloud SQL-PSC

1. Einführung

In diesem Codelab stellen Sie eine Downstream-Verbindung zu Cloud SQL her, die mit Private Service Connect als Dienstanbieter bereitgestellt wird.

Private Service Connect ist eine Funktion des Google Cloud-Netzwerks, mit der Nutzer privat aus ihrem VPC-Netzwerk auf verwaltete Dienste zugreifen können. Ebenso können Ersteller verwalteter Dienste diese Dienste in ihren eigenen separaten VPC-Netzwerken hosten und ihren Nutzern eine private Verbindung bieten. Wenn Sie beispielsweise Private Service Connect für den Zugriff auf Looker verwenden, sind Sie der Dienstnutzer und Google ist der Dienstersteller, wie in Abbildung 1 dargestellt.

145ea4672c3a3b14.png

Mit dem Downstreamzugriff, auch als umgekehrter PSC bezeichnet, kann der Nutzer einen veröffentlichten Dienst als Ersteller erstellen, um Looker Zugriff auf Endpunkte lokal, in einem VPC, auf verwaltete Dienste und auf das Internet zu gewähren. Südgerichtete Verbindungen können in jeder Region bereitgestellt werden, unabhängig davon, wo Looker PSC bereitgestellt wird, wie in Abbildung 2 hervorgehoben.

259493afd914f68b.png

Aufgaben in diesem Lab

  • Private Service Connect-Cloud SQL-Instanz-Producer-Dienst erstellen
  • Private Service Connect-Endpunkt in Looker als Dienstnutzer erstellen

Voraussetzungen

def88091b42bfe4d.png

2. Aufgaben

Sie richten eine Cloud SQL-PSC-Instanz ein, die als Dienstanbieter bereitgestellt und mit dem Looker-PSC als Dienstverbraucher verknüpft ist.

Mit den folgenden Aktionen wird der Zugriff auf den Producer-Dienst bestätigt:

  • PSC-Endpunkt in Looker erstellen, der mit dem Dienstanhang des Diensterstellers verknüpft ist
  • Mit der Looker Console eine Datenbankverbindung zu Cloud SQL PSC erstellen
  • Verbindung zum Cloud SQL-PSC testen, indem Sie sich authentifizieren und auf ein vordefiniertes Schema zugreifen

3. Codelab-Topologie

1e7035ea608d7d23.png

4. Einrichtung und Anforderungen

Einrichtung der Umgebung im eigenen Tempo

  1. Melden Sie sich in der Google Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes. Wenn Sie noch kein Gmail- oder Google Workspace-Konto haben, müssen Sie ein Konto erstellen.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Der Projektname ist der Anzeigename für die Teilnehmer dieses Projekts. Es ist ein Zeichenstring, der von Google APIs nicht verwendet wird. Sie können ihn jederzeit aktualisieren.
  • Die Projekt-ID ist für alle Google Cloud-Projekte eindeutig und kann nach der Festlegung nicht mehr geändert werden. In der Cloud Console wird automatisch ein eindeutiger String generiert. In der Regel spielt es keine Rolle, wie er lautet. In den meisten Codelabs müssen Sie auf Ihre Projekt-ID verweisen (normalerweise als PROJECT_ID gekennzeichnet). Wenn Ihnen die generierte ID nicht gefällt, können Sie eine andere zufällige generieren. Alternativ können Sie Ihr eigenes Konto ausprobieren und prüfen, ob es verfügbar ist. Sie kann nach diesem Schritt nicht mehr geändert werden und bleibt für die Dauer des Projekts bestehen.
  • Zur Information: Es gibt einen dritten Wert, die Projektnummer, die von einigen APIs verwendet wird. Weitere Informationen zu diesen drei Werten finden Sie in der Dokumentation.
  1. Als Nächstes müssen Sie in der Cloud Console die Abrechnung aktivieren, um Cloud-Ressourcen/-APIs verwenden zu können. Die Durchführung dieses Codelabs ist kostenlos oder kostet nur sehr wenig. Wenn Sie die Ressourcen herunterfahren möchten, um Kosten nach Abschluss dieser Anleitung zu vermeiden, können Sie die von Ihnen erstellten Ressourcen oder das Projekt löschen. Neuen Google Cloud-Nutzern steht das kostenlose Testprogramm mit einem Guthaben von 300$ zur Verfügung.

Cloud Shell starten

Sie können Google Cloud zwar per Fernzugriff von Ihrem Laptop aus nutzen, in diesem Codelab verwenden Sie jedoch Google Cloud Shell, eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird.

Klicken Sie in der Google Cloud Console rechts oben in der Symbolleiste auf das Cloud Shell-Symbol:

55efc1aaa7a4d3ad.png

Die Bereitstellung und Verbindung mit der Umgebung sollte nur wenige Minuten dauern. Wenn der Vorgang abgeschlossen ist, sollte in etwa Folgendes angezeigt werden:

7ffe5cbb04455448.png

Diese virtuelle Maschine verfügt über sämtliche Entwicklertools, die Sie benötigen. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft auf Google Cloud. Dadurch werden Netzwerkleistung und Authentifizierung erheblich verbessert. Alle Aufgaben in diesem Codelab können in einem Browser ausgeführt werden. Sie müssen nichts installieren.

5. Hinweis

APIs aktivieren

Prüfen Sie in Cloud Shell, ob Ihre Projekt-ID eingerichtet ist:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
echo $project
echo $region

Aktivieren Sie alle erforderlichen Dienste:

gcloud services enable compute.googleapis.com

6. Looker-PSC-Projekt identifizieren

Für das Erstellen einer Cloud SQL-PSC-Instanz müssen zulässige PSC-Projekte angegeben werden. Daher muss das Looker-PSC-Tenant-Projekt beim Erstellen der Cloud SQL-Instanz angegeben oder aktualisiert werden, wenn eine vorhandene Instanz verwendet wird.

Looker-PSC-Projekt mit gcloud ermitteln

Ersetzen Sie in Cloud Shell [INSTANCE_NAME] durch den Namen Ihrer Looker PSC-Instanz, um die Looker PSC-Projekt-ID abzurufen:

gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json | grep -i lookerServiceAttachmentUri

In der Beispielausgabe ist „t7ec792caf2a609d1-tp“ das Looker-PSC-Projekt:

gcloud looker instances describe looker-psc-instance --region=us-central1 --format=json | grep -i lookerServiceAttachmentUri
    "lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/us-central1/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",

Looker-PSC-Projekt mit der Cloud Console ermitteln

Rufen Sie in der Cloud Console Folgendes auf:

Looker → Looker PSC-Instanz

1367ec0136aa5ad6.png

7. Cloud SQL-Instanz für den Produzenten erstellen

Im folgenden Abschnitt erstellen Sie eine Cloud SQL-PSC-Instanz, die zu Testzwecken verwendet wird. Sie wird mit einem vordefinierten Passwort bereitgestellt, das das Looker-PSC-Projekt in der Liste der zulässigen PSC-Projekte angibt.

Cloud SQL-PSC erstellen

Erstellen Sie in Cloud Shell eine Instanz, aktivieren Sie Private Service Connect und aktualisieren Sie [INSTANCE_PROJECT] mit Ihrer Looker-PSC-Projekt-ID.

gcloud sql instances create cloud-sql-psc-demo \
--project=$project \
--region=$region \
--enable-private-service-connect \
--allowed-psc-projects=[INSTANCE_PROJECT] \
--availability-type=regional \
--no-assign-ip \
--cpu=2 --memory=4GB \
--database-version=MYSQL_8_0 \
--enable-bin-log \
--root-password=password123

Beispiel:

gcloud sql instances create cloud-sql-psc-demo \
--project=$project \
--region=$region \
--enable-private-service-connect \
--allowed-psc-projects=t7ec792caf2a609d1-tp \
--availability-type=regional \
--no-assign-ip \
--cpu=2 --memory=4GB \
--database-version=MYSQL_8_0 \
--enable-bin-log \
--root-password=password123

Cloud SQL-Dienstanhänge abrufen

Nachdem Sie eine Cloud SQL-Instanz mit aktiviertem Private Service Connect erstellt haben, rufen Sie den URI des Dienstanhangs ab. Dieser wird in einem späteren Schritt zum Erstellen des Private Service Connect-Endpunkts in Looker verwendet.

Führen Sie in Cloud Shell folgende Schritte aus:

gcloud sql instances describe [INSTANCE_NAME] --project=$project | grep -i pscServiceAttachmentLink

Beispielausgabe mit dem URI des Dienstanhangs:

projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155

gcloud sql instances describe cloud-sql-psc-demo --project=$project | grep -i pscServiceAttachmentLink:
pscServiceAttachmentLink: projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155

In der Cloud Console können Sie die Cloud SQL-PSC-Dienstanhänge abrufen:

Rufen Sie in der Cloud Console Folgendes auf:

SQL → SQL-Instanz → Verbindungen

18940483f646ed15.png

8. PSC-Endpunktverbindung in Looker herstellen

Im folgenden Abschnitt ordnen Sie den Cloud SQL-Produzentendienstanhang dem Looker Core-PSC mithilfe der Flags „–psc-service-attachment“ in Cloud Shell für eine einzelne Domain zu.

Erstellen Sie in Cloud Shell die PSC-Verknüpfung, indem Sie die folgenden Parameter an Ihre Umgebung anpassen:

  • INSTANCE_NAME: Der Name Ihrer Looker (Google Cloud Core)-Instanz.
  • DOMAIN_1: sql.database1.com
  • SERVICE_ATTACHMENT_1: URI, der bei der Beschreibung der Cloud SQL-PSC-Instanz erfasst wurde
  • REGION: Die Region, in der Ihre Looker (Google Cloud Core)-Instanz gehostet wird

Führen Sie in Cloud Shell folgende Schritte aus:

gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment  domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION

Beispiel:

gcloud looker instances update looker-psc-instance \
--psc-service-attachment  domain=sql.database1.com,attachment=projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155 \
--region=us-central1

Prüfen Sie in Cloud Shell, ob der Verbindungsstatus von „serviceAttachments“ „ACCEPTED“ ist. Ersetzen Sie INSTANCE_NAME durch den Namen Ihrer Looker-PSC-Instanz:

gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json

Beispiel:

gcloud looker instances describe looker-psc-instance --region=$region --format=json

Beispiel:

user@cloudshell$ gcloud looker instances describe looker-psc-instance --region=$region --format=json
{
  "adminSettings": {},
  "createTime": "2024-08-23T00:00:45.339063195Z",
  "customDomain": {
    "domain": "looker.cosmopup.com",
    "state": "AVAILABLE"
  },
  "encryptionConfig": {},
  "lookerVersion": "24.14.18",
  "name": "projects/project/locations/us-central1/instances/looker-psc-instance",
  "platformEdition": "LOOKER_CORE_ENTERPRISE_ANNUAL",
  "pscConfig": {
    "allowedVpcs": [
      "projects/project/global/networks/looker-psc-demo",
      "projects/project/global/networks/looker-shared-vpc"
    ],
    "lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/us-central1/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
    "serviceAttachments": [
      {
        "connectionStatus": "ACCEPTED",
        "localFqdn": "sql.database1.com",
        "targetServiceAttachmentUri": "projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155"
      }
    ]
  },
  "pscEnabled": true,
  "state": "ACTIVE",
  "updateTime": "2024-09-04T14:40:05.613026012Z"
}

PSC-Endpunkt in der Cloud Console prüfen

In der Cloud Console können Sie die PSC-Verbindung prüfen.

Rufen Sie in der Cloud Console Folgendes auf:

Looker → Looker-Instanz → Details

2d4684d722d31e4b.png

9fa909f826dec963.png

9. Looker-PSC in Cloud SQL-PSC einbinden

Im folgenden Abschnitt erstellen Sie mit der Looker Console eine Datenbankverbindung zur Cloud SQL-PSC-Instanz.

Gehen Sie zu ADMINISTRATION → 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 VERKNÜPFEN aus.

eb3ef74d3ae71f1a.png

Die Verbindung ist jetzt konfiguriert

29017202470ad81f.png

10. Looker-Konnektivität prüfen

Im folgenden Abschnitt erfahren Sie, wie Sie die Looker-Verbindung zur Cloud SQL-PSC-Instanz mit der Looker-Aktion „test“ prüfen.

Rufen Sie die Datenverbindung auf: ADMIN → DATABASE → CONNECTIONS → cloud-sql-psc-demo → Test.

Sobald „Test“ ausgewählt ist, stellt Looker wie unten dargestellt eine Verbindung zur Postgres-Datenbank her:

d9729caf9a61bfc2.png

Bereinigen

Lab-Komponenten über ein einzelnes Cloud Shell-Terminal löschen

gcloud sql instances delete cloud-sql-psc-demo -q

11. Glückwunsch

Sie haben die Verbindung zu Cloud SQL PSC mit der Looker Console und Private Service Connect erfolgreich konfiguriert und validiert.

Sie haben Cloud SQL-PSC-Instanzen als PSC-Endpunkt für den Dienstersteller und Looker erstellt, die eine Verbindung zum Dienstersteller ermöglichten.

Cosmopup findet Codelabs super!

c911c127bffdee57.jpeg

Was liegt als Nächstes an?

Sehen Sie sich einige dieser Codelabs an:

Weitere Lesematerialien und Videos

Referenzdokumente