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
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:
-
Vereinfachen Sie die Überwachung und Fehlerbehebung — Verwenden Sie mehrere Endpunkte, um Verbindungen von verschiedenen Anwendungen unabhängig voneinander zu verfolgen und zu verwalten.
-
Verbessern Sie die Leseskalierbarkeit — Nutzen Sie Leser-Endpunkte mit Aurora-DB-Clustern, um den Lesetraffic effizient zu verteilen und so die Leistung für abfrageintensive Workloads zu optimieren.
-
VPC-übergreifenden Zugriff ermöglichen — Connect Datenbanken VPCs mithilfe von VPC-übergreifenden Endpunkten miteinander, sodass Ressourcen wie EC2 Amazon-Instances in einer VPC auf Datenbanken in einer anderen zugreifen können.
Themen
Überblick über Proxy-Endpunkte
Arbeiten mit RDS-Proxy-Endpunkten umfassen die gleichen Arten von Verfahren wie bei Aurora-DB-Cluster- und Reader-Endpunkten. Wenn Sie nicht mit Aurora-Endpunkten vertraut sind finden Sie weitere Informationen unter Amazon Aurora Aurora-Endpunktverbindungen.
Wenn Sie RDS Proxy mit einem Aurora-Cluster verwenden, unterstützt der Standardendpunkt sowohl Lese- als auch Schreibvorgänge. Das bedeutet, dass er alle Anfragen an die Writer-Instance des Clusters weiterleitet und so zu deren max_connections
Limit beiträgt. Um den Datenverkehr besser zu verteilen, können Sie zusätzliche Lese-/Schreib- oder schreibgeschützte Endpunkte für Ihren Proxy einrichten, was ein effizienteres Workload-Management und eine verbesserte Skalierbarkeit ermöglicht.
Verwenden Sie einen schreibgeschützten Endpunkt mit Ihrem Proxy, um Leseabfragen zu verarbeiten, genau wie Sie es mit einem Leser-Endpunkt für einen von Aurora bereitgestellten Cluster tun würden. Dieser Ansatz maximiert die Leseskalierbarkeit von Aurora, indem Abfragen auf eine oder mehrere Reader-DB-Instances verteilt werden. Durch die Verwendung eines schreibgeschützten Endpunkts und das Hinzufügen weiterer Reader-Instances nach Bedarf können Sie die Anzahl der gleichzeitigen Abfragen und Verbindungen erhöhen, die Ihr Cluster verarbeiten kann.
Tipp
Wenn Sie mit dem einen Proxy für einen Aurora-Cluster erstellen, können Sie festlegen AWS Management Console, dass RDS Proxy automatisch einen Reader-Endpunkt erstellt. Informationen zu den Vorteilen eines Reader-Endpunkts finden Sie unter Verwenden von Reader-Endpunkten mit Aurora-Clustern.
Wenn Sie einen Proxy-Endpunkt erstellen, können Sie ihn einer anderen Virtual Private Cloud (VPC) als der VPC des Proxys zuordnen. Auf diese Weise können Sie von einer anderen VPC aus eine Verbindung zum Proxy herstellen, z. B. von einer VPC, die von einer anderen Anwendung in Ihrer Organisation verwendet wird.
Informationen zu Limits im Zusammenhang mit Proxy-Endpunkten finden Sie unter Limits für Proxy-Endpunkte.
RDS-Proxyprotokolle stellen jedem Eintrag den Namen des zugehörigen Proxy-Endpunkts voran. Dies kann entweder der Name sein, den Sie für einen benutzerdefinierten Endpunkt angegeben haben, oder der spezielle Name default
für den Standard-Lese-/Schreibendpunkt des Proxys.
Jeder Proxy-Endpunkt hat seinen eigenen Satz von Metriken. CloudWatch Überwachen Sie Metriken für alle Proxy-Endpunkte, einen bestimmten Endpunkt oder alle Lese-/Schreib- oder schreibgeschützten Endpunkte eines Proxys. Weitere Informationen finden Sie unter Überwachung 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.
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
Für RDS-Proxy-Endpunkte gelten die folgenden Einschrä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. Sie können bestimmte Instances nicht so auswählen, wie Sie es mit benutzerdefinierten Aurora-Endpunkten können.
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 von der Amazon VPC-Konsole aus 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 für RDS-Proxys
Verwenden von Reader-Endpunkten mit Aurora-Clustern
Sie können schreibgeschützte Endpunkte namens Reader-Endpunkte erstellen und eine Verbindung herstellen, wenn Sie RDS Proxy mit Aurora-Clustern verwenden. 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, verlangt RDS Proxy, dass der Aurora-Cluster eine oder mehrere Reader-DB-Instances hat. 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 anstelle eines Aurora-Clusters ist.
Wenn ein Aurora-Cluster Reader-Instances hat, aber diese Instances nicht verfügbar sind, wartet RDS Proxy darauf, die Anfrage zu senden, anstatt sofort einen Fehler zu 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. RDS Proxy leitet Verbindungen nur an die verfügbaren Reader-Instances im 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-DB-Instance weiter. Bei der automatischen Umstellung auf eine neue Reader-Instance prüft RDS Proxy die Replikationsverzögerung der alten und neuen Reader-Instance. RDS Proxy stellt sicher, dass die neue Reader-Instance mit den gleichen Änderungen wie die vorherige Reader-Instance auf dem neuesten Stand ist. Auf diese Weise hat Ihre Anwendung niemals veraltete Daten, wenn RDS Proxy von einer Reader-DB-Instance zu einer 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. 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 den alten und neuen Reader-Instances.
Wenn Ihr Aurora-Cluster keine Reader-Instances verfügbar hat, prüft RDS Proxy, ob diese Bedingung 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 Reader-Instances zu Ihrem Aurora-Cluster 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 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 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 bestätigen können, dass Sie mit einem Aurora MySQL-Cluster durch einen Reader-Endpunkt 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. Für nachfolgende Abfragen wechselt RDS Proxy zu einer anderen Reader-Instance.
$
mysql -h reader-demo.endpoint.proxy-demo.us-east-1.rds.amazonaws.com -umy_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. RDS 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 über VPCs
Standardmäßig befinden sich die Komponenten Ihres Aurora--Technologie-Stacks alle in derselben Amazon-VPC. Nehmen wir zum Beispiel an, dass eine Anwendung, die auf einer EC2 Amazon-Instance ausgeführt wird, eine Verbindung zu einer im Aurora-DB-Cluster 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 eines Aurora-DB-Clusters in einer VPC von Ressourcen in einer anderen VPC aus einrichten, z. B. EC2 Instances. 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 der Aurora-DB-Cluster. Der VPC-übergreifende Endpunkt befindet sich jedoch zusammen mit den anderen Ressourcen wie den Instances in der anderen VPC. EC2 Der VPC-übergreifende Endpunkt ist Subnetzen und Sicherheitsgruppen aus derselben VPC wie die EC2 und anderen Ressourcen zugeordnet. 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 aus VPCs , die Sie bereits für die Arbeit mit Aurora verwenden. Jede VPC sollte über eigene zugeordnete 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 Aurora für die Schritte zum Einrichten einer anderen VPC zur erfolgreichen Verwendung von Aurora konsultieren. . Sie können auch Ihre bestehende VPC in der EC2 Amazon-Konsole überprüfen, um zu sehen, welche Arten von Ressourcen miteinander verbunden werden sollen.
-
Erstellen Sie einen DB-Proxy, der mit dem Aurora-DB-Cluster verknüpft ist, mit dem/der Sie eine Verbindung herstellen möchten. Folgen Sie dem Verfahren unter Einen Proxy für — Amazon Aurora erstellen.
-
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 den Aurora-DB-Cluster 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 den Aurora-DB-Cluster 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 Instanz in dieser VPC zu erstellen. Melden Sie sich dann bei der EC2 Instanz an und führen Sie die
psql
Befehlemysql
oder aus, um mithilfe des Endpunktwerts in Ihrer Verbindungszeichenfolge eine Verbindung herzustellen.