Arbeiten mit Amazon-RDS-Proxy-Endpunkten
RDS-Proxy-Endpunkte bieten flexible und effiziente Möglichkeiten zur Verwaltung von Datenbankverbindungen, wodurch Skalierbarkeit, Verfügbarkeit und Sicherheit verbessert werden. Mit Proxy-Endpunkten können Sie:
-
Überwachung und Fehlerbehebung vereinfachen – Verwenden Sie mehrere Endpunkte, um Verbindungen von verschiedenen Anwendungen unabhängig voneinander nachzuverfolgen und zu verwalten.
Themen
Überblick über Proxy-Endpunkte
Arbeiten mit RDS-Proxy-Endpunkten umfassen die gleichen Arten von Verfahren wie bei RDS-Instance-Endpunkten. Wenn Sie mit RDS-Endpunkten nicht vertraut sind, finden Sie weitere Informationen unter Herstellen einer Verbindung mit einer DB-Instance, auf der die MySQL-Datenbank-Engine läuft und Herstellen einer Verbindung mit einer DB-Instance mit der PostgreSQL-Datenbank-Engine.
Wenn Sie einen Proxy-Endpunkt erstellen, den Sie ihn einer anderen Virtual Private Cloud (VPC) als der des Proxys zuordnen. Auf diese Weise können Sie über eine andere VPC eine Verbindung zum Proxy herstellen, beispielsweise über eine VPC, die von einer anderen Anwendung innerhalb Ihres Unternehmens verwendet wird.
Informationen zu Limits im Zusammenhang mit Proxy-Endpunkten finden Sie unter Limits für Proxy-Endpunkte.
In den RDS-Proxy-Protokollen wird jedem Eintrag der Name des zugehörigen Proxy-Endpunkts vorangestellt. Hierbei kann es sich um den Namen handeln, den Sie für einen benutzerdefinierten Endpunkt angegeben haben, oder um den speziellen Name default für Lese-/Schreibanforderungen mit dem Standard-Endpunkt eines Proxys.
Jeder Proxy-Endpunkt hat seinen eigenen Satz an CloudWatch-Metriken. Überwachen Sie Metriken für alle Proxy-Endpunkte, einen spezifischen Endpunkt oder für alle Lese-/Schreib- oder schreibgeschützten Endpunkte eines Proxys. Weitere Informationen finden Sie unter Überwachen von RDS-Proxy-Metriken mit Amazon CloudWatch.
Ein Proxy-Endpunkt verwendet denselben Authentifizierungsmechanismus wie der zugehörige Proxy. Für RDS-Proxy richtet automatisch Berechtigungen und Autorisierungen für den benutzerdefinierten Endpunkt ein, die mit den Eigenschaften des zugehörigen Proxys übereinstimmen.
Limits für Proxy-Endpunkte
Für RDS-Proxy-Endpunkte gelten die folgenden Beschränkungen:
-
Der RDS-Proxy-Standardendpunkt kann nicht geändert werden.
-
Die maximale Anzahl von benutzerdefinierten Endpunkten für einen Proxy beträgt 20. Daher kann ein Proxy bis zu 21 Endpunkte haben: den Standard-Endpunkt plus 20, die Sie erstellen.
-
Wenn Sie zusätzliche Endpunkte mit einem Proxy verknüpfen, bestimmt RDS-Proxy automatisch, welche DB-Instances in Ihrem Cluster für jeden Endpunkt verwendet werden.
-
Bei IPv6- oder Dual-Stack-Endpunktnetzwerktypen müssen Ihre VPC und Subnetze so konfiguriert sein, dass sie den ausgewählten Netzwerktyp unterstützen.
Wenn Sie einen Proxy erstellen, erstellt RDS automatisch einen VPC-Endpunkt für die sichere Kommunikation zwischen Anwendungen und der Datenbank. Der VPC-Endpunkt ist sichtbar und kann über die Amazon-VPC-Konsole aufgerufen werden.
Durch das Hinzufügen eines neuen Proxy-Endpunkts wird ein AWS PrivateLink-Schnittstellenendpunkt bereitgestellt. Wenn Sie Ihrem Proxy einen oder mehrere Endpunkte hinzufügen, fallen zusätzliche Gebühren an. Weitere Informationen finden Sie unter Preise von RDS-Proxy
Proxy-Endpunkte für Multi-AZ-DB-Cluster
Standardmäßig hat der Endpunkt, mit dem Sie eine Verbindung herstellen, wenn Sie RDS-Proxy mit einem Multi-AZ-DB-Cluster verwenden, Lese-/Schreibfähigkeit. Infolgedessen sendet dieser Endpunkt alle Anforderungen an die Writer-Instance des Clusters. Alle diese Verbindungen werden auf den max_connections-Wert für die Writer-Instance angerechnet. Wenn Ihr Proxy mit einem Multi-AZ-DB-Cluster verbunden ist, können Sie zusätzliche Lese-/Schreib- oder schreibgeschützte Endpunkte für diesen Proxy erstellen.
Sie können einen schreibgeschützten Endpunkt mit Ihrem Proxy für schreibgeschützte Abfragen verwenden. Sie verwenden diesen, wie Sie den Reader-Endpunkt für einen Multi-AZ-DB-Cluster nutzen. Auf diese Weise können Sie die Leseskalierbarkeit eines Multi-AZ-DB-Clusters mit einer oder mehreren Reader-DB-Instances nutzen. Sie können mehr gleichzeitige Abfragen ausführen und mehr gleichzeitige Verbindungen herstellen, indem Sie einen schreibgeschützten Endpunkt verwenden und Ihrem Multi-AZ-DB-Cluster nach Bedarf mehr Reader-DB-Instances hinzufügen. Diese Reader-Endpunkte tragen dazu bei, die Leseskalierbarkeit Ihrer abfrageintensiven Anwendungen zu verbessern. Reader-Endpunkte helfen auch, die Verfügbarkeit Ihrer Verbindungen zu verbessern, wenn eine Reader-DB-Instance in Ihrem Cluster nicht verfügbar ist.
Reader-Endpunkte für Multi-AZ-DB-Cluster
Mit RDS-Proxy können Sie Reader-Endpunkte erstellen und verwenden. Diese Endpunkte funktionieren jedoch nur für Proxys, die mit Multi-AZ-DB-Clustern verbunden sind. Wenn Sie die RDS-CLI oder API verwenden, sehen Sie möglicherweise das TargetRole-Attribut mit einem Wert von READ_ONLY. Sie können solche Proxys nutzen, indem Sie das Ziel eines Proxys von einer RDS-DB-Instance in einen Multi-AZ-DB-Cluster ändern.
Sie können schreibgeschützte Endpunkte mit der Bezeichnung Reader-Endpunkte erstellen und eine Verbindung herstellen, wenn Sie RDS-Proxy mit Multi-AZ-DB-Clustern verwenden.
Wie Reader-Endpunkte die Verfügbarkeit von Anwendungen unterstützen
In einigen Fällen ist möglicherweise eine Reader-Instance in Ihrem Cluster nicht verfügbar. In diesen Fällen können Verbindungen, die einen Reader-Endpunkt eines DB-Proxys verwenden, schneller wiederhergestellt werden als solche, die den Reader-Endpunkt des Multi-AZ-DB-Clusters verwenden. RDS-Proxy leitet Verbindungen nur an die verfügbare Reader-Instance in dem Cluster weiter. Es gibt keine Verzögerung aufgrund von DNS-Caching, wenn eine Instance nicht verfügbar ist.
Wenn die Verbindung Multiplexing durchführt, leitet RDS-Proxy nachfolgende Abfragen ohne Unterbrechung Ihrer Anwendung an eine andere Reader-Instance weiter. Wenn eine Reader-Instance den Status „Nicht verfügbar“ aufweist, werden alle Client-Verbindungen mit diesem Instance-Endpunkt geschlossen.
Wenn die Verbindung fixiert ist, gibt die nächste Abfrage der Verbindung einen Fehler zurück. Ihre Anwendung kann sich jedoch sofort wieder mit demselben Endpunkt verbinden. RDS-Proxy leitet die Verbindung zu einer anderen Reader-DB-Instance weiter, die sich im Status available befindet. Wenn Sie die Verbindung manuell wiederherstellen, überprüft RDS-Proxy nicht die Replikationsverzögerung zwischen der alten und neuen Reader-Instance.
Wenn Ihr Multi-AZ-DB-Cluster keine verfügbaren Reader-Instances hat, versucht RDS-Proxy, eine Verbindung mit einem Reader-Endpunkt herzustellen, sobald dieser verfügbar ist. Wenn innerhalb des Zeitraums der Zeitüberschreitung für die Verbindung keine Reader-Instance verfügbar wird, schlägt der Verbindungsversuch fehl. Wenn eine Reader-Instance verfügbar wird, ist der Verbindungsversuch erfolgreich.
Wie Reader-Endpunkte bei der Skalierbarkeit von Abfragen unterstützen
Reader-Endpunkte für einen Proxy helfen auf folgende Weisen bei der Skalierbarkeit von Abfragen für Multi-AZ-DB-Cluster:
-
Wo praktisch, verwendet RDS-Proxy dieselbe Reader-DB-Instance für alle Abfragen unter Verwendung einer bestimmten Reader-Endpunktverbindung. Auf diese Weise kann eine Reihe von verwandten Abfragen in denselben Tabellen das Caching, die Planoptimierung usw. für eine bestimmte DB-Instance nutzen.
-
Wenn eine Reader-DB-Instance nicht verfügbar ist, hängt die Auswirkung auf Ihre Anwendung davon ab, ob die Sitzung Multiplexing durchführt oder fixiert ist. Wenn die Sitzung Multiplexing durchführt, leitet RDS-Proxy leitet alle nachfolgenden Abfragen an eine andere Reader-DB-Instance weiter, ohne dass Sie etwas unternehmen müssen. Wenn die Sitzung fixiert ist, bekommt Ihre Anwendung einen Fehler und muss sich erneut verbinden. Sie können sich sofort wieder mit dem Reader-Endpunkt verbinden und RDS-Proxy leitet die Verbindung zu einer verfügbaren Reader-DB-Instance. Weitere Informationen zum Multiplexing und Pinning für Proxy-Sitzungen finden Sie unter Überblick über RDS-Proxy-Konzepte.
Zugreifen auf RDS-Datenbanken über VPCs hinweg
Standardmäßig befinden sich die Komponenten Ihres -RDS-Technologie-Stacks alle in derselben Amazon-VPC. Nehmen wir zum Beispiel an, dass eine Anwendung in einer Amazon-EC2-Instance eine Verbindung mit einer Amazon-RDS-DB-Instance herstellt. In diesem Fall müssen sich der Anwendungsserver und die Datenbank beide innerhalb derselben VPC befinden.
Mit RDS-Proxy können Sie den Zugriff auf eine Amazon-RDS-DB-Instance in einer VPC aus Ressourcen wie EC2-Instances in einer anderen VPC festlegen. Zum Beispiel könnte Ihre Organisation mehrere Anwendungen haben, die auf dieselben Datenbankressourcen zugreifen. Jede Anwendung könnte sich in einer eigenen VPC befinden.
Um den VPC-übergreifenden Zugriff zu aktivieren, erstellen Sie einen neuen Endpunkt für den Proxy. Der Proxy selbst befindet sich in derselben VPC wie die Amazon-RDS-DB-Instance. Der VPC-übergreifenden Endpunkt befindet sich jedoch in der anderen VPC bei den anderen Ressourcen wie den EC2-Instances. Der VPC-übergreifende Endpunkt ist mit Subnetzen und Sicherheitsgruppen aus derselben VPC wie der EC2 und anderen Ressourcen verknüpft. Mit diesen Zuordnungen können Sie von den Anwendungen aus eine Verbindung zum Endpunkt herstellen, die aufgrund der VPC-Einschränkungen sonst nicht auf die Datenbank zugreifen können.
In den folgenden Schritten wird erläutert, wie Sie einen VPC-übergreifenden Endpunkt erstellen und darauf über RDS-Proxy zugreifen:
-
Erstellen Sie zwei VPCs oder wählen Sie zwei VPCs, die Sie bereits für RDS-Aufgaben verwenden. Jede VPC sollte über eigene zugehörige Netzwerkressourcen wie ein Internet-Gateway, Routing-Tabellen, Subnetze und Sicherheitsgruppen verfügen. Wenn Sie nur eine VPC haben, können Sie Erste Schritte mit Amazon RDS für die Schritte zum Einrichten einer anderen VPC zur erfolgreichen Verwendung von RDS konsultieren. Sie können Ihre vorhandene VPC auch in der Konsole Amazon EC2 untersuchen, um zu sehen, welche Arten von Ressourcen miteinander zu verbinden sind.
-
Erstellen Sie einen DB-Proxy, der mit der Amazon-RDS-DB-Instance verknüpft ist, mit dem/der Sie eine Verbindung herstellen möchten. Folgen Sie dem Verfahren unter Erstellen eines Proxys für Amazon RDS.
-
Auf der Seite Einzelheiten für Ihren Proxy in der RDS-Konsole unter dem Abschnitt Proxy-Endpunkte wählen Sie Endpunkt erstellen. Folgen Sie dem Verfahren unter Erstellen eines Proxy-Endpunktes.
-
Wählen Sie aus, ob der VPC-übergreifende Endpunkt zum Lesen/Schreiben oder schreibgeschützt sein soll.
-
Anstatt den Standard der gleichen VPC wie für die Amazon-RDS-DB-Instance zu akzeptieren, wählen Sie eine andere VPC. Diese VPC muss sich in derselben AWS-Region befinden wie die VPC, in der sich der Proxy befindet.
-
Anstatt nun die Standardeinstellungen für Subnetze und Sicherheitsgruppen von derselben VPC wie für die Amazon-RDS-Instance zu akzeptieren, treffen Sie eine neue Auswahl. Wählen Sie diese basierend auf den Subnetzen und Sicherheitsgruppen aus der von Ihnen ausgewählten VPC.
-
Sie müssen keine der Einstellungen für die Secrets Manager-Secrets ändern. Dieselben Anmeldeinformationen funktionieren für alle Endpunkte für Ihren Proxy, unabhängig davon, in welcher VPC sich jeder Endpunkt befindet.
-
Warten Sie, bis der neue Endpunkt den Status verfügbar erreicht.
-
Notieren Sie sich den vollständigen Endpunktnamen. Dies ist der Wert, der auf
endet, den Sie als Teil der Verbindungszeichenfolge für Ihre Datenbankanwendung angeben.Region_name.rds.amazonaws.com -
Greifen Sie auf den neuen Endpunkt von einer Ressource in derselben VPC wie der Endpunkt zu. Eine einfache Möglichkeit, diesen Prozess zu testen, besteht darin, eine neue EC2-Instance in dieser VPC zu erstellen. Melden Sie sich dann bei der EC2-Instance an und führen Sie die Befehle
mysqloderpsqlaus, um eine Verbindung mit dem Endpunktwert in Ihrer Verbindungszeichenfolge herzustellen.