Auf dieser Seite wird die Konnektivität zu Datenbanken beschrieben, die von AlloyDB for PostgreSQL bereitgestellt werden. Weitere Informationen finden Sie unter Verbindung zu AlloyDB herstellen.
Netzwerk: AlloyDB-Instanzen verwenden öffentliche oder private IP-Adressen in einer Virtual Private Cloud (VPC). Verschiedene Techniken ermöglichen sichere Verbindungen von Anwendungen, die außerhalb der VPC ausgeführt werden.
Autorisierung: Mit dem AlloyDB Auth-Proxy können Sie Identity and Access Management (IAM) verwenden, um zu steuern, wer Zugriff auf Ihre Daten hat. Mit der Firewall Ihrer VPC können Sie den Zugriff auf AlloyDB-Ressourcen weiter optimieren.
Authentifizierung:Verwenden Sie die Standardtechniken zur PostgreSQL-Nutzerauthentifizierung, um sich in Ihren Instanzen anzumelden. AlloyDB unterstützt auch die IAM-basierte Authentifizierung mit Standard-PostgreSQL-Nutzerrollen.
Pooling:Verwenden Sie das standardmäßige clientseitige Verbindungs-Pooling von PostgreSQL und das serverseitige verwaltete Verbindungs-Pooling, um Zuverlässigkeit, Leistung und Skalierbarkeit zu verbessern.
Netzwerk
Obwohl eine AlloyDB-Instanz viele Knoten enthält, stellen Ihre Anwendungen über eine einzelne statische IP-Adresse eine Verbindung zu einer Instanz her. Diese Adresse kann entweder eine private IP-Adresse für die VPC sein, die Sie beim ersten Einrichten des Clusters einer Instanz angeben, oder eine öffentliche IP-Adresse, die direkte Verbindungen von außerhalb der VPC ermöglicht.
Private IP-Adresse
Wenn Sie AlloyDB mit einer privaten IP-Adresse konfigurieren, erhält Ihre Instanz eine private IP-Adresse in Ihrer VPC.
Private IP-Adressen wirken sich auf zwei Arten auf Verbindungen zu Ihrer Anwendung aus:
Anwendungen, die an anderer Stelle in der VPC Ihres Projekts ausgeführt werden, können ohne zusätzliche Schritte oder Ressourcen eine Verbindung zur Instanz oder zu einem Proxy herstellen, der die Instanz darstellt.
Unter psql-Client mit einer Instanz verbinden wird beispielsweise gezeigt, wie Sie eine Verbindung zu Ihrer AlloyDB-Instanz herstellen, indem Sie das
psqlBefehlszeilenprogramm auf einer Compute Engine-VM in Ihrer VPC ausführen.Anwendungen, die außerhalb der VPC ausgeführt werden, benötigen einen Vermittlungsdienst, um eine Verbindung zur AlloyDB-Instanz herzustellen. Zu den Lösungen gehören das Ausführen von Proxydiensten auf einer VM in der VPC der Instanz oder die Verwendung anderer Google Cloud Produkte, um eine dauerhafte Verbindung zwischen Ihrer Anwendung und Ihrer VPC herzustellen.
Weitere Informationen finden Sie unter Verbindung zu einem Cluster von außerhalb seiner VPC herstellen.
Verbindungen über private IP-Adressen bieten in der Regel eine geringere Latenz und eingeschränkte Angriffsvektoren, da sie keine Übertragung über das Internet erfordern.
Weitere Informationen zu privaten IP-Adressen in AlloyDB finden Sie unter Übersicht über private IP-Adressen.
Öffentliche IP-Adresse
Wenn Sie AlloyDB mit einer öffentlichen IP-Adresse konfigurieren, erhält Ihre Instanz eine öffentliche IP-Adresse für eingehende Verbindungen, die über das öffentliche Internet zugänglich ist. Optional können Sie autorisierte externe Netzwerke verwenden, um einen Bereich von IP-Adressen im CIDR-Format anzugeben, die auf Ihre Instanz zugreifen können.
Wir empfehlen, öffentliche IP-Adressen mit AlloyDB-Sprach-Connectors zu verwenden, um sichere Verbindungen zwischen dem Client und Ihrer Instanz zu gewährleisten.
Weitere Informationen zum Hinzufügen einer öffentlichen IP-Adresse und autorisierter externer Netzwerke zu Ihrer Instanz finden Sie unter Verbindung über öffentliche IP-Adresse herstellen.
AlloyDB unterstützt auch ausgehende Verbindungen von Ihrer Instanz zum öffentlichen Internet. Wenn Sie die ausgehende öffentliche IP-Adresse aktivieren, stellt AlloyDB eine konsistente und vorhersehbare Quell-IP-Adresse für Traffic bereit, der Ihre AlloyDB-Instanz in Richtung öffentliches Internet verlässt. Wenn Sie diese Funktion aktivieren, stellt AlloyDB ein Paar statischer öffentlicher IP-Adressen bereit, die ausschließlich für ausgehende Verbindungen von Ihrer Instanz verwendet werden.
Ausgehende Verbindungen sind in den folgenden Szenarien besonders nützlich:
Datenmigration: Wenn Sie Ihre Daten mit dem Database Migration Service (DMS) aus einer externen Datenbank zu AlloyDB migrieren, können Sie die Firewall der externen Datenbank so konfigurieren, dass Verbindungen von den spezifischen ausgehenden IP-Adressen Ihrer AlloyDB-Instanz zugelassen werden. So wird ein sicherer Datenübertragungspfad gewährleistet.
Foreign Data Wrappers: Wenn Sie Daten aus einer externen Datenbank in AlloyDB mit Foreign Data Wrappers wie
postgres_fdwoderoracle_fdwabfragen müssen, können Sie die ausgehenden IP-Adressen Ihrer Instanz der Zulassungsliste der externen Datenbank hinzufügen. So kann AlloyDB sicher eine Verbindung zur externen Datenquelle herstellen und sie abfragen.
Wenn Sie die ausgehende öffentliche IP-Adresse aktivieren, können Sie die zugewiesenen IP-Adressen in der Google Cloud Console oder mit dem gcloud Befehlszeilentool ansehen. Anschließend können Sie diese IP-Adressen verwenden, um Firewallregeln oder Zugriffssteuerungslisten (Access Control Lists, ACLs) auf Ihren externen Systemen zu konfigurieren und Ihrer AlloyDB-Instanz Zugriff auf Ihre externen Systeme zu gewähren.
Weitere Informationen zum Aktivieren der ausgehenden öffentlichen IP-Adresse finden Sie unter Ausgehende Verbindungen zu einer Instanz hinzufügen.
Autorisierung
Sie können den Zugriff auf einen AlloyDB-Cluster mit AlloyDB-Sprach-Connectors, dem AlloyDB Auth-Proxy oder mit VPC-Firewallregeln steuern.
AlloyDB-Sprach-Connectors
AlloyDB-Sprach-Connectors sind Clientbibliotheken, die bei der Verbindung zu einem AlloyDB-Cluster eine automatisierte mTLS-Verschlüsselung mit TLS 1.3 und eine IAM-Autorisierung ermöglichen.
Sie können diese Bibliotheken direkt in den jeweiligen Programmiersprachen verwenden. Sie bieten die gleichen Funktionen wie der AlloyDB-Proxy, ohne dass ein externer Prozess erforderlich ist. Dies bietet eine höhere Sicherheit und geringere Konfigurationsanforderungen für die Verbindung mit AlloyDB.
Weitere Informationen finden Sie unter Übersicht über AlloyDB-Sprach-Connectors.
Verbindung mit gcloud herstellen
Für interaktive Datenbanksitzungen können Sie den Befehl gcloud beta alloydb connect verwenden. Dieser Befehl vereinfacht den Verbindungsprozess, indem er automatisch eine lokale Instanz des AlloyDB Auth-Proxys verwaltet und eine psql-Clientsitzung für Sie startet.
Weitere Informationen finden Sie unter Verbindung mit gcloud herstellen.
Zugriff mit IAM und dem AlloyDB Auth-Proxy steuern
Sie können zwar direkt über die IP-Adresse eine Verbindung zu einer Instanz herstellen, wir empfehlen jedoch, in Produktionsumgebungen den AlloyDB Auth-Proxy zu verwenden. Er bietet eine IAM-basierte Zugriffssteuerung und eine Ende-zu-Ende-Verschlüsselung zwischen dem Proxy und Ihrem Cluster.
Weitere Informationen finden Sie unter Informationen zum AlloyDB Auth-Proxy.
VPC-Zugriff mit Firewallregeln einschränken
Wie bei jedem cloudbasierten Projekt sollten Sie die Firewallregeln Ihrer VPC so anpassen, dass der Netzwerkzugriff nur auf die IP-Bereiche oder Subnetzwerke beschränkt wird, von denen aus Ihre Anwendungen eine Verbindung herstellen. Dies ist besonders wichtig bei externen Anwendungen, wie unter Verbindung zu einem Cluster von außerhalb seiner VPC beschrieben.
Weitere Informationen zum Konfigurieren der Firewall Ihrer VPC finden Sie unter VPC-Firewall regeln.
Authentifizierung
AlloyDB unterstützt zwei Arten von Datenbanknutzern, die sich jeweils auf unterschiedliche Weise bei Ihren Datenbanken authentifizieren:
Standard-PostgreSQL-Nutzerrollen werden mit einem Nutzernamen und einem Passwort authentifiziert. Sie verwalten diese Konten mit den üblichen PostgreSQL-Techniken zur Nutzerverwaltung. Weitere Informationen finden Sie unter AlloyDB-Nutzer rollen verwalten.
IAM-Nutzer- und -Dienstkonten werden als Datenbanknutzer mit OAuth 2.0-Tokens authentifiziert. Sie verwalten diese Konten mit dem Google Cloud IAM-System. Weitere Informationen finden Sie unter IAM-Authentifizierung verwalten.
Nach der Authentifizierung bei einer AlloyDB-Instanz kann eine Anwendung die Instanz wie einen normalen PostgreSQL-Server behandeln. Nachdem Sie Netzwerk- und Autorisierungsrouten zu einer Instanz eingerichtet haben, können Sie sich mit den Standardtechniken von PostgreSQL in einer Instanz anmelden und auf Ihre Daten zugreifen. Das gilt sowohl für die manuelle Anmeldung mit einem Tool wie psql als auch für die programmatische Verbindung zu Ihrer Datenbank mit einer PostgreSQL-Codebibliothek.
In der Regel melden Sie sich bei der ersten Authentifizierung bei einem neuen AlloyDB-Cluster als postgres-Nutzer in der primären Instanz an. Verwenden Sie dazu das Passwort, das Sie beim Erstellen des Clusters angegeben haben. Anschließend sollten Sie Datenbanknutzer ohne Administratorberechtigungen für die Verwendung durch Ihre Anwendung erstellen.
Wenn Sie beim Erstellen eines Clusters kein Passwort für postgres festlegen, können Sie sich nicht im Cluster anmelden. Legen Sie ein Passwort für postgres fest oder erstellen Sie einen zusätzlichen Nutzer, um sich anzumelden. Weitere Informationen finden Sie unter PostgreSQL-Nutzer mit integrierter Authentifizierung verwalten.
Pooling
Verbindungs-Pooling ist eine Technik, mit der Sie sicherstellen können, dass Ihre Arbeitslast eine zuverlässige und leistungsstarke Verbindung zu Ihrer Datenbank hat. Es ist sowohl auf Client- als auch auf Serverseite nützlich.
Clientseitiges Verbindungs-Pooling
Wenn Sie eine Verbindung zu AlloyDB herstellen, verwenden Sie einen Client-Verbindungspool. Der Client-Verbindungspool erstellt mehrere Verbindungen zu Ihrer Datenbank und sorgt dafür, dass diese Verbindungen während der gesamten Lebensdauer Ihrer Arbeitslast aktiv und fehlerfrei bleiben. So wird sichergestellt, dass Ihre Arbeitslast eine zuverlässige Verbindung zu Ihrer Datenbank hat.
- Wenn Sie Abfragen manuell über die Befehlszeile ausführen.
- Wenn Sie eine Sprache verwenden, die kein clientseitiges Verbindungs-Pooling unterstützt.
- Wenn die Arbeitslast kurzlebig ist und keine dauerhafte Verbindung aufrechterhält.
Sie können jeden Standard-Client-Verbindungspool verwenden, der PostgreSQL unterstützt. Beachten Sie dabei Folgendes:
- Die Client-Verbindungspool-Bibliothek ist manchmal vom PostgreSQL-Treiber getrennt.
- Der PostgreSQL-Treiber enthält die Funktion für das clientseitige Verbindungs-Pooling manchmal in derselben Bibliothek.
Die folgenden Verbindungspool-Bibliotheken werden häufig verwendet:
- HikariCP für Java
- SQLAlchemy für Python
- pgxpool für Go
- node-postgres für Node.js
- Npgsql für .NET
Wenn die Bibliothek PostgreSQL unterstützt, können Sie sie mit AlloyDB verwenden.
Client-Verbindungspools konfigurieren
Um die bestmögliche Leistung aus Ihrem Client-Verbindungspool herauszuholen, müssen Sie möglicherweise die Poolgröße konfigurieren. Verwenden Sie die folgende Formel als Ausgangspunkt:
connections = (vCPU count * 2) + 1
Weitere Informationen finden Sie unter Poolgröße. Abhängig von den tatsächlichen Lasten müssen Sie möglicherweise zusätzliche Optimierungen vornehmen.
Verwaltetes Verbindungs-Pooling verwenden
Neben dem clientseitigen Verbindungs-Pooling unterstützt AlloyDB auch das serverseitige Verbindungs-Pooling mit verwaltetem Verbindungs-Pooling.
Sie können verwaltetes Verbindungs-Pooling für jede transaktionale Arbeitslast verwenden. Es eignet sich jedoch am besten für Anwendungen mit vielen kurzlebigen Verbindungen oder für Anwendungen, bei denen es zu einem plötzlichen Anstieg der Verbindungen kommen kann. Weitere Informationen finden Sie unter Verwaltetes Verbindungs-Pooling konfigurieren.
Nächste Schritte
- Verbindung zu AlloyDB herstellen
- Verbindung mit dem Befehlszeilentool
gcloudherstellen. Verbindung zu einer AlloyDB-Instanz mit der
psqlBefehlszeilenshell herstellen Dazu gehören Anleitungen zum Einrichten einer VM in Ihrer VPC und zum Installieren vonpsqlauf dieser VM.Datenbank erstellen
Erfahren Sie, wie Sie den AlloyDB Auth-Proxy installieren und verwenden , um sichere Verbindungen zu Ihrer AlloyDB-Instanz herzustellen.
Verbindung mit AlloyDB-Sprach-Connectors herstellen