Verbindung zu Cloud SQL herstellen: öffentliche IP-Adressen und autorisierte Netzwerke

1. Einführung

Zuletzt aktualisiert: 04.05.2020

Verbindung herstellen

Es gibt viele Arten von Anwendungen und Frameworks. In diesem Codelab geht es darum, von überall aus eine Verbindung zu Cloud SQL herzustellen. Die Möglichkeit, eine Verbindung herzustellen, wird durch die explizite Autorisierung der zulässigen IP-Adressen aktiviert. Dies ist wohl die am wenigsten sichere Option für die Verbindung zu einer Cloud SQL-Datenbank, aber auch die einfachste einzurichtende und zu verwendende.

Manchmal ist dies in der Produktion erforderlich. Wenn Sie dies jedoch vermeiden können, sollten Sie sich für eine sicherere Alternative entscheiden, z. B. die Verwendung des Cloud SQL-Proxys. Diese Einrichtung eignet sich am besten für Entwicklung und Tests.

Umfang

Dieses Codelab ist sehr minimalistisch. Dabei geht es darum, die Grundlagen der Verbindung zu erläutern, ohne sich zu sehr mit der Anwendung selbst zu beschäftigen. Im Idealfall ist das Herstellen einer Verbindung zu Cloud SQL genauso einfach wie das Herstellen einer Verbindung zu einer anderen SQL-Datenbankinstanz. Sie sollten also in der Lage sein, die in diesem Codelab erstellten Elemente auf jede Produktionsanwendung anzuwenden.

Die Anleitung enthält sowohl eine Schritt-für-Schritt-Anleitung für die GCP Console als auch die entsprechenden gcloud-Befehle für die Verwendung in der CLI oder für die Automatisierung.

Die einzelnen Schritte sind:

  • Cloud SQL-Instanz erstellen (in dieser Anleitung wird Postgres verwendet, aber es funktioniert ähnlich für MySQL oder SQL Server) und bestimmte IP-Adressen autorisieren, die eine Verbindung zur Instanz herstellen dürfen

Voraussetzungen

  • Ein GCP-Konto, für das Sie Berechtigungen zum Aktivieren von APIs und Erstellen von Diensten haben
  • Der installierte Postgres-Client zum Überprüfen der Verbindung (oder der MySQL-Client, wenn Sie MySQL anstelle von Postgres verwenden möchten)

2. Cloud SQL-Instanz erstellen

Cloud SQL ist unser Angebot für verwaltete relationale Datenbanken. Es unterstützt MySQL, PostgreSQL und SQL Server. In diesem Codelab erstellen wir eine Postgres-Datenbank. Die Anleitung ist jedoch für alle drei ähnlich.

In der Console

Rufen Sie die Seite Cloud SQL auf und klicken Sie auf die Schaltfläche 241836b315e11bf5.png.

Wie bereits erwähnt, ist der Großteil dieses Codelabs für alle SQL-Varianten geeignet. Wählen Sie für dieses Codelab jedoch PostgreSQL aus.

  1. Instanz eine ID geben
  2. Wählen Sie eine Region in Ihrer Nähe aus.
  3. Geben Sie ein Passwort für den Standardnutzer ein. Der Nutzername ist der Standardname für die ausgewählte Datenbank, z. B. root für MySQL oder postgres für PostgreSQL.
  4. Scrollen Sie nach unten und klicken Sie auf show configuration options.
  5. Maximieren Sie den Abschnitt „Connectivity“.
  6. Prüfen Sie, ob Public IP aktiviert und Private IP deaktiviert ist.
  7. Klicken Sie auf die Schaltfläche 883b32ec2734de01.png.
  8. Rufen Sie die IP-Adresse ab, von der aus Sie die Verbindung herstellen. Am einfachsten ist es, in der Google Suche „Wie lautet meine IP-Adresse?“ einzugeben. In den Suchergebnissen wird dann Ihre öffentliche IP-Adresse angezeigt.
  1. Geben Sie die IP-Spezifikation in das Netzwerkfeld ein, geben Sie ihr bei Bedarf einen Namen und klicken Sie im Feld New Network auf „Fertig“.
  2. Scrollen Sie nach unten und klicken Sie auf „Erstellen“.

Es dauert in der Regel einige Minuten, bis die Instanz gestartet ist.

Klicken Sie nach der Erstellung der Instanz in der Liste darauf und kopieren Sie auf der Übersichtsseite unter der Überschrift Connect to this instance die dort aufgeführte public IP address. Sie ist erst verfügbar, wenn die Instanz vollständig erstellt wurde. Sie können aber schon vorher auf die Details klicken.

gcloud verwenden

Zuerst müssen Sie die IP-Adresse abrufen, die Sie für die Verbindung zur Cloud SQL-Instanz autorisieren möchten. Am einfachsten geht das, indem Sie einen Browser öffnen und nach „Wie lautet meine IP-Adresse?“ suchen. In den Suchergebnissen wird Ihre öffentliche IP-Adresse angezeigt. Wenn Sie keinen Browser öffnen können, können Sie ein Tool wie dig verwenden.

dig @resolver1.opendns.com ANY myip.opendns.com +short -4

Sie müssen eine Region für Ihre Cloud SQL-Instanz angeben, die sich in Ihrer Nähe befindet. Mit dem folgenden Befehl können Sie die Liste der Regionen aufrufen:

gcloud sql tiers list

Die einzelnen Stufen sind nur in bestimmten Regionen verfügbar. Für den gcloud-Teil der Anleitung erstellen wir nur eine Mikroinstanz. Die Regionen für diese Stufe können Sie also mit dem folgenden Befehl ermitteln (sofern grep installiert ist):

gcloud sql tiers list | grep db-f1-micro

Der Befehl zum Erstellen der Instanz selbst sieht dann so aus (vergessen Sie nicht, <AUTHORIZED_IP> durch die IP zu ersetzen, die Sie vom Browser oder von dig erhalten haben, <REGION> durch eine Region in Ihrer Nähe und ein Passwort für den Root-Nutzer „postgres“):

gcloud sql instances create sql-codelab-00 --database-version=POSTGRES_11 --tier=db-f1-micro --region=<REGION> --authorized-networks=<AUTHORIZED_IP> --root-password=<PASSWORD>

Die Ausführung dieses Befehls kann einige Minuten dauern.

Wenn dies abgeschlossen ist, wird in der CLI-Ausgabe die PRIMARY_ADDRESS der Instanz aufgeführt. Kopieren Sie sie für den nächsten Schritt.

3. Verbindung testen und abschließen

Um zu prüfen, ob die Instanz richtig eingerichtet wurde, können Sie auf dem Computer, dessen IP-Adresse Sie eingegeben haben, in der Befehlszeile Folgendes ausführen:

psql "host=<IP copied from previous step> port=5432 sslmode=disable user=postgres"

Geben Sie dann das Passwort des Standardnutzers an, das Sie beim Erstellen der Cloud SQL-Instanz eingerichtet haben.

Glückwunsch! Wenn alles gut gegangen ist, sollten Sie den Postgres-Prompt sehen und Befehle für Ihre Datenbank ausführen können.

Nächste Schritte

Hier finden Sie einige Codelabs:

Referenzdokumente