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

1. Einführung

Zuletzt aktualisiert:04.05.2020

Über die Verbindung nachdenken

Es gibt viele Arten von Anwendungen und Frameworks. In diesem Codelab geht es darum, wie Sie von überall aus eine Verbindung zu Cloud SQL herstellen können. Um eine Verbindung herzustellen, werden die IP-Adressen autorisiert, die eine Verbindung explizit herstellen dürfen. Dies ist die wohl am wenigsten sichere Option für die Verbindung mit einer Cloud SQL-Datenbank, gleichzeitig aber auch am einfachsten einzurichten und zu verwenden.

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. den Cloud SQL-Proxy). Diese Konfiguration eignet sich am besten für Entwicklung und Tests.

Inhalt

Dieses Codelab ist sehr minimalistisch. Der Grundgedanke ist, Sie durch die Besonderheiten des Verbindungsstücks zu führen, ohne zu lange über die Anwendung selbst nachzudenken. Im Idealfall ist das Herstellen einer Verbindung zu Cloud SQL mit einer anderen Instanz einer SQL-Datenbank vergleichbar. Sie sollten also in der Lage sein, das, was Sie in diesem Codelab erstellt haben, auf jede Produktionsanwendung anzuwenden.

Sie enthält sowohl eine Einführung in die GCP Console als auch die Entsprechungen des gcloud-Befehls für die Verwendung mit der Befehlszeile oder Automatisierung.

Die einzelnen Schritte sind:

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

Voraussetzungen

  • Ein GCP-Konto, für das Sie die Berechtigungen zum Aktivieren von APIs und zum Erstellen von Diensten haben
  • Der installierte Postgres-Client, um die Verbindung zu überprüfen (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, aber die Anweisungen sind 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 größte Teil dieses Codelabs für alle SQL-Varianten allgemein, aber für dieses Codelab wählen Sie PostgreSQL.

  1. Instanz eine ID zuweisen
  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 Standardnutzer 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 das show configuration options.
  5. Abschnitt „Connectivity“ maximieren
  6. Vergewissern Sie sich, dass 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, bei Google nach „Wie lautet meine IP-Adresse“ zu suchen? und in den Suchergebnissen ist Ihre öffentliche IP-Adresse enthalten.
  1. Geben Sie die IP-Spezifikation in das Netzwerkfeld ein, vergeben Sie gegebenenfalls einen Namen und klicken Sie im Feld New Network auf Fertig.
  2. Scrollen Sie nach unten und klicken Sie auf „Erstellen“.

Es dauert normalerweise einige Minuten, bis die Instanz gestartet ist.

Nachdem die Instanz erstellt wurde, klicken Sie in der Liste darauf. 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, auch wenn Sie auf die Details klicken können, bevor die Instanz vollständig instanziiert ist.

gcloud verwenden

Zuerst müssen Sie die IP-Adresse abrufen, die Sie autorisieren möchten, um eine Verbindung zur Cloud SQL-Instanz herzustellen. Am einfachsten ist es, einen Browser zu öffnen und nach „Wie lautet meine IP-Adresse“ zu suchen? und die Suchergebnisse Ihre öffentliche IP-Adresse enthalten. Wenn Sie jedoch keinen Browser in der aktuellen Version öffnen können, können Sie ein Dienstprogramm 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 Ihrem Standort am nächsten liegt. Führen Sie folgenden Befehl aus, um die Liste der Regionen aufzurufen:

gcloud sql tiers list

Jede Stufe ist nur in bestimmten Regionen verfügbar. Für den gcloud-Teil der Anleitung erstellen wir nur eine Mikroinstanz. Sie können also die verfügbaren Regionen für diese Stufe ermitteln, indem Sie einen bestimmten Befehl ausführen (sofern grep installiert ist):

gcloud sql tiers list | grep db-f1-micro

Der Befehl zum Erstellen der Instanz sieht dann so aus. Vergessen Sie nicht, <AUTHORIZED_IP> durch die IP-Adresse des Browsers oder dig zu ersetzen, <REGION> durch die IP-Adresse 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>

Dies kann einige Minuten dauern.

Sobald der Vorgang abgeschlossen ist, wird in der Ausgabe in der Befehlszeile der PRIMARY_ADDRESS der Instanz aufgeführt. Kopieren Sie es für den nächsten Schritt.

3. Verbindung und Zusammenfassung testen

Wenn Sie prüfen möchten, ob die Instanz ordnungsgemäß eingerichtet wurde, können Sie auf dem Computer mit der von Ihnen eingegebenen IP-Adresse Folgendes über die Befehlszeile ausführen:

psql "host=<Aus vorherigem Schritt kopierte IP-Adresse> port=5432 sslmode=disable user=postgres"

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

Glückwunsch! Wenn alles gut gelaufen ist, sollten Sie die Postgres-Eingabeaufforderung haben und Befehle für Ihre Datenbank ausführen.

Was liegt als Nächstes an?

Sehen Sie sich einige dieser Codelabs an...

Referenzdokumente