Verwenden von Amazon RDS Proxy - Amazon Relational Database Service

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.

Verwenden von Amazon RDS Proxy

Durch die Verwendung von Amazon RDS Proxy können Sie Ihren Anwendungen erlauben, Datenbankverbindungen zu bündeln und gemeinsam zu nutzen, um ihre Skalierbarkeit zu verbessern. RDS Proxy macht Anwendungen widerstandsfähiger gegenüber Datenbankfehlern, indem er automatisch eine Verbindung zu einer Standby-DB-Instance herstellt, während Anwendungsverbindungen erhalten bleiben. Mithilfe von RDS Proxy können Sie auch die AWS Identity and Access Management (IAM-) Authentifizierung für Datenbanken erzwingen und Anmeldeinformationen sicher in AWS Secrets Manager speichern.

Mit RDS-Proxy können Sie unvorhersehbare Spitzen des Datenbankverkehrs bewältigen. Andernfalls können diese Überlastungen zu Problemen führen, da Verbindungen zu viele Abonnenten haben oder neue Verbindungen schnell hergestellt werden. RDS-Proxy richtet einen Datenbankverbindungspool ein und verwendet Verbindungen in diesem Pool wieder. Dieser Ansatz vermeidet den Speicher- und CPU-Overhead, der jedes Mal beim Öffnen einer neuen Datenbankverbindung erforderlich wäre. Um eine Datenbank vor Überbelegung zu schützen, können Sie die Anzahl der erstellten Datenbankverbindungen kontrollieren.

RDS Proxy stellt Anwendungsverbindungen, die nicht sofort vom Verbindungspool aus bedient werden können, in die Warteschlange oder drosselt sie. Obwohl Latenzen zunehmen können, kann Ihre Anwendung weiter skalieren, ohne dass die Datenbank abrupt ausfällt oder überfordert wird. Wenn Verbindungsanforderungen die von Ihnen angegebenen Grenzwerte überschreiten, lehnt RDS Proxy Anwendungsverbindungen ab (d. h. die Last wird abgeworfen). Gleichzeitig wird eine vorhersehbare Leistung für die Last aufrechterhalten, die RDS mit der verfügbaren Kapazität bewältigen kann.

Sie können den Overhead für die Verarbeitung von Anmeldeinformationen reduzieren und für jede neue Verbindung eine sichere Verbindung herstellen. Einige dieser Arbeiten kann RDS Proxy im Auftrag der Datenbank verarbeiten.

RDS-Proxy ist mit den Engine-Versionen, die es unterstützt, vollständig kompatibel. Sie können RDS-Proxy für die meisten Anwendungen ohne Codeänderungen aktivieren.

Verfügbarkeit von Regionen und Versionen

Die Verfügbarkeit von Funktionen und der Support variieren zwischen bestimmten Versionen der einzelnen Datenbank-Engines und in allen AWS-Regionen. Weitere Informationen über die Verfügbarkeit von Versionen und Regionen von Amazon RDS mit RDS Proxy finden Sie unter Unterstützte Regionen und DB-Engines für Amazon RDS Proxy.

Kontingente und Einschränkungen für RDS Proxy

Die folgenden Einschränkungen gelten für RDS Proxy:

  • Jede AWS-Konto ID ist auf 20 Proxys begrenzt. Wenn für Ihre Anwendung mehr Proxys erforderlich sind, fordern Sie eine Erhöhung über die Seite Servicekontingente in der an. AWS Management Console Wählen Sie auf der Seite Service Quotas Amazon Relational Database Service (Amazon RDS) aus und suchen Sie nach Proxys, um eine Kontingenterhöhung zu beantragen. AWS kann Ihr Kontingent oder die ausstehende Prüfung Ihrer Anfrage automatisch um erhöhen. AWS Support

  • Jeder Proxy kann bis zu 200 zugehörige Secrets Manager-Secrets haben. Somit kann jeder Proxy jederzeit eine Verbindung mit bis zu 200 verschiedenen Benutzerkonten herstellen.

  • Jeder Proxy hat einen Standardendpunkt. Sie können auch bis zu 20 Proxy-Endpunkte für jeden Proxy hinzufügen. Sie können diese Endpoints erstellen, anzeigen, ändern und löschen.

  • Für RDS DB-Instances in Replikationskonfigurationen können Sie einen Proxy nur der Schreiber-DB-Instance und nicht einer Read Replica zuordnen.

  • Ihr RDS Proxy muss sich in derselben VPC wie die Datenbank befinden. Obwohl die Datenbank öffentlich zugänglich sein kann, kann der Proxy dies nicht sein. Wenn Sie beispielsweise Prototypen für Ihre Datenbank auf einem lokalen Host erstellen, können Sie keine Verbindung zu Ihrem Proxy herstellen, es sei denn, Sie haben die erforderlichen Netzwerkanforderungen für die Verbindung zum Proxy eingerichtet. Dies liegt daran, dass sich Ihr lokaler Host außerhalb der VPC des Proxys befindet.

  • Sie können RDS Proxy nicht mit einer VPC verwenden, für deren Tenancy dedicated festgelegt wurde.

  • Wenn Sie den RDS-Proxy mit einem verwenden, für den die IAM-Authentifizierung aktiviert ist, überprüfen Sie die Benutzerauthentifizierung. Benutzer, die eine Verbindung über einen Proxy herstellen, müssen sich mit ihren Anmeldedaten authentifizieren. Details zu Secrets Manager und zur IAM-Unterstützung in RDS Proxy finden Sie unter Datenbankanmeldedaten einrichten in AWS Secrets Manager und AWS Identity and Access Management (IAM-) Richtlinien einrichten.

  • Sie können RDS Proxy nicht mit benutzerdefiniertem DNS verwenden, wenn Sie die SSL-Hostnamenvalidierung nutzen.

  • Jeder Proxy kann einer einzelnen Ziel-DB-Instance zugeordnet werden. Sie können jedoch mehrere Proxys derselben DB-Instance zuordnen.

  • Jede Anweisung mit einer Textgröße über 16 KB bewirkt, dass der Proxy die Sitzung in der aktuellen Verbindung fixiert.

  • In bestimmten Regionen gelten Einschränkungen für Availability-Zones (AZ), die Sie bei der Erstellung des Proxys berücksichtigen müssen. Die Region USA Ost (Nord-Virginia) unterstützt RDS-Proxy nicht in der Availability Zone use1-az3. Die Region USA West (Nordkalifornien) unterstützt RDS-Proxy nicht in der Availability Zone usw1-az2. Achten Sie beim Auswählen von Subnetzen während der Proxy-Erstellung darauf, dass Sie keine Subnetze in den oben genannten Availability Zones auswählen.

  • Derzeit unterstützt RDS Proxy keine globalen Bedingungskontextschlüssel.

    Weitere Informationen über globale Bedingungskontextschlüssel finden Sie unter Globale AWS -Bedingungskontextschlüssel im IAM-Benutzerhandbuch.

Weitere Informationen zu den Einschränkungen für jede DB-Engine finden Sie in den folgenden Abschnitten:

Weitere Einschränkungen für RDS für MariaDB

Die folgenden zusätzlichen Einschränkungen gelten für RDS-Proxy mit Datenbanken von RDS für MariaDB:

  • Derzeit führen alle Proxys Listening auf Port 3306 für MariaDB durch. Die Proxys stellen weiterhin eine Verbindung mit Ihrer Datenbank her, indem Sie den Port verwenden, den Sie in den Datenbankeinstellungen angegeben haben.

  • Sie können RDS-Proxy nicht mit selbst verwalteten MariaDB-Datenbanken in Amazon-EC2-Instances verwenden.

  • Sie können RDS Proxy nicht mit einer DB-Instance von RDS für MariaDB verwenden, bei welcher der Parameter read_only in der DB-Parametergruppe auf 1 festgelegt wurde.

  • RDS Proxy unterstützt den komprimierten MariaDB-Modus nicht. Es unterstützt z. B. nicht die Komprimierung, die von den Optionen --compress oder -C des mysql-Befehls verwendet wird.

  • Einige SQL-Anweisungen und -Funktionen können den Verbindungsstatus ändern, ohne dass Pinning verursacht wird. Informationen zum aktuellen Fixierungsverhalten finden Sie unter Vermeiden des Fixierens.

  • MariaDB unterstützt das MariaDB-Plug-In auth_ed25519 nicht.

  • RDS Proxy unterstützt Transport Layer Security (TLS) Version 1.3 für MariaDB-Datenbanken nicht.

  • Datenbankverbindungen, die einen Befehl GET DIAGNOSTIC verarbeiten, geben möglicherweise ungenaue Informationen zurück, wenn der RDS-Proxy dieselbe Datenbankverbindung für eine weitere Abfrage wiederverwendet. Dies kann passieren, wenn der RDS-Proxy Datenbankverbindungen multiplexiert. Weitere Informationen finden Sie unter Überblick über RDS Proxy-Konzepte.

Wichtig

Legen Sie in der Initialisierungsabfrage bei Proxys, die mit MariaDB-Datenbanken verknüpft sind, den Konfigurationsparameter sql_auto_is_null nicht auf true oder einen Wert ungleich Null fest. Dies kann zu einem falschen Anwendungsverhalten führen.

Weitere Einschränkungen für RDS für Microsoft SQL Server

Die folgenden zusätzlichen Einschränkungen gelten für RDS-Proxy mit Datenbanken von RDS für Microsoft SQL Server:

  • Die Anzahl der Secrets von Secrets Manager, die Sie für einen Proxy erstellen müssen, hängt von der Sortierung ab, die Ihre DB-Instance verwendet. Angenommen, Ihre DB-Instance verwendet eine Sortierung, die die Groß-/Kleinschreibung berücksichtigt. Wenn Ihre Anwendung sowohl „Admin“ als auch „admin“ akzeptiert, benötigt Ihr Proxy zwei separate Secrets. Weitere Informationen über die Sortierung in SQL Server finden Sie in der Dokumentation für Microsoft SQL Server.

  • RDS-Proxy unterstützt keine Verbindungen, die Active Directory verwenden.

  • Sie können die IAM-Authentifizierung nicht mit Clients verwenden, die keine Tokeneigenschaften unterstützen. Weitere Informationen finden Sie unter Überlegungen zum Herstellen einer Verbindung mit einem Proxy mit Microsoft SQL Server.

  • Die Ergebnisse von @@IDENTITY, @@ROWCOUNT und SCOPE_IDENTITY sind nicht immer genau. Rufen Sie zur Umgehung dieses Problems ihre Werte in derselben Sitzungsanweisung ab, um sicherzustellen, dass sie die richtigen Informationen zurückgeben.

  • Wenn die Verbindung mehrere aktive Ergebnismengen (MARS) verwendet, führt RDS-Proxy die Initialisierungsabfragen nicht aus. Weitere Informationen zu MARS finden Sie in der Dokumentation für Microsoft SQL Server.

  • Derzeit unterstützt RDS Proxy kein RDS für SQL Server-DB-Instances, die auf der Hauptversion SQL Server 2022 ausgeführt werden.

  • RDS Proxy unterstützt RDS nicht für SQL Server-DB-Instances, die auf der Hauptversion SQL Server 2014 ausgeführt werden.

  • RDS Proxy unterstützt keine Client-Anwendungen, die nicht mehrere Antwortnachrichten in einem TLS-Eintrag verarbeiten können.

Weitere Einschränkungen für RDS für MySQL

Die folgenden zusätzlichen Einschränkungen gelten für RDS-Proxy mit Datenbanken von RDS für MySQL:

  • Der RDS Proxy unterstützt MySQL sha256_password und caching_sha2_password Authentifizierungs-Plug-Ins nicht. Diese Plug-Ins implementieren SHA-256-Hashing für Benutzerkontenpasswörter.

  • Derzeit führen alle Proxys Listening auf Port 3306 für MySQL durch. Die Proxys stellen weiterhin eine Verbindung mit Ihrer Datenbank her, indem Sie den Port verwenden, den Sie in den Datenbankeinstellungen angegeben haben.

  • Sie können RDS Proxy nicht mit selbst verwalteten MySQL-Datenbanken in EC2-Instances verwenden.

  • Sie können RDS Proxy nicht mit einer RDS-for-MySQL-DB-Instance verwenden, bei welcher der Parameter read_only in der DB-Parametergruppe auf 1 gesetzt wurde.

  • RDS Proxy unterstützt den komprimierten MySQL-Modus nicht. Es unterstützt z. B. nicht die Komprimierung, die von den Optionen --compress oder -C des mysql-Befehls verwendet wird.

  • Datenbankverbindungen, die einen Befehl GET DIAGNOSTIC verarbeiten, geben möglicherweise ungenaue Informationen zurück, wenn der RDS-Proxy dieselbe Datenbankverbindung für eine weitere Abfrage wiederverwendet. Dies kann passieren, wenn der RDS-Proxy Datenbankverbindungen multiplexiert.

  • Einige SQL-Anweisungen und Funktionen SET LOCAL können z. B. den Verbindungsstatus ändern, ohne dass es zu einer Fixierung kommt. Informationen zum aktuellen Fixierungsverhalten finden Sie unter Vermeiden des Fixierens.

  • Die Verwendung der ROW_COUNT() Funktion in einer Abfrage mit mehreren Anweisungen wird nicht unterstützt.

  • RDS Proxy unterstützt keine Client-Anwendungen, die nicht mehrere Antwortnachrichten in einem TLS-Datensatz verarbeiten können.

Wichtig

Setzen Sie in der Initialisierungsabfrage bei Proxys, die mit MySQL-Datenbanken verknüpft sind, den Konfigurationsparameter sql_auto_is_null nicht auf true oder einen Wert ungleich Null. Dies kann zu einem falschen Anwendungsverhalten führen.

Weitere Einschränkungen für RDS für PostgreSQL

Die folgenden zusätzlichen Einschränkungen gelten für RDS-Proxy mit Datenbanken von RDS für PostgreSQL:

  • RDS Proxy unterstützt keine Sitzungs-Pinning-Filter für PostgreSQL.

  • Derzeit führen alle Proxys Listening auf Port 5432 für PostgreSQL durch.

  • Für PostgreSQL unterstützt RDS Proxy derzeit nicht das Abbrechen einer Abfrage von einem Client durch Ausgeben von CancelRequest. Dies ist beispielsweise der Fall, wenn Sie eine lange andauernde Abfrage in einer interaktiven psql-Sitzung mithilfe von Strg+C abbrechen.

  • Die Ergebnisse der PostgreSQL-Funktion lastval sind nicht immer genau. Verwenden Sie zur Umgehung die INSERT-Anweisung mit der Klausel RETURNING.

  • RDS Proxy unterstützt derzeit den Streaming-Replikationsmodus nicht.

  • Bei RDS for PostgreSQL 16 wirken sich Änderungen am scram_iterations Wert ausschließlich auf den Authentifizierungsprozess zwischen dem Proxy und der Datenbank aus. Insbesondere wenn Sie dies konfigurieren ClientPasswordAuthTypescram-sha-256, haben alle am scram_iterations Wert vorgenommenen Anpassungen keinen Einfluss client-to-proxy auf die Passwortauthentifizierung. Stattdessen ist der Iterationswert für die client-to-proxy Kennwortauthentifizierung auf 4096 festgelegt.

Wichtig

Wenn Sie bei vorhandenen Proxys mit PostgreSQL-Datenbanken die Datenbankauthentifizierung so ändern, dass nur SCRAM verwendet wird, ist der Proxy für bis zu 60 Sekunden nicht verfügbar. Um das Problem zu vermeiden, führen Sie einen der folgenden Schritte aus:

  • Stellen Sie sicher, dass die Datenbank sowohl die SCRAM- als auch die MD5-Authentifizierung zulässt.

  • Wenn Sie nur die SCRAM-Authentifizierung verwenden möchten, erstellen Sie einen neuen Proxy, migrieren Sie Ihren Anwendungsdatenverkehr auf den neuen Proxy und löschen Sie dann den zuvor mit der Datenbank verknüpften Proxy.