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.
Erhöhung der Skalierbarkeit, Leistung und Verfügbarkeit von Anwendungen mithilfe von Amazon-RDS-Proxy
Erstellt von Anand Komandooru, Noorul Hasan, Venkat Nalajala und Varun Kumar, Amazon Web Services (AWS)
Oktober 2022
Dieser Leitfaden behandelt die Notwendigkeit von Datenbankverbindungspooling, die Herausforderungen im Zusammenhang mit der Implementierung einer selbst gehosteten Lösung und die Vorteile der Verwendung von Proxy für Amazon Relational Database Service (Amazon RDS)
Challenge
PostgreSQL wird mithilfe eines process-per-userClient/Server-Modells
Viele Anwendungen, auch solche, die auf modernen Serverless-Architekturen basieren, können eine große Anzahl offener Verbindungen zum Datenbankserver haben. Sie können Datenbankverbindungen mit hoher Geschwindigkeit öffnen und schließen, wodurch Datenbankspeicher und Rechenressourcen aufgebraucht werden.
Bei Transaktionsanwendungen, die Verbindungen häufig öffnen und schließen, ist die Verbindungslatenz höher, was zu niedrigeren Transaktionen pro Sekunde führt. Dies erhöht die Anwendungslatenz.
Ein Failover tritt auf, wenn auf die primäre Datenbank-Instance nicht mehr zugegriffen werden kann und eine andere Instance die Rolle als neue primäre Instance übernimmt. Dadurch werden die Client-Verbindungen unterbrochen. Failovers können geplant werden, wenn sie durch administrative Maßnahmen wie ein fortlaufendes Upgrade ausgelöst werden, oder ungeplant, wenn sie aufgrund von Ausfällen auftreten. In beiden Fällen müssen die Betreiber die Ausfallzeiten reduzieren, um Unterbrechungen des Clients zu minimieren.
Übliche Praxis
Um den Herausforderungen der Skalierbarkeit und Leistung von Anwendungen zu begegnen, wird ein Verbindungspool verwendet. Verbindungspooling reduziert die Verbindungslatenz erheblich, indem bestehende Verbindungen wiederverwendet werden, und es ermöglicht einen höheren Datenbankdurchsatz (Transaktionen pro Sekunde) auf dem Server. Ein Verbindungspool stellt Anwendungsverbindungen, die nicht sofort bedient werden können, in eine Warteschlange oder drosselt sie aus dem Verbindungspool.
Nach der Implementierung dieses Verbindungspoolings ergeben sich weitere Herausforderungen. Betreiber müssen die Infrastruktur und Software für den Betrieb des Verbindungspooling-Services selbst verwalten. Für die Behandlung eines Failover-Ereignisses müssen Anwendungsentwickler die Verbindungskomplexität für jede Anwendung verwalten. Die Anwendung muss den Verbindungsfehler erkennen, einen neuen Primärserver finden und so schnell wie möglich wieder eine Verbindung zu diesem herstellen.
Empfehlung
Um die mit einer selbst gehosteten Verbindungspooling-Lösung verbundenen Herausforderungen zu reduzieren und gleichzeitig die Vorteile zu nutzen, empfehlen wir, Amazon-RDS-Proxy
RDS-Proxy ist ein vollständig verwalteter, hochverfügbarer Datenbank-Proxy. RDS-Proxy verwendet Verbindungspooling, um Anwendungen skalierbarer, widerstandsfähiger gegen Datenbankausfälle und sicherer zu machen.