RDSÜberlegungen zur Proxyverbindung - 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.

RDSÜberlegungen zur Proxyverbindung

Konfigurieren der Verbindungseinstellungen

Um das Verbindungspooling des RDS Proxys anzupassen, können Sie die folgenden Einstellungen ändern:

IdleClientTimeout

Sie können angeben, wie lange eine Client-Verbindung inaktiv sein kann, bevor der Proxy sie schließt. Der Standardwert ist 1.800 Sekunden (30 Minuten).

Eine Client-Verbindung gilt als inaktiv, wenn die Anwendung innerhalb der angegebenen Zeit nach Abschluss der vorherigen Anforderung keine neue Anforderung absendet. Die zugrunde liegende Datenbankverbindung bleibt offen und wird an den Verbindungspool zurückgegeben. Somit ist sie für neue Clientverbindungen verfügbar. Wenn Sie möchten, dass der Proxy proaktiv veraltete Verbindungen entfernt und so das Timeout für inaktive Client-Verbindungen verringert. Wenn Ihr Workload häufig Verbindungen mit dem Proxy herstellt, erhöhen Sie das Timeout für inaktive Client-Verbindungen, um die Kosten für den Verbindungsaufbau zu sparen.

Diese Einstellung wird durch das Feld Timeout für die Verbindung bei inaktivem Client in der RDS Konsole und durch die IdleClientTimeout Einstellung in AWS CLI und der dargestellt. API Informationen dazu, wie Sie den Wert des Felds Timeout für die Verbindung bei inaktivem Client in der RDS Konsole ändern können, finden Sie unter. AWS Management Console Informationen zum Ändern des Werts der IdleClientTimeout Einstellung finden Sie im CLI Befehl modify-db-proxyoder in der API Operation M. odifyDBProxy

MaxConnectionsPercent

Sie können die Anzahl der Verbindungen einschränken, die ein RDS Proxy mit der Zieldatenbank herstellen kann. Sie geben das Limit als Prozentsatz der maximal für Ihre Datenbank verfügbaren Verbindungen an. Diese Einstellung wird durch das Feld Maximale Anzahl an Verbindungen für den Verbindungspool in der RDS Konsole und durch die MaxConnectionsPercent Einstellung in AWS CLI und der dargestelltAPI.

Der MaxConnectionsPercent Wert wird als Prozentsatz der max_connections Einstellung für den Aurora-DB-Cluster der ausgedrückt, der von der Zielgruppe verwendet wird. Der Proxy erstellt nicht alle diese Verbindungen im Voraus. Diese Einstellung ermöglicht es dem Proxy, diese Verbindungen so einzurichten, wie es die Arbeitslast benötigt.

Beispiel: Für ein registriertes Datenbankziel, das auf 1000 und auf 95 MaxConnectionsPercent gesetzt ist, legt RDS Proxy 950 Verbindungen als Obergrenze für gleichzeitige Verbindungen zu diesem Datenbankziel fest. max_connections

Ein häufiger Nebeneffekt, der auftritt, wenn Ihre Workload die maximale Anzahl zulässiger Datenbankverbindungen erreicht, ist ein Anstieg der allgemeinen Abfragelatenz in Verbindung mit einer Erhöhung der Metrik DatabaseConnectionsBorrowLatency. Sie können die aktuell verwendeten Datenbankverbindungen und die Gesamtzahl der zulässigen Datenbankverbindungen überwachen, indem Sie die Metriken DatabaseConnections und MaxDatabaseConnectionsAllowed vergleichen.

Beachten Sie für das Festlegen dieses Parameters die folgenden bewährten Methoden:

  • Sorgen Sie für ausreichend Verbindungsspielraum für Änderungen des Workload-Musters. Es wird empfohlen, den Parameter mindestens 30 % über Ihrer zuletzt überwachten maximalen Nutzung einzustellen. Da RDS Proxy die Kontingente für Datenbankverbindungen auf mehrere Knoten umverteilt, können interne Kapazitätsänderungen mindestens 30% Spielraum für zusätzliche Verbindungen erfordern, um erhöhte Ausleihelatenzen zu vermeiden.

  • RDSDer Proxy reserviert eine bestimmte Anzahl von Verbindungen für die aktive Überwachung, um schnelles Failover, Datenverkehrs-Routing und interne Abläufe zu unterstützen. Die Metrik MaxDatabaseConnectionsAllowed umfasst diese reservierten Verbindungen nicht. Sie stellt die Anzahl der Verbindungen dar, die für den Workload verfügbar sind, und kann niedriger sein als der aus der Einstellung MaxConnectionsPercent abgeleitete Wert.

    Folgende MaxConnectionsPercent Mindestwerte werden empfohlen:

    • db.t3.small: 100

    • db.t3.medium: 55

    • db.t3.large: 35

    • db.r3.large oder höher: 20

    Wenn mehrere Ziel-Instances bei RDS Proxy registriert sind, z. B. ein Aurora-Cluster mit Leserknoten, legen Sie den Mindestwert auf der Grundlage der kleinsten registrierten Instance fest.

Informationen zum Ändern des Werts des Felds Maximale Anzahl an Verbindungen für den Verbindungspool in der RDS Konsole finden Sie unterAWS Management Console. Informationen zum Ändern des Werts der MaxConnectionsPercent Einstellung finden Sie unter dem CLI Befehl modify-db-proxy-target-group oder der API Operation M. odifyDBProxy TargetGroup

Wichtig

Wenn der DB-Cluster Teil einer globalen Datenbank mit aktivierter Schreibweiterleitung ist, reduzieren Sie den MaxConnectionsPercent-Wert Ihres Proxys um das Kontingent, das der Schreibweiterleitung zugewiesen ist. Das Kontingent für die Schreibweiterleitung ist im DB-Cluster-Parameter aurora_fwd_writer_max_connections_pct festgelegt. Informationen zur Schreibweiterleitung finden Sie unter Verwenden der Schreibweiterleitung in einer Amazon Aurora globalen Datenbank.

Informationen zu Datenbankverbindungslimits finden Sie unter Maximale Verbindungen zu einer Aurora My SQL DB-Instance und Maximale Anzahl an Verbindungen zu einer Aurora SQL Postgre-DB-Instance.

MaxIdleConnectionsPercent

Sie können die Anzahl der inaktiven Datenbankverbindungen steuern, die der RDS Proxy im Verbindungspool aufrechterhalten kann. Standardmäßig betrachtet der RDS Proxy eine Datenbankverbindung in seinem Pool als inaktiv, wenn die Verbindung fünf Minuten lang nicht aktiv war.

Der MaxIdleConnectionsPercent Wert wird als Prozentsatz der max_connections Einstellung für die RDS DB-Instance-Zielgruppe ausgedrückt. Der Standardwert ist 50 Prozent von MaxConnectionsPercent und die Obergrenze ist der Wert MaxConnectionsPercent. Wenn beispielsweise 80 istMaxConnectionsPercent, dann MaxIdleConnectionsPercent ist der Standardwert von 40.

Bei einem hohen Wert lässt der Proxy einen hohen Prozentsatz an ungenutzten Datenbankverbindungen offen. Bei einem niedrigen Wert schließt der Proxy einen hohen Prozentsatz von inaktiven Datenbankverbindungen. Wenn Ihre Workloads unvorhersehbar sind, sollten Sie erwägen, einen hohen Wert für MaxIdleConnectionsPercent festzulegen. Auf diese Weise kann der RDS Proxy einen Anstieg der Aktivität bewältigen, ohne viele neue Datenbankverbindungen öffnen zu müssen.

Diese Einstellung wird durch die MaxIdleConnectionsPercent Einstellung von DBProxyTargetGroup in der AWS CLI und der API dargestellt. Um zu erfahren, wie Sie den Wert der MaxIdleConnectionsPercent Einstellung ändern können, schauen Sie sich den CLI Befehl modify-db-proxy-target-group oder die API Operation M odifyDBProxy TargetGroup an.

Informationen zu Datenbankverbindungslimits finden Sie unter Maximale Verbindungen zu einer Aurora My SQL DB-Instance und Maximale Anzahl an Verbindungen zu einer Aurora SQL Postgre-DB-Instance.

ConnectionBorrowTimeout

Sie können wählen, wie lange RDS Proxy darauf wartet, dass eine Datenbankverbindung im Verbindungspool zur Verfügung steht, bevor ein Timeout-Fehler zurückgegeben wird. Standardmäßig sind 120 Sekunden festgelegt. Diese Einstellung greift, wenn die maximale Anzahl von Verbindungen erreicht ist und daher keine Verbindungen im Verbindungspool verfügbar sind. Dies gilt auch, wenn keine geeignete Datenbankinstanz zur Bearbeitung der Anfrage verfügbar ist, z. B. wenn ein Failover-Vorgang ausgeführt wird. Mit dieser Einstellung können Sie die beste Wartezeit für Ihre Anwendung festlegen, ohne das Abfragetimeout in Ihrem Anwendungscode zu ändern.

Diese Einstellung wird durch das Feld Timeout für Verbindungsausleihe in der RDS Konsole oder durch die ConnectionBorrowTimeout Einstellung von DBProxyTargetGroup in oder dargestellt. AWS CLI API Informationen zum Ändern des Werts des Felds Timeout für Verbindungsausleihe in der RDS Konsole finden Sie unter. AWS Management Console Informationen zum Ändern des Werts der ConnectionBorrowTimeout Einstellung finden Sie unter dem CLI Befehl modify-db-proxy-target-group oder der Operation M. API odifyDBProxy TargetGroup

Client- und Datenbankverbindungen

Verbindungen von Ihrer Anwendung zum RDS Proxy werden als Client-Verbindungen bezeichnet. Verbindungen von einem Proxy zur Datenbank sind Datenbankverbindungen. Wenn Sie RDS Proxy verwenden, werden Client-Verbindungen am Proxy beendet, während Datenbankverbindungen innerhalb des RDS Proxys verwaltet werden.

Anwendungsseitiges Verbindungspooling kann den Vorteil bieten, dass der wiederkehrende Verbindungsaufbau zwischen Ihrer Anwendung und dem Proxy reduziert wird. RDS

Berücksichtigen Sie die folgenden Konfigurationsaspekte, bevor Sie einen anwendungsseitigen Verbindungspool implementieren:

  • Maximale Lebensdauer der Client-Verbindung: Der RDS Proxy erzwingt eine maximale Lebensdauer von Client-Verbindungen von 24 Stunden. Dieser Wert kann nicht konfiguriert werden. Konfigurieren Sie Ihren Pool mit einer maximalen Verbindungsdauer von weniger als 24 Stunden, um unerwartete Verbindungsabbrüche beim Client zu vermeiden.

  • Timeout im Leerlauf der Client-Verbindung: Der RDS Proxy erzwingt eine maximale Leerlaufzeit für Client-Verbindungen. Um unerwartete Verbindungsabbrüche zu vermeiden, konfigurieren Sie Ihren Pool mit einem Wert, der niedriger ist als die Einstellung für das Leerlauf-Timeout bei der Client-Verbindung für den RDS Proxy.

Die maximale Anzahl von Client-Verbindungen, die in Ihrem anwendungsseitigen Verbindungspool konfiguriert sind, muss nicht auf die Einstellung max_connections für Proxy beschränkt sein. RDS

Das Pooling von Client-Verbindungen führt zu einer längeren Lebensdauer der Client-Verbindung. Wenn es bei Ihren Verbindungen zum Pinning kommt, kann das Pooling von Client-Verbindungen die Effizienz des Multiplexings verringern. Clientverbindungen, die im anwendungsseitigen Verbindungspool angeheftet, aber inaktiv sind, behalten weiterhin eine Datenbankverbindung bei und verhindern, dass die Datenbankverbindung von anderen Clientverbindungen wiederverwendet wird. Überprüfen Sie Ihre Proxyprotokolle, um zu überprüfen, ob bei Ihren Verbindungen ein Pinning auftritt.

Anmerkung

RDSDer Proxy schließt Datenbankverbindungen irgendwann nach 24 Stunden, wenn sie nicht mehr verwendet werden. Der Proxy führt diese Aktion unabhängig vom Wert der Einstellung für maximale Leerlaufverbindungen aus.