Arbeiten mit Amazon RDS Proxy-Endpunkten - Amazon Aurora

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Arbeiten mit Amazon RDS Proxy-Endpunkten

Erfahren Sie mehr über Endpunkte für RDS Proxy und deren Verwendung. Durch die Verwendung von Proxy-Endpunkten können Sie die folgenden Funktionen nutzen:

  • Sie können mehrere Endpunkte mit einem Proxy verwenden, um Verbindungen von verschiedenen Anwendungen unabhängig voneinander zu überwachen und zu beheben.

  • Sie können Reader-Endpunkte mit Aurora-DB-Cluster zur Verbesserung der Leseskalierbarkeit und Hochverfügbarkeit für Ihre abfrageintensiven Anwendungen verwenden.

  • Sie können einen VPC Cross-Endpoint verwenden, um den Zugriff auf Datenbanken in einer Datenbank VPC von Ressourcen wie EC2 Amazon-Instances in einer anderen zu ermöglichenVPC.

Überblick über Proxy-Endpunkte

Die Arbeit mit RDS Proxy-Endpunkten umfasst die gleichen Verfahren wie bei Aurora-DB-Cluster- und . Wenn Sie nicht mit Aurora-Endpunkten vertraut sind finden Sie weitere Informationen unter Amazon Aurora Aurora-Endpunktverbindungen.

Standardmäßig verfügt der Endpunkt, zu dem Sie eine Verbindung herstellen, wenn Sie RDS Proxy mit einem Aurora-Cluster verwenden, über Lese-/Schreibfunktionen. 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 Aurora-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 von Aurora bereitgestellten Cluster nutzen. Auf diese Weise können Sie die Leseskalierbarkeit eines Aurora-Cluster 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 Aurora--Cluster nach Bedarf mehr Reader-DB-Instances hinzufügen.

Tipp

Wenn Sie mit dem einen Proxy für einen Aurora-Cluster erstellen AWS Management Console, können Sie RDS Proxy automatisch einen Reader-Endpunkt erstellen lassen. Informationen zu den Vorteilen eines Reader-Endpunkts finden Sie unter Verwenden von Reader-Endpunkten mit Aurora-Clustern.

Für einen Proxy-Endpunkt, den Sie erstellen, können Sie den Endpunkt auch einer anderen virtuellen privaten Cloud (VPC) zuordnen, als der Proxy selbst verwendet. Auf diese Weise können Sie von einem anderen Proxy aus eine Verbindung zum Proxy herstellenVPC, z. B. von einem, der von einer anderen Anwendung in Ihrer Organisation VPC 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. Dieser Name kann derjenige sein, den Sie für einen benutzerdefinierten Endpunkt angegeben haben. Es kann sich auch um den speziellen Namen default für den Standardendpunkt eines Proxys handeln, der Lese-/Schreibanforderungen ausführt.

Jeder Proxy-Endpunkt hat seinen eigenen Satz von CloudWatch Metriken. Sie können die Metriken für alle Endpunkte eines Proxys überwachen. Sie können auch Metriken für einen bestimmten Endpunkt oder für alle Lese-/Schreib- oder schreibgeschützten Endpunkte eines Proxys überwachen. Weitere Informationen finden Sie unter Überwachen von RDS-Proxy-Metriken mit Amazon CloudWatch.

Ein Proxy-Endpunkt verwendet denselben Authentifizierungsmechanismus wie der zugehörige Proxy. RDSProxy richtet automatisch Berechtigungen und Autorisierungen für den benutzerdefinierten Endpunkt ein, die den Eigenschaften des zugehörigen Proxys entsprechen.

Informationen zur Funktionsweise von Proxy-Endpunkten für DB-Cluster in einer globalen Aurora-Datenbank finden Sie unter So funktionieren RDS-Proxy-Endpunkte mit globalen Datenbanken.

Limits für Proxy-Endpunkte

RDSFür Proxy-Endpunkte gelten die folgenden Einschränkungen:

  • Jeder Proxy hat einen Standard-Endpunkt, den Sie ändern, aber nicht erstellen oder löschen können.

  • 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 einem Proxy weitere Endpunkte zuordnen, bestimmt RDS Proxy automatisch, welche DB-Instances in Ihrem Cluster für jeden Endpunkt verwendet werden sollen. Sie können bestimmte Instances nicht so auswählen, wie Sie es mit benutzerdefinierten Aurora-Endpunkten können.

Verwenden von Reader-Endpunkten mit Aurora-Clustern

Wenn Sie RDS Proxy mit Aurora-Clustern verwenden, können Sie schreibgeschützte Endpunkte, sogenannte Reader-Endpunkte, erstellen und eine Verbindung zu diesen herstellen. 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.

Anmerkung

Wenn Sie angeben, dass ein neuer Endpunkt schreibgeschützt ist, erfordert RDS Proxy, dass der Aurora-Cluster über eine oder mehrere Reader-DB-Instances verfügt. In einigen Fällen können Sie das Ziel des Proxys in einen Aurora-Cluster ändern, der nur einen einzigen Writer enthält. In diesem Fall schlagen alle Anfragen an den Reader-Endpunkt mit einem Fehler fehl. Anfragen schlagen auch fehl, wenn das Ziel des Proxys eine RDS Instance statt eines Aurora-Clusters ist.

Wenn ein Aurora-Cluster über Reader-Instances verfügt, diese Instances jedoch nicht verfügbar sind, wartet RDS Proxy mit dem Senden der Anfrage, anstatt sofort einen Fehler zurückzugeben. Wenn innerhalb des Zeitraums der Zeitüberschreitung für die Verbindung keine Reader-Instance verfügbar wird, schlägt die Anfrage mit einem Fehler fehl.

Wie Reader-Endpunkte die Verfügbarkeit von Anwendungen unterstützen

In einigen Fällen sind möglicherweise eine oder mehrere Reader-Instances in Ihrem Cluster nicht verfügbar. In diesem Fall können Verbindungen, die einen Reader-Endpunkt eines DB-Proxys verwenden, schneller wiederhergestellt werden als solche, die den Aurora-Reader-Endpunkt verwenden. RDSDer Proxy leitet Verbindungen nur zu den verfügbaren Reader-Instances im Cluster weiter. Es gibt keine Verzögerung aufgrund von DNS Caching, wenn eine Instanz nicht mehr verfügbar ist.

Wenn die Verbindung gemultiplext wird, leitet der RDS Proxy nachfolgende Abfragen an eine andere Reader-DB-Instance weiter, ohne dass Ihre Anwendung unterbrochen wird. Während der automatischen Umstellung auf eine neue Reader-Instance überprüft RDS Proxy die Replikationsverzögerung der alten und neuen Reader-Instances. RDSProxy stellt sicher, dass die neue Reader-Instanz mit den gleichen Änderungen wie die vorherige Reader-Instanz auf dem neuesten Stand ist. Auf diese Weise sieht Ihre Anwendung niemals veraltete Daten, wenn der RDS Proxy von einer Reader-DB-Instance zur anderen wechselt.

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. RDSDer Proxy leitet die Verbindung zu einer anderen Reader-DB-Instance weiter, die sich im available Status befindet. Wenn Sie die Verbindung manuell wiederherstellen, überprüft RDS Proxy nicht die Replikationsverzögerung zwischen der alten und der neuen Reader-Instance.

Wenn Ihr Aurora-Cluster keine verfügbaren Reader-Instances hat, prüft RDS Proxy, ob dieser Zustand vorübergehend oder dauerhaft ist. Das Verhalten ist in jedem Fall wie folgt:

  • Angenommen, Ihr Cluster hat eine oder mehrere Reader-DB-Instances, aber keine von ihnen befindet sich im Status Available. Zum Beispiel könnten alle Reader-Instances neu gestartet werden oder Probleme aufweisen. In diesem Fall warten Versuche, eine Verbindung zu einem Reader-Endpunkt herzustellen, darauf, dass eine Reader-Instance verfügbar wird. 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.

  • Angenommen, Ihr Cluster hat keine Reader-DB-Instances. In diesem Fall gibt RDS Proxy sofort einen Fehler zurück, wenn Sie versuchen, eine Verbindung zu einem Reader-Endpunkt herzustellen. Um dieses Problem zu beheben, fügen Sie Ihrem Cluster eine oder mehrere Reader-Instances hinzu, bevor Sie eine Verbindung zum Reader-Endpunkt herstellen.

Wie Reader-Endpunkte bei der Skalierbarkeit von Abfragen unterstützen

Reader-Endpunkte für einen Proxy unterstützen mit einer Aurora-Abfrage die Skalierbarkeit auf folgende Weise:

  • Wenn Sie Ihrem Aurora-Cluster Reader-Instances hinzufügen, kann RDS Proxy neue Verbindungen zu beliebigen Reader-Endpunkten an die verschiedenen Reader-Instances weiterleiten. Auf diese Weise verlangsamen Abfragen, die mit einer Reader-Endpunktverbindung durchgeführt werden, keine Abfragen, die über eine andere Reader-Endpunktverbindung durchgeführt werden. Die Abfragen laufen auf separaten DB-Instances. Jede DB-Instance verfügt über eigene Rechenressourcen, Puffer-Cache usw.

  • Wo praktikabel, verwendet RDS Proxy dieselbe Reader-DB-Instance für alle Abfragen, die über eine bestimmte Reader-Endpunktverbindung auftreten. 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 gemultiplext wird, leitet RDS Proxy alle nachfolgenden Anfragen 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 sofort wieder eine Verbindung zum Reader-Endpunkt herstellen und RDS Proxy leitet die Verbindung zu einer verfügbaren Reader-DB-Instance weiter. Weitere Informationen zum Multiplexing und Pinning für Proxy-Sitzungen finden Sie unter Überblick über die RDS Proxy-Konzepte.

  • Je mehr Reader-DB-Instances Sie in dem Cluster haben, desto mehr gleichzeitige Verbindungen können Sie mithilfe von Reader-Endpunkten herstellen. Angenommen, Ihr Cluster verfügt über vier Reader-DB-Instances, die jeweils so konfiguriert sind, dass sie 200 gleichzeitige Verbindungen unterstützen. Nehmen wir außerdem an, Ihr Proxy ist so konfiguriert, dass er 50 % der maximalen Verbindungen verwendet. Hier beträgt die maximale Anzahl von Verbindungen, die Sie über die Reader-Endpunkte im Proxy herstellen können, 100 (50% von 200) für Reader 1. Es sind auch 100 für Reader 2 usw. bei insgesamt 400. Wenn Sie die Anzahl der Reader-DB-Instances im Cluster auf acht verdoppeln, verdoppelt sich die maximale Anzahl von Verbindungen über die Reader-Endpunkte ebenfalls, und zwar auf 800.

Beispiele für die Verwendung von Reader-Endpunkten

Das folgende Linux-Beispiel zeigt, wie Sie überprüfen können, dass Sie über einen Reader-Endpunkt mit einem Aurora SQL My-Cluster verbunden sind. Die innodb_read_only-Konfigurationseinstellung ist aktiviert. Versuche Schreibvorgänge wie CREATE DATABASE-Anweisungen durchzuführen, schlagen mit einem Fehler fehl. Und Sie können bestätigen, dass Sie mit einer Reader-DB-Instance verbunden sind, indem Sie den Namen der DB-Instance mit der aurora_server_id-Variable prüfen.

Tipp

Verlassen Sie sich nicht nur darauf, den Namen der DB-Instance zu überprüfen, um festzustellen, ob die Verbindung lesen/schreibgeschützt oder schreibgeschützt ist. Denken Sie daran, dass DB-Instances in Aurora-Clustern die Rollen zwischen Writer und Reader ändern können, wenn Failovers auftreten.

$ mysql -h endpoint-demo-reader.endpoint.proxy-demo.us-east-1.rds.amazonaws.com -u admin -p ... mysql> select @@innodb_read_only; +--------------------+ | @@innodb_read_only | +--------------------+ | 1 | +--------------------+ mysql> create database shouldnt_work; ERROR 1290 (HY000): The MySQL server is running with the --read-only option so it cannot execute this statement mysql> select @@aurora_server_id; +---------------------------------------+ | @@aurora_server_id | +---------------------------------------+ | proxy-reader-endpoint-demo-instance-3 | +---------------------------------------+

Das folgende Beispiel zeigt, wie Ihre Verbindung zu einem Proxy-Reader-Endpunkt auch dann weiterfunktioniert, wenn die Reader-DB-Instance gelöscht wird. In diesem Beispiel hat der Aurora-Cluster zwei Reader-Instances, instance-5507 und instance-7448. Die Verbindung zum Reader-Endpunkt beginnt mit der Verwendung einer der Reader-Instances. Im Beispiel wird diese Reader-Instance durch einen Befehl delete-db-instance gelöscht. RDSDer Proxy wechselt für nachfolgende Abfragen zu einer anderen Reader-Instance.

$ mysql -h reader-demo.endpoint.proxy-demo.us-east-1.rds.amazonaws.com -u my_user -p ... mysql> select @@aurora_server_id; +--------------------+ | @@aurora_server_id | +--------------------+ | instance-5507 | +--------------------+ mysql> select @@innodb_read_only; +--------------------+ | @@innodb_read_only | +--------------------+ | 1 | +--------------------+ mysql> select count(*) from information_schema.tables; +----------+ | count(*) | +----------+ | 328 | +----------+

Während die mysql-Sitzung noch ausgeführt wird, löscht der folgende Befehl die Reader-Instance, mit der der Reader-Endpunkt verbunden ist.

aws rds delete-db-instance --db-instance-identifier instance-5507 --skip-final-snapshot

Abfragen in der mysql-Sitzung funktionieren weiterhin, ohne dass eine erneute Verbindung erforderlich ist. RDSDer Proxy wechselt automatisch zu einer anderen Reader-DB-Instance.

mysql> select @@aurora_server_id; +--------------------+ | @@aurora_server_id | +--------------------+ | instance-7448 | +--------------------+ mysql> select count(*) from information_schema.TABLES; +----------+ | count(*) | +----------+ | 328 | +----------+

Zugriff auf Aurora-Datenbanken über VPCs

Standardmäßig befinden sich die Komponenten Ihres Aurora-Technologie-Stacks alle im selben AmazonVPC. Nehmen wir zum Beispiel an, dass eine Anwendung, die auf einer EC2 Amazon-Instance ausgeführt wird, eine Verbindung zu einer Amazon herstellt. In diesem Fall müssen sich der Anwendungsserver und die Datenbank beide innerhalb desselben befindenVPC.

Mit RDS Proxy können Sie den Zugriff auf eine einrichtenVPC, z. B. EC2 Instances. Zum Beispiel könnte Ihre Organisation mehrere Anwendungen haben, die auf dieselben Datenbankressourcen zugreifen. Jede Anwendung kann für sich genommen seinVPC.

Um den VPC Querzugriff zu aktivieren, erstellen Sie einen neuen Endpunkt für den Proxy. Der Proxy selbst befindet sich in derselben wie der Aurora-DB-Cluster. Der VPC Cross-Endpoint befindet sich jedoch zusammen mit den anderen VPC Ressourcen wie den Instances in der EC2 anderen. Der VPC Cross-Endpoint ist Subnetzen und Sicherheitsgruppen zugeordnet, die aus denselben Ressourcen stammen VPC wie die EC2 und andere Ressourcen. Mit diesen Zuordnungen können Sie von den Anwendungen aus, die sonst aufgrund der VPC Einschränkungen nicht auf die Datenbank zugreifen können, eine Verbindung zum Endpunkt herstellen.

In den folgenden Schritten wird erklärt, wie Sie einen VPC Cross-Endpoint über RDS Proxy erstellen und darauf zugreifen:

  1. Erstellen Sie zwei VPCs oder wählen Sie zwei ausVPCs, die Sie bereits für Aurora-Arbeiten verwenden. Jeder VPC sollte über eigene Netzwerkressourcen wie ein Internet-Gateway, Routing-Tabellen, Subnetze und Sicherheitsgruppen verfügen. Wenn Sie nur einen habenVPC, können Sie sich die Schritte Erste Schritte mit Amazon Aurora zur Einrichtung eines anderen ansehenVPC, um Aurora erfolgreich zu verwenden. Sie können auch Ihre vorhandenen Ressourcen VPC in der EC2 Amazon-Konsole überprüfen, um zu sehen, welche Arten von Ressourcen miteinander verbunden werden können.

  2. Erstellen Sie einen DB-Proxy, der mit der verknüpft ist, zu der Sie eine Verbindung herstellen möchten. Folgen Sie dem Verfahren unter Einen RDS Proxy erstellen.

  3. Wählen Sie auf der Detailseite für Ihren Proxy in der RDS Konsole im Abschnitt Proxy-Endpunkte die Option Endpunkt erstellen aus. Folgen Sie dem Verfahren unter Erstellen eines Proxy-Endpunktes.

  4. Wählen Sie aus, ob der VPC Cross-Endpoint mit Lese-/Schreibzugriff oder schreibgeschützt werden soll.

  5. Anstatt dieselbe Standardeinstellung VPC wie die des Aurora-DB-Clusters zu akzeptieren, wählen Sie eine andere ausVPC. Diese VPC muss sich in derselben AWS Region befinden wie die, in der VPC sich der Proxy befindet.

  6. Anstatt die Standardeinstellungen für Subnetze und Sicherheitsgruppen aus derselben wie der Aurora-DB-Cluster zu akzeptieren, treffen Sie jetzt neue Auswahlen. Treffen Sie diese auf der Grundlage der von Ihnen ausgewählten Subnetze und Sicherheitsgruppen. VPC

  7. Sie müssen keine der Einstellungen für die Secrets Manager-Secrets ändern. Dieselben Anmeldeinformationen gelten für alle Endpunkte Ihres Proxys, unabhängig davon, in welchem Endpunkt sich die VPC einzelnen Endpunkte befinden.

  8. Warten Sie, bis der neue Endpunkt den Status verfügbar erreicht.

  9. Notieren Sie sich den vollständigen Endpunktnamen. Dies ist der Wert, der auf Region_name.rds.amazonaws.com endet, den Sie als Teil der Verbindungszeichenfolge für Ihre Datenbankanwendung angeben.

  10. Greifen Sie von einer Ressource aus auf den neuen Endpunkt zu, die sich auf VPC dem Endpunkt befindet. Eine einfache Möglichkeit, diesen Prozess zu testen, besteht darin, darin eine neue EC2 Instanz zu erstellenVPC. Melden Sie sich dann bei der EC2 Instanz an und führen Sie die psql Befehle mysql oder aus, um mithilfe des Endpunktwerts in Ihrer Verbindungszeichenfolge eine Verbindung herzustellen.