

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.

# Amazon RDS-Proxy für Aurora
<a name="rds-proxy"></a>

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 die AWS Identity and Access Management (IAM-) Authentifizierung für Clients erzwingen, die eine Verbindung zum Proxy herstellen, und der Proxy kann mithilfe der IAM-Datenbankauthentifizierung oder der in gespeicherten Anmeldeinformationen eine Verbindung zu Datenbanken herstellen. AWS Secrets Manager

![\[Ein Überblick darüber, wie Anwendungen eine Verbindung zum RDS Proxy herstellen\]](http://docs.aws.amazon.com/de_de/AmazonRDS/latest/AuroraUserGuide/images/Proxy-Overview.png)


 Mit RDS-Proxy können Sie unvorhersehbare Spitzen des Datenbankverkehrs bewältigen. Andernfalls könnten diese Spitzen Probleme verursachen, weil Verbindungen überbelegt sind oder schnell neue Verbindungen erstellt 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 Überbuchung zu schützen, können Sie die Anzahl der erstellten Datenbankverbindungen steuern. 

 RDS-Proxy stellt Anwendungsverbindungen in Warteschlangen oder drosselt sie, wenn sie nicht sofort vom Verbindungspool bedient werden können. 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 die vorhersehbare Leistung für die Last beibehalten, die mit verfügbarer Kapazität bedient werden kann. 

![\[Eine detaillierte Ansicht darüber, wie Anwendungen eine Verbindung zum RDS-Proxy herstellen und welche Verbindungstypen erforderlich sind.\]](http://docs.aws.amazon.com/de_de/AmazonRDS/latest/AuroraUserGuide/images/Proxy-detail.png)


 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. Eine Liste der unterstützten Engine-Versionen finden Sie unter [Unterstützte Regionen und Aurora-DB-Engines für Amazon-RDS-Proxy](Concepts.Aurora_Fea_Regions_DB-eng.Feature.RDS_Proxy.md). 

**Topics**
+ [Verfügbarkeit von Regionen und Versionen](#rds-proxy.RegionVersionAvailability)
+ [Kontingente und Einschränkungen für RDS-Proxy](#rds-proxy.limitations)
+ [Planen des Verwendungsortes von RDS-Proxy](rds-proxy-planning.md)
+ [Konzepte und Terminologie zu RDS-Proxy](rds-proxy.howitworks.md)
+ [Erste Schritte mit RDS-Proxy](rds-proxy-setup.md)
+ [Verwalten eines RDS-Proxy](rds-proxy-managing.md)
+ [Arbeiten mit Amazon-RDS-Proxy-Endpunkten](rds-proxy-endpoints.md)
+ [Überwachen von RDS-Proxy-Metriken mit Amazon CloudWatch](rds-proxy.monitoring.md)
+ [Arbeiten mit RDS-Proxy-Ereignissen](rds-proxy.events.md)
+ [Befehlszeilenbeispiele für RDS Proxy](rds-proxy.examples.md)
+ [Fehlersuche für RDS-Proxy](rds-proxy.troubleshooting.md)
+ [Verwenden von RDS-Proxy mit AWS CloudFormation](rds-proxy-cfn.md)
+ [Verwenden von RDS Proxy mit globalen Aurora-Datenbanken](rds-proxy-gdb.md)

## Verfügbarkeit von Regionen und Versionen
<a name="rds-proxy.RegionVersionAvailability"></a>

 Hinweise zur Versionsunterstützung der Datenbank-Engine und zur Verfügbarkeit von RDS Proxy in einem bestimmten AWS-Region Fall finden Sie unter[Unterstützte Regionen und Aurora-DB-Engines für Amazon-RDS-Proxy](Concepts.Aurora_Fea_Regions_DB-eng.Feature.RDS_Proxy.md). 

## Kontingente und Einschränkungen für RDS-Proxy
<a name="rds-proxy.limitations"></a>

 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 **Service Quotas** in der AWS-Managementkonsole an. Wählen Sie auf der Seite **Service Quotas** **Amazon Relational Database Service (Amazon RDS)** aus und suchen Sie nach **Proxys**, um eine Kontingenterhöhung anzufordern. AWS kann Ihr Kontingent oder die ausstehende Überprüfung Ihrer Anforderung automatisch um Support erhöhen.
+ Jedem Proxy können bis zu 200 Secrets Manager Manager-Geheimnisse zugeordnet sein, wodurch Verbindungen bei der Verwendung von Geheimnissen auf bis zu 200 verschiedene Benutzerkonten beschränkt werden. 
+  Jeder Proxy hat einen Standardendpunkt, der nur für zwei Availability Zones bereitgestellt wird, die aus den konfigurierten Subnetzen des Proxys ausgewählt wurden. Wenn Subnetze in mehr als zwei konfiguriert AZs sind, werden zwei beliebige ausgewählt. 
+  Sie können bis zu 20 zusätzliche Proxy-Endpunkte für jeden Proxy hinzufügen. Diese zusätzlichen Endpunkte werden in allen Availability Zones bereitgestellt, die bei ihrer Erstellung angegeben wurden. Sie können diese Endpunkte erstellen, anzeigen, ändern und löschen. 
+  In einem Aurora-Cluster, werden alle Verbindungen, die den Standard-Proxy-Endpunkt verwenden, von der Aurora-Writer-Instance verarbeitet. Um einen Lastenausgleich für leseintensive Workloads durchzuführen, können Sie einen schreibgeschützten Endpunkt für einen Proxy erstellen. Dieser Endpunkt übergibt Verbindungen an den Reader-Endpunkt des Clusters. Auf diese Weise können Ihre Proxy-Verbindungen die Vorteile von Aurora-Leseskalierbarkeit nutzen. Weitere Informationen finden Sie unter [Überblick über Proxy-Endpunkte](rds-proxy-endpoints.md#rds-proxy-endpoints-overview). 
+ Sie können RDS-Proxy mit Clustern von Aurora Serverless v2 verwenden, jedoch nicht mit Clustern von Aurora Serverless v1.
+ 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 richten die erforderlichen Netzwerkanforderungen ein, um eine Verbindung zum Proxy zuzulassen. Dies liegt daran, dass sich Ihr lokaler Host außerhalb der VPC des Proxys befindet. 
**Anmerkung**  
Für Aurora-DB-Cluster können Sie den VPC-übergreifenden Zugriff aktivieren. Erstellen Sie dazu einen zusätzlichen Endpunkt für einen Proxy und geben Sie eine andere VPC, Subnetze und Sicherheitsgruppen mit diesem Endpunkt an. Weitere Informationen finden Sie unter [Zugriff auf Aurora über VPCs](rds-proxy-endpoints.md#rds-proxy-cross-vpc).
+  Sie können RDS-Proxy nicht mit einer VPC verwenden, für deren Tenancy `dedicated` festgelegt wurde. 
+  Sie können RDS Proxy nicht in einer VPC verwenden, für die Verschlüsselungskontrollen `Enforce Mode` aktiviert sind. 
+ Für IPv6 Endpunkt-Netzwerktypen konfigurieren Sie Ihre VPC und Subnetze so, dass sie nur unterstützt werden. IPv6 Konfigurieren Sie Ihre VPC IPv4 und Subnetze sowohl für Netzwerktypen als auch für IPv6 Zielverbindungen so, dass sie den Dual-Stack-Modus unterstützen. 
+ Wenn Sie den RDS-Proxy mit einem Aurora-DB-Cluster der  verwenden, für den die IAM-Authentifizierung aktiviert ist, kann der Proxy entweder mithilfe der IAM-Authentifizierung oder der in Secrets Manager gespeicherten Anmeldeinformationen eine Verbindung zur Datenbank herstellen. Clients, die eine Verbindung zum Proxy herstellen, müssen sich mit IAM-Anmeldeinformationen authentifizieren. Detaillierte Konfigurationsanweisungen finden Sie unter und [Datenbankanmeldedaten für RDS Proxy einrichten](rds-proxy-secrets-arns.md) [Konfigurieren der IAM-Authentifizierung für RDS-Proxy](rds-proxy-iam-setup.md)
+  Sie können RDS-Proxy nicht mit benutzerdefiniertem DNS verwenden, wenn Sie die SSL-Hostnamenvalidierung nutzen. 
+  Jeder Proxy kann einem einzelnen Ziel-DB-Cluster zugeordnet werden. Sie können jedoch mehrere Proxys demselben DB-Cluster 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) im *IAM-Benutzerhandbuch*.
+ Sie können RDS-Proxy nicht mit RDS Custom für SQL Server verwenden.
+ Um Änderungen von Datenbankparametergruppen auf Ihrem Proxy widerzuspiegeln, ist ein Instance-Neustart erforderlich, auch wenn Sie sich dafür entschieden haben, Ihre Änderungen sofort zu übernehmen. Für Parameter auf Cluster-Ebene ist ein clusterweiter Neustart erforderlich.
+ Ihr Proxy erstellt den DB-Benutzer `rdsproxyadmin` automatisch, wenn Sie ein Proxyziel registrieren. Dies ist ein geschützter Benutzer, der für die Proxyfunktionalität unerlässlich ist. Sie sollten jegliche Manipulation des Benutzers `rdsproxyadmin` vermeiden. Das Löschen oder Ändern des Benutzers `rdsproxyadmin` oder seiner Berechtigungen kann zu einer vollständigen Nichtverfügbarkeit des Proxys für Ihre Anwendung führen.

Weitere Informationen zu den Einschränkungen für jede DB-Engine finden Sie in den folgenden Abschnitten:
+ [Weitere Einschränkungen für Aurora MySQL](#rds-proxy.limitations-my)
+ [Weitere Einschränkungen für Aurora PostgreSQL](#rds-proxy.limitations-pg)

### Weitere Einschränkungen für Aurora MySQL
<a name="rds-proxy.limitations-my"></a>

 Die folgenden zusätzlichen Einschränkungen gelten für RDS-Proxy mit Datenbanken von RDS für MySQL:
+ Die RDS-Proxyunterstützung für die Authentifizierung `caching_sha2_password` erfordert eine sichere Verbindung (TLS).
+ Es ist bekannt, dass bei der RDS-Proxyunterstützung für `caching_sha2_password` Kompatibilitätsprobleme mit bestimmten Go-SQL-Treiberversionen vorhanden sind.
+ Bei Verwendung des MySQL 8.4 C-Treibers kann die API `mysql_stmt_bind_named_param` falsch formatierte Pakete bilden, wenn die Anzahl der Parameter die Anzahl der Platzhalter in vorbereiteten Anweisungen übersteigt. Dies führt zu falschen Antworten. Weitere Informationen finden Sie unter [MySQL bug report](https://bugs.mysql.com/bug.php?id=116860&thanks=4).
+ 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 wie `SET LOCAL` können den Verbindungsstatus ändern, ohne dass Pinning verursacht wird. Informationen zum aktuellen Fixierungsverhalten finden Sie unter [Vermeiden von Pinning beim RDS-Proxy](rds-proxy-pinning.md).
+ Die Verwendung der Funktion `ROW_COUNT()` in einer Abfrage mit mehreren Anweisungen wird nicht unterstützt.
+ RDS-Proxy unterstützt keine Client-Anwendungen, die nicht mehrere Antwortnachrichten in einem TLS-Eintrag verarbeiten können.
+ RDS-Proxy unterstützt die doppelten MySQL-Passwörter nicht.
+ RDS-Proxy funktioniert möglicherweise nicht wie erwartet, wenn Sie den Parameter `init_connect` in Ihrer RDS-DB-Parametergruppe so konfigurieren, dass Sitzungsstatusvariablen festgelegt werden. Legen Sie stattdessen die Initialisierungsabfrage für Ihren Proxy so fest, dass Sitzungsinitialisierungsanweisungen ausgeführt werden, wenn Sie den Proxy für die Verbindung mit Ihrer Datenbank verwenden.

**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 Aurora PostgreSQL
<a name="rds-proxy.limitations-pg"></a>

 Die folgenden zusätzlichen Einschränkungen gelten für RDS-Proxy mit Datenbanken von Aurora 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\$1C abbrechen. 
+  Die Ergebnisse der PostgreSQL-Funktion [lastval](https://www.postgresql.org/docs/current/functions-sequence.html) sind nicht immer genau. Verwenden Sie zur Umgehung die [INSERT](https://www.postgresql.org/docs/current/sql-insert.html)-Anweisung mit der Klausel `RETURNING`.
+ RDS-Proxy unterstützt derzeit den Streaming-Replikationsmodus nicht.
+ Die `postgres` Standarddatenbank muss auf der RDS-Instanz für PostgreSQL vorhanden sein, damit der RDS-Proxy funktioniert. Löschen Sie diese Datenbank nicht, auch wenn Ihre Anwendung unterschiedliche Datenbanken verwendet.
+ Wenn Sie `ALTER ROLE` verwenden, um die Benutzerrolle mit `SET ROLE` zu ändern, werden nachfolgende Verbindungen als dieser Benutzer zum Proxy diese Rolleneinstellung möglicherweise nicht, wenn bei diesen Verbindungen Pinning auftritt. Nutzen Sie bei der Verwendung eines Proxys `SET ROLE` in der Initialisierungsabfrage des Proxys, um dies zu vermeiden. Weitere Informationen finden Sie in der **Initialisierungsabfrage** unter [Erstellen eines Proxys für Amazon Aurora](rds-proxy-creating.md).

**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.

# Planen des Verwendungsortes von RDS-Proxy
<a name="rds-proxy-planning"></a>

 Sie können ermitteln, welche Ihrer DB-Instances, Cluster und Anwendungen möglicherweise am meisten von der Verwendung von RDS-Proxy profitieren. Berücksichtigen Sie dazu folgende Faktoren: 
+  Alle DB-Cluster, auf denen gelegentlich der Fehler „zu viele Verbindungen“ auftritt, sind gut geeignet für die Zuordnung zu einem Proxy. Dies ist häufig durch einen hohen Wert der `ConnectionAttempts` CloudWatch Metrik gekennzeichnet. Der Proxy ermöglicht es Anwendungen, viele Clientverbindungen zu öffnen, während der Proxy eine geringere Anzahl langlebiger Verbindungen mit  dem DB-Cluster verwaltet. 
+  Bei , die kleinere AWS Instance-Klassen wie T2 oder T3 verwenden, kann die Verwendung eines Proxys helfen, Probleme zu vermeiden out-of-memory. Sie kann auch dazu beitragen, den CPU-Overhead für das Herstellen von Verbindungen zu reduzieren. Diese Bedingungen können auftreten, wenn es um eine große Anzahl von Verbindungen geht. 
+  Sie können bestimmte CloudWatch Amazon-Metriken überwachen, um festzustellen, ob sich ein bestimmten Grenzwerten nähert. Diese Grenzwerte gelten für die Anzahl der Verbindungen und den Arbeitsspeicher, der mit der Verbindungsverwaltung verbunden ist. Sie können auch bestimmte CloudWatch Metriken überwachen, um festzustellen, ob ein viele kurzlebige Verbindungen verarbeitet. Das Öffnen und Beenden solcher Verbindungen kann einen Leistungs-Overhead für Ihre Datenbank verursachen. Informationen zu den zu überwachenden Metriken finden Sie unter [Überwachen von RDS-Proxy-Metriken mit Amazon CloudWatchÜberwachen von RDS-Proxy mit CloudWatch](rds-proxy.monitoring.md). 
+  AWS Lambda Funktionen können auch gute Kandidaten für die Verwendung eines Proxys sein. Diese Funktionen stellen häufig kurze Datenbankverbindungen her, die von dem von RDS-Proxy angebotenen Verbindungspooling profitieren. Sie können alle IAM-Authentifizierungen nutzen, die Sie bereits für Lambda-Funktionen haben, anstatt Datenbankanmeldeinformationen im Lambda-Anwendungscode zu verwalten. 
+  Anwendungen, die in der Regel eine große Anzahl von Datenbankverbindungen öffnen und schließen und über keine integrierten Mechanismen für das Verbindungspooling verfügen, bieten sich für die Verwendung eines Proxys an. 
+  Anwendungen, die eine große Anzahl von Verbindungen über lange Zeiträume offen halten, sind in der Regel gute Kandidaten für die Verwendung eines Proxys. Anwendungen in Branchen wie Software as a Service (SaaS) oder E-Commerce minimieren häufig die Latenz für Datenbankanfragen, da sie Verbindungen offen lassen. Mit RDS-Proxy kann eine Anwendung mehr Verbindungen offen halten, als dies möglich ist, wenn eine direkte Verbindung mit dem DB--Cluster hergestellt wird. 
+  Möglicherweise haben Sie die IAM-Authentifizierung und den Secrets Manager nicht übernommen, da die Einrichtung einer solchen Authentifizierung für alle komplex ist. Der Proxy kann die Authentifizierungsrichtlinien für Clientverbindungen für bestimmte Anwendungen erzwingen. Sie können alle IAM-Authentifizierungen nutzen, die Sie bereits für Lambda-Funktionen haben, anstatt Datenbankanmeldeinformationen im Lambda-Anwendungscode zu verwalten. 
+  RDS-Proxy kann dazu beitragen, Anwendungen widerstandsfähiger und transparenter gegenüber Datenbankausfällen zu machen. RDS-Proxy umgeht Domain Name System (DNS)-Caches, um die Failover-Zeiten für Multi-AZ-Datenbanken von Aurora um bis zu 66 % zu reduzieren. RDS-Proxy leitet den Datenverkehr außerdem automatisch an eine neue Datenbank-Instance weiter, wobei Anwendungsverbindungen erhalten bleiben. Dadurch werden Failovers für Anwendungen transparenter.

# Konzepte und Terminologie zu RDS-Proxy
<a name="rds-proxy.howitworks"></a>

 Sie können die Verbindungsverwaltung für Ihre Amazon-Aurora-DB-Cluster vereinfachen, indem Sie RDS-Proxy verwenden. 

 RDS-Proxy verarbeitet den Netzwerkverkehr zwischen der Clientanwendung und der Datenbank. Es tut dies auf aktive Weise, indem es das Datenbankprotokoll erfasst Anschließend passt er sein Verhalten basierend auf den SQL-Operationen aus Ihrer Anwendung und den Ergebnismengen aus der Datenbank an. 

 RDS-Proxy reduziert den Arbeitsspeicher- und CPU-Overhead für die Verbindungsverwaltung in Ihrer Datenbank. Die Datenbank benötigt weniger Arbeitsspeicher und CPU-Ressourcen, wenn Anwendungen viele gleichzeitige Verbindungen öffnen. Es erfordert auch keine Logik in Ihren Anwendungen, um Verbindungen zu schließen und wieder zu öffnen, die für eine lange Zeit inaktiv bleiben. Ebenso erfordert es weniger Anwendungslogik, um Verbindungen im Falle eines Datenbankproblems wiederherzustellen. 

 Die Infrastruktur für RDS Proxy ist hochverfügbar und wird über mehrere Availability Zones (AZs) bereitgestellt. Berechnung, Arbeitsspeicher und Speicher für RDS-Proxy sind unabhängig von Ihrer Ihrem Aurora-DB-Cluster. Diese Trennung hilft, den Overhead auf Ihren Datenbankservern zu senken, sodass sie ihre Ressourcen für die Bereitstellung von Datenbank-Workloads einsetzen können. Die RDS-Proxy-Rechenressourcen sind serverless und werden automatisch basierend auf der Datenbank-Workload skaliert. 

**Topics**
+ [Überblick über RDS-Proxy-Konzepte](#rds-proxy-overview)
+ [Verbindungspooling](#rds-proxy-connection-pooling)
+ [RDS-Proxy-Sicherheit](#rds-proxy-security)
+ [Failover](#rds-proxy-failover)
+ [Transaktionen](#rds-proxy-transactions)

## Überblick über RDS-Proxy-Konzepte
<a name="rds-proxy-overview"></a>

 RDS-Proxy verbreitet die Infrastruktur zum Ausführen des Verbindungspoolings und die anderen Funktionen, die in den folgenden Abschnitten beschrieben werden. Die in der RDS-Konsole dargestellten Proxys werden auf der Seite **Proxys** angezeigt. 

Jeder Proxy verarbeitet Verbindungen zu einer einzelnen einem einzelnen Aurora-DB-Cluster. Bei von Aurora bereitgestellten Clustern bestimmt der Proxy die aktuelle Writer-Instance automatisch.

 Die Verbindungen, die ein Proxy offen hält und für Ihre Datenbankanwendung verfügbar macht, bilden den *Verbindungspool*. 

 Standardmäßig kann RDS-Proxy eine Verbindung nach jeder Transaktion in Ihrer Sitzung wiederverwenden. Diese Wiederverwendung auf Transaktionsebene wird als *Multiplexing* bezeichnet. Wenn RDS-Proxy vorübergehend eine Verbindung aus dem Verbindungspool entfernt wird, um sie wiederzuverwenden, wird dieser Vorgang als *Ausleihen* der Verbindung bezeichnet. Wenn dies sicher ist, wird diese Verbindung an den Verbindungspool RDS-Proxy zurückgegeben. 

 In einigen Fällen kann RDS-Proxy nicht gewährleisten, dass eine Datenbankverbindung außerhalb der aktuellen Sitzung sicher wiederzuverwenden ist. In diesen Fällen bleibt die Sitzung auf derselben Verbindung erhalten, bis die Sitzung beendet ist. Dieses Fallback-Verhalten wird als *Fixierung (Pinning)* bezeichnet. 

Ein Proxy hat einen Standard-Endpunkt. Sie stellen eine Verbindung mit diesem Endpunkt her, wenn Sie mit einem Amazon-Aurora-DB-Cluster arbeiten. Sie tun dies, anstatt eine Verbindung zu dem read/write Endpunkt herzustellen, der direkt mit dem verbunden ist. Die speziellen Endpunkte für einen Aurora-Cluster stehen Ihnen weiterhin zur Verfügung. Für Aurora-DB-Cluster können Sie auch zusätzliche read/write und schreibgeschützte Endpunkte erstellen. Weitere Informationen finden Sie unter [Überblick über Proxy-Endpunkte](rds-proxy-endpoints.md#rds-proxy-endpoints-overview). 

 Beispielsweise können Sie für read/write Verbindungen ohne Verbindungspooling weiterhin eine Verbindung zum Cluster-Endpunkt herstellen. Sie können weiterhin eine Verbindung zum Leser-Endpunkt für schreibgeschützte Verbindungen mit Lastenausgleich herstellen. Sie können weiterhin eine Verbindung zu den Instance-Endpunkten für die Diagnose und Behebung von Fehlern in bestimmten DB-Instances innerhalb eines Clusters herstellen. Wenn Sie andere AWS Dienste verwenden, z. B. AWS Lambda um eine Verbindung zu RDS-Datenbanken herzustellen, ändern Sie deren Verbindungseinstellungen, sodass der Proxy-Endpunkt verwendet wird. Beispielsweise geben Sie den Proxy-Endpunkt an, damit Lambda-Funktionen auf Ihre Datenbank zugreifen und gleichzeitig die RDS-Proxy-Funktionalität nutzen können. 

 Jeder Proxy enthält eine Zielgruppe. Diese *Zielgruppe* verkörpert die den Aurora DB-Cluster, mit dem der Proxy eine Verbindung herstellen kann. Bei einem Aurora-Cluster ist die Zielgruppe standardmäßig allen DB-Instances in diesem Cluster zugeordnet. Auf diese Weise kann sich der Proxy mit jeder Aurora-DB-Instance verbinden, die zur Writer-Instance im Cluster hochgestuft wird. Die der Aurora-DB-Cluster, die/der mit einem Proxy verknüpft ist, wird als *Ziel* dieses Proxys bezeichnet. Wenn Sie einen Proxy über die Konsole erstellen, erstellt RDS-Proxy auch die entsprechende Zielgruppe und registriert die zugeordneten Ziele automatisch. 

 Eine *Engine-Familie* ist eine verwandte Gruppe von Datenbank-Engines, die dasselbe DB-Protokoll verwenden. Sie wählen die Engine-Familie für jeden Proxy, den Sie erstellen. 

## Verbindungspooling
<a name="rds-proxy-connection-pooling"></a>

Jeder Proxy führt ein Verbindungspooling für die Writer- und Reader-Instance der zugehörigen Aurora-DB aus. Das *Verbindungspooling* ist eine Optimierung, die den Overhead reduziert, der mit dem Öffnen und Beenden von Verbindungen und dem Vorhandensein vieler aktiver Verbindungen gleichzeitig verbunden ist. Dieser Overhead umfasst den Arbeitsspeicher, der für die Verarbeitung jeder neuen Verbindung erforderlich ist. Es ist außerdem CPU-Overhead erforderlich, um jede Verbindung zu schließen und eine neue zu öffnen. Beispiele hierfür sind Transport Layer Security/Secure Sockets Layer (TLS/SSL), Handshaking, Authentifizierung, Verhandlungsmöglichkeiten usw. Das Verbindungspooling vereinfacht Ihre Anwendungslogik. Sie müssen keinen Anwendungscode schreiben, um die Anzahl gleichzeitig geöffneter Verbindungen zu minimieren. 

 Jeder Proxy führt darüber hinaus Multiplexing von Verbindungen aus, auch bekannt als Wiederverwendung von Verbindungen. Beim *Multiplexing* führt RDS-Proxy alle Operationen für eine Transaktion mit einer zugrunde liegenden Datenbankverbindung aus. RDS kann dann eine andere Verbindung für die nächste Transaktion verwenden. Sie können viele gleichzeitige Verbindungen zum Proxy öffnen und der Proxy hält eine geringere Anzahl von Verbindungen zur DB-Instance oder zum Cluster offen. Dadurch wird der Speicher-Overhead für Verbindungen auf dem Datenbankserver weiter minimiert. Diese Technik reduziert auch die Wahrscheinlichkeit des Fehlers "zu viele Verbindungen". 

## RDS-Proxy-Sicherheit
<a name="rds-proxy-security"></a>

 RDS Proxy verwendet die vorhandenen RDS-Sicherheitsmechanismen wie TLS/SSL und AWS Identity and Access Management (IAM). Allgemeine Informationen zu diesen Sicherheitsfunktionen finden Sie unter [Sicherheit in Amazon Aurora](UsingWithRDS.md). Sie sollten sich außerdem unbedingt damit vertraut machen, wie Aurora mit Authentifizierung, Autorisierung und anderen Sicherheitsbereichen arbeitet. 

 RDS-Proxy kann als zusätzliche Sicherheitsebene zwischen Clientanwendungen und der zugrunde liegenden Datenbank fungieren. Sie können beispielsweise über TLS 1.3 eine Verbindung zum Proxy herstellen, selbst wenn die zugrunde liegende DB-Instance eine ältere Version von TLS unterstützt. Sie können mithilfe einer IAM-Rolle eine Verbindung zum Proxy herstellen, auch wenn der Proxy mithilfe der Authentifizierungsmethode Datenbankbenutzer und Kennwort eine Verbindung zur Datenbank herstellt. Mit dieser Technik können Sie hohe Authentifizierungsanforderungen für Datenbankanwendungen ohne einen kostspieligen Migrationsaufwand für die DB-Instances selbst erzwingen. 

Mit RDS Proxy können Sie die folgenden Authentifizierungsmethoden verwenden:
+ **Anmeldeinformationen für die Datenbank**
+ **Standard-IAM-Authentifizierung**
+ **End-to-end IAM-Authentifizierung**

### Verwenden von IAM mit RDS-Proxy
<a name="rds-proxy-security.IAM"></a>

RDS Proxy bietet zwei Methoden der IAM-Authentifizierung:
+ **Standard-IAM-Authentifizierung**: Erzwingen Sie die IAM-Authentifizierung für Verbindungen zu Ihrem Proxy, während der Proxy mithilfe der in Secrets Manager gespeicherten Anmeldeinformationen eine Verbindung zur Datenbank herstellt. Dadurch wird die IAM-Authentifizierung für den Datenbankzugriff erzwungen, auch wenn die Datenbanken die native Passwortauthentifizierung verwenden. Der Proxy ruft die Datenbankanmeldedaten von Secrets Manager ab und wickelt die Authentifizierung gegenüber der Datenbank im Namen Ihrer Anwendung ab.
+ **End-to-end IAM-Authentifizierung**: Erzwingt die IAM-Authentifizierung für Verbindungen direkt von Ihren Anwendungen zu Ihrer Datenbank über den Proxy. End-to-end Die IAM-Authentifizierung vereinfacht Ihre Sicherheitskonfiguration und vermeidet die Verwaltung von Datenbankanmeldedaten in Secrets Manager. Diese zusätzliche Sicherheitsebene erzwingt eine IAM-basierte Zugriffskontrolle von der Client-Anwendung zur Datenbank.

Um die Standard-IAM-Authentifizierung zu verwenden, konfigurieren Sie Ihren Proxy so, dass Secrets Manager Manager-Geheimnisse für die Authentifizierung verwendet werden, und aktivieren Sie die IAM-Authentifizierung für Client-Verbindungen. Ihre Anwendungen authentifizieren sich beim Proxy mithilfe von IAM, während sich der Proxy mit den von Secrets Manager abgerufenen Anmeldeinformationen gegenüber der Datenbank authentifiziert.

Um die end-to-end IAM-Authentifizierung zu verwenden, konfigurieren Sie Ihren Proxy so, dass er die IAM-Authentifizierung verwendet, wenn Sie das Standardauthentifizierungsschema bei der Erstellung oder Änderung Ihres Proxys festlegen.

Für die end-to-end IAM-Authentifizierung müssen Sie die dem Proxy zugeordnete IAM-Rolle aktualisieren, um die Berechtigung zu erteilen. `rds-db:connect` Mit der end-to-end IAM-Authentifizierung entfällt die Notwendigkeit, einzelne Datenbankbenutzer über Secrets Manager Secrets beim Proxy zu registrieren.

### Verwendung TLS/SSL mit RDS Proxy
<a name="rds-proxy-security.tls"></a>

 Sie können mithilfe des TLS/SSL Protokolls eine Verbindung zum RDS-Proxy herstellen. 

**Anmerkung**  
 RDS Proxy verwendet Zertifikate von AWS Certificate Manager (ACM). Wenn Sie RDS-Proxy verwenden, müssen Sie keine Amazon-RDS-Zertifikate herunterladen oder Anwendungen aktualisieren, die RDS-Proxy-Verbindungen verwenden.

Um TLS für alle Verbindungen zwischen dem Proxy und der Datenbank zu erzwingen, können Sie beim Erstellen eines Proxys die Einstellung **Transport Layer Security erforderlich** angeben, wenn Sie einen Proxy in der AWS-Managementkonsole erstellen oder ändern. 

RDS Proxy kann auch sicherstellen, dass Ihre Sitzung TLS/SSL zwischen Ihrem Client und dem RDS-Proxy-Endpunkt verwendet wird. Damit RDS-Proxy so verfährt, müssen Sie die clientseitige Anforderung festlegen. Für SSL-Verbindungen mit einer Datenbank unter Verwendung von RDS-Proxy werden keine SSL-Sitzungsvariablen festgelegt. 
+  Geben Sie für Aurora MySQL die clientseitige Anforderung mit dem Parameter `--ssl-mode` an, wenn Sie den Befehl `mysql` ausführen. 
+  Geben Sie für Aurora PostgreSQL `sslmode=require` als Teil der `conninfo`-Zeichenfolge an, wenn Sie den Befehl `psql` ausführen. 

RDS-Proxy unterstützt die TLS-Protokollversionen 1.0, 1.1 und 1.2. Sie können eine Verbindung mit dem Proxy herstellen, indem Sie eine höhere TLS-Version verwenden, als Sie in der zugrunde liegenden Datenbank verwenden. 

Standardmäßig richten Client-Programme eine verschlüsselte Verbindung mit RDS-Proxy ein, wobei weitere Kontrolle über die Option `--ssl-mode` verfügbar ist. Clientseitig unterstützt RDS-Proxy alle SSL-Modi. 

 Für den Client sind die SSL-Modi die folgenden: 

**PREFERRED**  
 SSL ist die erste Wahl, aber nicht erforderlich. 

**DISABLED**  
 SSL ist nicht zulässig. 

**REQUIRED**  
 SSL erzwingen. 

**VERIFY\$1CA**  
 SSL erzwingen und die Zertifizierungsstelle (CA) überprüfen. 

**VERIFY\$1IDENTITY**  
 SSL erzwingen und die CA sowie den CA-Hostname überprüfen. 

 Bei Verwendung eines Clients mit `--ssl-mode` `VERIFY_CA` oder `VERIFY_IDENTITY`, geben Sie die Option `--ssl-ca` an, die auf eine CA im `.pem`-Format verweist. Laden Sie für die zu verwendende `.pem` Datei alle Root-CA PEMs von [Amazon Trust Services](https://www.amazontrust.com/repository/) herunter und platzieren Sie sie in einer einzigen `.pem` Datei.

 RDS-Proxy verwendet Platzhalterzertifikate, die sowohl für eine Domain als auch für deren Unterdomains gelten. Wenn Sie den `mysql`-Client für die Verbindung mit dem SSL-Modus `VERIFY_IDENTITY` verwenden, müssen Sie derzeit den MySQL 8.0-kompatiblen Befehl `mysql` verwenden. 

## Failover
<a name="rds-proxy-failover"></a>

 *Failover* ist eine Funktion mit hoher Verfügbarkeit, die eine Datenbank-Instance durch eine andere ersetzt, wenn die ursprüngliche Instance nicht verfügbar ist. Ein Failover kann aufgrund eines Problems mit einer Datenbank-Instance auftreten. Er kann aber auch Teil normaler Wartungsverfahren sein, z. B. während eines Datenbank-Upgrades. Failover gilt für Aurora-DB-Cluster mit einer oder mehreren Reader-Instances zusätzlich zur Writer-Instance. 

 Die Verbindung über einen Proxy macht Ihre Anwendungen widerstandsfähiger gegenüber einem Datenbank-Failover. Wenn die ursprüngliche DB-Instance nicht verfügbar ist, stellt RDS-Proxy eine Verbindung mit der Standby-Datenbank her, ohne dass die inaktiven Anwendungsverbindungen verworfen werden. Dadurch wird der Failover-Prozess beschleunigt und vereinfacht. Dies ist mit weniger Störungen für Ihre Anwendung verbunden als ein typisches Neustart- oder Datenbankproblem. 

 Ohne RDS-Proxy ist ein Failover mit einem kurzen Ausfall verbunden. Während des Ausfalls können Sie keine Schreibvorgänge für diese Datenbank ausführen. Alle vorhandenen Datenbankverbindungen werden unterbrochen und Ihre Anwendung muss sie erneut öffnen. Die Datenbank wird für neue Verbindungen und Schreiboperationen verfügbar, wenn eine schreibgeschützte DB-Instance anstelle einer nicht verfügbaren Instance hochgestuft wird. 

 Während DB-Failovers akzeptiert RDS-Proxy weiterhin Verbindungen mit derselben IP-Adresse und leitet Verbindungen automatisch an die neue primäre DB-Instance weiter. Clients, die eine Verbindung über RDS-Proxy herstellen, sind nicht anfällig für Folgendes: 
+  DNS (Domain Name System)-Ausbreitungsverzögerungen beim Failover. 
+  Lokale DNS-Zwischenspeicherung. 
+  Verbindungszeitüberschreitungen. 
+  Unsicherheit darüber, welche DB-Instance der aktuelle Writer ist. 
+  Warten auf eine Abfrageantwort eines früheren Writers, die nicht verfügbar wurde, ohne Verbindungen zu schließen. 

 Bei Anwendungen, die über eigene Verbindungspools verfügen, sorgt RDS-Proxy dafür, dass die meisten Verbindungen bei Failovers oder anderen Unterbrechungen aktiv bleiben. Nur Verbindungen, die sich mitten in einer Transaktion oder SQL-Anweisung befinden, werden unterbrochen. RDS-Proxy akzeptiert sofort neue Verbindungen. Wenn der Datenbank-Schreiber nicht verfügbar ist, werden eingehende Anfragen in RDS-Proxy in die Warteschlange gesetzt. 

 Für Anwendungen, die nicht über eigene Verbindungspools verfügen, bietet RDS-Proxy schnellere Verbindungsraten und mehr offene Verbindungen. Es reduziert den teuren Overhead, der mit dem häufigen Herstellen neuer Verbindungen über die Datenbank verbunden ist. Hierfür werden Datenbankverbindungen wiederverwendet, die im RDS-Proxy-Verbindungspool verwaltet werden. Dieser Ansatz ist besonders wichtig für TLS-Verbindungen, die mit erheblichen Setupkosten verbunden sind. 

## Transaktionen
<a name="rds-proxy-transactions"></a>

 Alle Anweisungen innerhalb einer einzelnen Transaktion verwenden immer dieselbe zugrunde liegende Datenbankverbindung. Die Verbindung wird für eine andere Sitzung verfügbar, wenn die Transaktion beendet wird. Die Verwendung der Transaktion als Granularitätseinheit hat folgende Auswirkungen: 
+  Die Wiederverwendung von Verbindungen kann nach jeder einzelnen Anweisung erfolgen, wenn die Einstellung `autocommit` von Aurora MySQL aktiviert ist. 
+  Ist die Einstellung `autocommit` deaktiviert, beginnt im Gegensatz dazu die erste Anweisung, die Sie in einer Sitzung ausgeben, eine neue Transaktion. Angenommen, Sie geben die Sequenz `SELECT`, `INSERT`, `UPDATE` und andere Data Manipulation Language (DML)-Anweisungen ein. In diesem Fall wird die Wiederverwendung von Verbindungen erst vorgenommen, wenn Sie einen `COMMIT`, `ROLLBACK` ausgeben oder die Transaktion anderweitig beenden. 
+  Die Eingabe einer DDL-Anweisung (Data Definition Language) bewirkt, dass die Transaktion beendet wird, nachdem diese Anweisung abgeschlossen wurde. 

 RDS-Proxy erkennt über das Netzwerkprotokoll, das von der Datenbank-Clientanwendung verwendet wird, wenn eine Transaktion beendet wird. Die Transaktionserkennung beruht nicht auf Schlüsselwörtern wie beispielsweise `COMMIT` oder `ROLLBACK`, die im Text der SQL-Anweisung angezeigt werden. 

 In einigen Fällen kann RDS-Proxy eine Datenbankanforderung erkennen, die es unpraktisch macht, Ihre Sitzung auf eine andere Verbindung zu verschieben. In diesen Fällen wird das Multiplexing für diese Verbindung während der verbleibenden Sitzung deaktiviert. Die gleiche Regel gilt, wenn RDS-Proxy nicht sicher sein kann, dass das Multiplexing für die Sitzung praktikabel ist. Diese Operation wird als *Fixierung (Pinning)* bezeichnet. Hinweise zum Erkennen und Minimieren von Fixierungen finden Sie unter [Vermeiden von Pinning beim RDS-Proxy](rds-proxy-pinning.md). 

# Erste Schritte mit RDS-Proxy
<a name="rds-proxy-setup"></a>

Verwenden Sie die Informationen auf den folgenden Seiten, um zugehörige Sicherheitsoptionen einzurichten, zu verwalten [Amazon RDS-Proxy für Aurora](rds-proxy.md) und festzulegen. Diese Sicherheitsoptionen steuern, wer auf jeden Proxy zugreifen kann und wie jeder Proxy eine Verbindung mit DB-Instances herstellt.

Wenn Sie mit RDS-Proxy noch nicht vertraut sind, empfehlen wir, den Seiten in der Reihenfolge zu folgen, in der sie angezeigt werden. 

**Topics**
+ [Einrichten der Netzwerkvoraussetzungen für RDS-Proxy](rds-proxy-network-prereqs.md)
+ [Datenbankanmeldedaten für RDS Proxy einrichten](rds-proxy-secrets-arns.md)
+ [Konfigurieren der IAM-Authentifizierung für RDS-Proxy](rds-proxy-iam-setup.md)
+ [Erstellen eines Proxys für Amazon Aurora](rds-proxy-creating.md)
+ [Anzeigen eines Proxys](rds-proxy-viewing.md)
+ [Verbinden mit einer Datenbank über RDS-Proxy](rds-proxy-connecting.md)

# Einrichten der Netzwerkvoraussetzungen für RDS-Proxy
<a name="rds-proxy-network-prereqs"></a>

 Die Verwendung von RDS-Proxy erfordert eine gemeinsame Virtual Private Cloud (VPC) zwischen Ihrem Aurora-DB-Cluster und RDS-Proxy. Diese VPC sollte über mindestens zwei Subnetze verfügen, die sich in verschiedenen Availability Zones befinden. Ihr Konto kann entweder der Eigentümer dieser Subnetze sein oder sie mit anderen Konten teilen. Informationen zur VPC-Sharing finden Sie unter [Arbeiten mit Shared VPCs](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-sharing.html). 

Für den IPv6 Support ist eine zusätzliche Netzwerkkonfiguration erforderlich:
+ **IPv6 Endpunkt-Netzwerktypen** — Ihre VPC und Subnetze müssen für die Unterstützung konfiguriert sein. IPv6 Dazu gehört die Zuweisung von IPv6 CIDR-Blöcken zu Ihrer VPC und Ihren Subnetzen.
+ **Dual-Stack-Endpunkt-Netzwerktypen** — Ihre VPC und Subnetze müssen beide IPv4 und die Adressierung unterstützen. IPv6 
+ **IPv6 Netzwerktypen für Zielverbindungen** — Ihre Datenbank muss für den Dual-Stack-Modus konfiguriert sein, um IPv6 Verbindungen vom Proxy aus zu unterstützen.

Ihre Client-Anwendungsressourcen wie Amazon EC2, Lambda oder Amazon ECS können sich in derselben VPC wie der Proxy befinden. Sie können sich auch in einer vom Proxy getrennten VPC befinden. Wenn Sie eine Verbindung mit Aurora-DB-Clustern hergestellt haben, verfügen Sie bereits über die erforderlichen Netzwerkressourcen. 

**Topics**
+ [Abrufen von Informationen zu Ihren Subnetzen](#rds-proxy-network-prereqs.subnet-info)
+ [Planen der Kapazität von IP-Adressen](#rds-proxy-network-prereqs.plan-ip-address)

## Abrufen von Informationen zu Ihren Subnetzen
<a name="rds-proxy-network-prereqs.subnet-info"></a>

 Wenn Sie Aurora zum ersten Mal verwenden, können Sie sich mit den Grundlagen der Herstellung einer Verbindung mit einer Datenbank vertraut machen, indem Sie die in [Einrichten Ihrer Umgebung für Amazon Aurora](CHAP_SettingUp_Aurora.md) beschriebenen Verfahren befolgen. Sie können auch dem Tutorial in [Erste Schritte mit Amazon Aurora](CHAP_GettingStartedAurora.md) folgen. 

Um einen Proxy zu erstellen, müssen Sie die Subnetze und die VPC angeben, in denen der Proxy arbeitet. Das folgende Linux-Beispiel zeigt AWS CLI Befehle, die die Subnetze VPCs und Subnetze untersuchen, die Ihrem gehören. AWS-Konto Insbesondere übergeben Sie das Subnetz IDs als Parameter, wenn Sie einen Proxy mit der CLI erstellen. 

```
aws ec2 describe-vpcs
aws ec2 describe-internet-gateways
aws ec2 describe-subnets --query '*[].[VpcId,SubnetId]' --output text | sort
```

Das folgende Linux-Beispiel zeigt AWS CLI Befehle zur Bestimmung des Subnetzes, das einem bestimmten Aurora DB-Cluster einer bestimmten entspricht. 

Bei einem Aurora-Cluster finden Sie zuerst die ID für eine der zugehörigen DB-Instances. Sie können das von dieser DB-Instance IDs verwendete Subnetz extrahieren. Untersuchen Sie dazu die verschachtelten Felder innerhalb der Attribute `DBSubnetGroup` und `Subnets` in der Describe-Ausgabe für die DB-Instance. Sie geben einige oder alle dieser Subnetze an, IDs wenn Sie einen Proxy für diesen Datenbankserver einrichten.

```
$ # Find the ID of any DB instance in the cluster.
$  aws rds describe-db-clusters --db-cluster-identifier my_cluster_id --query '*[].[DBClusterMembers]|[0]|[0][*].DBInstanceIdentifier' --output text
```

```
my_instance_id
instance_id_2
instance_id_3
```

Nachdem Sie die ID der DB-Instance gefunden haben, untersuchen Sie die zugehörige VPC, um ihre Subnetze zu finden. Das folgende Linux-Beispiel zeigt wie es geht.

```
$ #From the DB instance, trace through the DBSubnetGroup and Subnets to find the subnet IDs.
$ aws rds describe-db-instances --db-instance-identifier my_instance_id --query '*[].[DBSubnetGroup]|[0]|[0]|[Subnets]|[0]|[*].SubnetIdentifier' --output text
```

```
subnet_id_1
subnet_id_2
subnet_id_3
...
```

```
$ #From the DB instance, find the VPC.
$ aws rds describe-db-instances --db-instance-identifier my_instance_id --query '*[].[DBSubnetGroup]|[0]|[0].VpcId' --output text
```

```
my_vpc_id
```

```
$ aws ec2 describe-subnets --filters Name=vpc-id,Values=my_vpc_id --query '*[].[SubnetId]' --output text
```

```
subnet_id_1
subnet_id_2
subnet_id_3
subnet_id_4
subnet_id_5
subnet_id_6
```

## Planen der Kapazität von IP-Adressen
<a name="rds-proxy-network-prereqs.plan-ip-address"></a>

RDS Proxy passt seine Kapazität automatisch an die Konfiguration der bei ihm registrierten DB-Instances an. Bei bereitgestellten Instances wird dies durch die Instance-Größe und bei Aurora Serverless v2 Instances durch die maximale ACU-Kapazität bestimmt. Bestimmte Operationen erfordern möglicherweise auch zusätzliche Kapazität, z. B. die Vergrößerung einer registrierten Datenbank oder interne Wartungsvorgänge für den RDS-Proxy. Bei diesen Vorgängen benötigt Ihr Proxy möglicherweise mehr IP-Adressen, um die zusätzliche Kapazität bereitzustellen. Mit diesen zusätzlichen Adressen kann Ihr Proxy skaliert werden, ohne Ihre Workload zu beeinträchtigen. Ein Mangel an freien IP-Adressen in Ihren Subnetzen verhindert, dass ein Proxy hochskaliert wird. Dies kann zu höheren Abfragelatenzen oder Verbindungsfehlern bei Clients führen. RDS benachrichtigt Sie durch das Ereignis `RDS-EVENT-0243`, wenn in Ihren Subnetzen nicht genügend freie IP-Adressen vorhanden sind. Weitere Informationen zu diesem Ereignis finden Sie unter [Arbeiten mit RDS-Proxy-EreignissenArbeiten mit RDS-Proxy-Ereignissen](rds-proxy.events.md).

Reservieren Sie die empfohlene Mindestanzahl von IP-Adressen in Ihren Subnetzen für Ihren Proxy basierend auf den Klassengrößen der DB-Instance.


|  DB-Instance-Klasse  |  Mindestanzahl freier IP-Adressen  | 
| --- | --- | 
|  db.\$1.xlarge oder kleiner   |  10  | 
|  db.\$1.2xlarge   |  15  | 
|  db.\$1.4xlarge   |  25  | 
|  db.\$1.8xlarge   |  45  | 
|  qdb.\$1.12xlarge   |  60  | 
|  db.\$1.16xlarge   |  75  | 
|  db.\$1.24xlarge   |  110  | 

Reservieren Sie Aurora Serverless v2 nämlich die folgende Mindestanzahl an freien IP-Adressen in Ihren Subnetzen für Ihren Proxy, basierend auf der maximalen ACU-Kapazität.


| `Maximum ACU Capacity` |  Mindestanzahl freier IP-Adressen  | 
| --- | --- | 
|  16 oder kleiner   |  10  | 
|  32  |  15  | 
|  64  |  25  | 
|  96  |  30  | 
|  128  |  40  | 
|  160  |  50  | 
|  192  |  55  | 
|  224  |  65  | 
|  256  |  75  | 

**Anmerkung**  
RDS Proxy verbraucht nicht mehr als 215 IP-Adressen für jeden Proxy in einer VPC.

RDS Proxy benötigt mindestens 10 IP-Adressen für Ihre Aurora-Datenbank. Bei der empfohlenen Anzahl von IP-Adressen handelt es sich um eine Schätzung für einen Proxy, der nur über einen Standardendpunkt verfügt. Für jeden weiteren benutzerdefinierten Endpunkt empfehlen wir, drei weitere IP-Adressen zu reservieren. Wir empfehlen, dass Sie für jede Aurora-Reader-Instance zusätzliche IP-Adressen reservieren, wie in der Tabelle angegeben, basierend auf der maximalen Größe dieses Readers ACUs für das Aurora Serverless v2 Ziel oder der DB-Instance-Größe für ein bereitgestelltes Ziel.

Um die erforderlichen IP-Adressen für einen Proxy zu schätzen, der einem Aurora-DB-Cluster zugeordnet ist, mit:
+ 1 bereitgestellte Writer-Instance in der Größe `db.r5.8xlarge` und 1 bereitgestellte Reader-Instance in der Größe. `db.r5.2xlarge`
+ Der an diesen Cluster angehängte Proxy hat einen Standardendpunkt und einen benutzerdefinierten Endpunkt mit der Rolle „Nur Lesen“.

In diesem Fall benötigt der Proxy ungefähr 63 freie IP-Adressen (45 für die Writer-Instance, 15 für die Reader-Instance und 3 für den zusätzlichen benutzerdefinierten Endpunkt).

Um die erforderlichen IP-Adressen für einen Proxy zu schätzen, der einem Aurora-DB-Cluster zugeordnet ist, der über Folgendes verfügt: 
+ 1 Aurora Serverless v2 Writer-Instance mit einer maximalen Kapazität von 256 ACUs und 1 Serverless v2-Reader-Instance mit einer maximalen Kapazität von 192 ACUs.
+ Der Proxy, der an diesen Cluster angehängt ist, hat den Standardendpunkt und einen benutzerdefinierten Endpunkt mit der Rolle „Nur Lesen“.

In diesem Fall benötigt der Proxy ungefähr 133 freie IP-Adressen (75 für die Writer-Instanz, 55 für die Reader-Instanz und 3 für den zusätzlichen benutzerdefinierten Endpunkt).

Um die erforderlichen IP-Adressen für einen Proxy zu schätzen, der einem Aurora-Cluster zugeordnet ist, der über Folgendes verfügt: 
+ 1 bereitgestellte Writer-Instance mit der DB-Instance-Größe db.r5.4xlarge und 1 Serverless v2-Reader-Instance mit einer maximalen Kapazität von 64. ACUs
+ Der Proxy, der an diesen Cluster angehängt ist, hat den Standardendpunkt und einen benutzerdefinierten Endpunkt mit der Rolle „Nur Lesen“. 

In diesem Fall benötigt der Proxy ungefähr 53 freie IP-Adressen (25 für die Writer-Instanz, 25 für die Reader-Instanz und 3 für den zusätzlichen benutzerdefinierten Endpunkt). 

Um die erforderlichen IP-Adressen für einen Proxy zu schätzen, der einem Aurora-DB-Cluster zugeordnet ist, der über Folgendes verfügt:
+ 1 bereitgestellte Writer-Instance der Größe db.r5.24xlarge und 3 bereitgestellte Reader-Instance der Größe db.r5.8xlarge. 
+ Der Proxy, der mit diesem DB-Cluster verbunden ist, verfügt über den Standardendpunkt und 1 benutzerdefinierten Endpunkt mit der schreibgeschützten Rolle. 

In diesem Fall benötigt der Proxy 215 freie IP-Adressen. Berechnungen deuten zwar auf 248 IPs (110 \$1 (3\$145) \$1 3) hin, aber der RDS-Proxy verbraucht nicht mehr als 215 IP-Adressen für jeden Proxy in einer VPC.

# Datenbankanmeldedaten für RDS Proxy einrichten
<a name="rds-proxy-secrets-arns"></a>

RDS Proxy in Amazon RDS verwendet AWS Secrets Manager , um Datenbankanmeldedaten sicher zu speichern und zu verwalten. Anstatt Anmeldeinformationen in Ihre Anwendung einzubetten, verknüpfen Sie einen Proxy mit einem Secrets-Manager-Secret, das die erforderlichen Authentifizierungsdetails enthält. Sie erstellen ein separates Secrets Manager-Secret für jedes Datenbankbenutzerkonto, mit dem der Proxy auf der dem Aurora-DB-Cluster eine Verbindung herstellt.

Alternativ können Sie den RDS-Proxy so konfigurieren, dass er die end-to-end IAM-Authentifizierung verwendet, sodass keine Datenbankanmeldedaten in Secrets Manager gespeichert werden müssen. RDS Proxy verwendet die IAM-Authentifizierung für beide Verbindungen client-to-proxy. proxy-to-database Dies bietet eine vollständig integrierte IAM-basierte Authentifizierungslösung, für die keine Verwaltung von Geheimnissen oder Passwörtern erforderlich ist. Informationen zum Hinzufügen eines neuen IAM-DB-Benutzers finden Sie unter. [Erstellen eines Datenbankkontos mithilfe der IAM-Authentifizierung](UsingWithRDS.IAMDBAuth.DBAccounts.md)

**Topics**
+ [Erstellen von Secrets zur Verwendung mit RDS-Proxy](#rds-proxy-secrets-create)

## Erstellen von Secrets zur Verwendung mit RDS-Proxy
<a name="rds-proxy-secrets-create"></a>

Bevor Sie einen Proxy erstellen, müssen Sie zunächst mindestens ein Secret erstellen, in dem Ihre Datenbankanmeldeinformationen gespeichert werden.

### Konsole
<a name="rds-proxy-secrets-create-console"></a>

**So erstellen Sie ein Secret**

1. Öffnen Sie die Secrets Manager Manager-Konsole unter [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Wählen Sie **Store a new secret** (Ein neues Secret speichern).

1. Wählen Sie **Anmeldeinformationen für Amazon-RDS-Datenbank** aus.

1. Geben Sie einen Benutzernamen und ein Passwort ein. Die von Ihnen eingegebenen Anmeldeinformationen müssen mit den Anmeldeinformationen eines Datenbankbenutzers übereinstimmen, der in der zugehörigen RDS-Datenbank vorhanden ist. RDS-Proxy verwendet diese Anmeldeinformationen, um im Namen von Anwendungen Verbindungen zur Datenbank zu authentifizieren und herzustellen.

   Wenn eine Unstimmigkeit vorliegt, können Sie das Secret so aktualisieren, dass es mit dem Datenbankkennwort übereinstimmt. Solange Sie das Secret nicht aktualisieren, schlagen Verbindungsversuche über den Proxy fehl, Verbindungen, die andere gültige geheime Schlüssel verwenden, funktionieren aber dennoch.
**Anmerkung**  
Für RDS für SQL Server erfordert RDS-Proxy unabhängig von den Sortierungseinstellungen der DB-Instance ein Secret in Secrets Manager, bei dem Groß- und Kleinschreibung beachtet wird. Wenn Ihre Anwendung Benutzernamen mit unterschiedlicher Groß- und Kleinschreibung wie „Admin“ und „admin“ zulässt, müssen Sie für jeden separate Secrets erstellen. RDS-Proxy unterstützt keine Benutzernamenauthentifizierung ohne Berücksichtigung der Groß-/Kleinschreibung zwischen Client und Proxy.  
Weitere Informationen über die Sortierung in SQL Server finden Sie in der Dokumentation für [Microsoft SQL Server](https://docs.microsoft.com/en-us/sql/relational-databases/collations/collation-and-unicode-support?view=sql-server-ver16).

1. Wählen Sie für **Datenbank** die Amazon-RDS-Datenbank aus, auf die das Secret zugreift.

1. Geben Sie weitere Einstellungen für das Secret ein und wählen Sie dann **Speichern** aus. Umfassende Anleitungen finden Sie unter [Erstellen eines AWS Secrets Manager -Secrets](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) im *Benutzerhandbuch für AWS Secrets Manager *. 

### AWS CLI
<a name="rds-proxy-secrets-create-cli"></a>

Wenn Sie über den einen Proxy erstellen AWS CLI, geben Sie die Amazon-Ressourcennamen (ARNs) der entsprechenden Geheimnisse an. Diesen Vorgang führen Sie für alle DB-Benutzerkonten aus, auf die der Proxy zugreifen kann. In der AWS-Managementkonsole wählen Sie die Geheimnisse anhand ihrer aussagekräftigen Namen aus.
+ Verwenden Sie den Befehl [create-secret](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/create-secret.html), um ein Secrets Manager-Secret für die Verwendung mit RDS-Proxy zu erstellen:

  ```
  aws secretsmanager create-secret \
    --name "secret_name" \
    --description "secret_description" \
    --region region_name \
    --secret-string '{"username":"db_user","password":"db_user_password"}'
  ```
+ Sie können auch einen benutzerdefinierten Schlüssel erstellen, um Ihr Secrets Manager-Secret zu verschlüsseln. Im folgenden Beispiel wird ein Beispielschlüssel erstellt.

  ```
  aws kms create-key --description "test-key" --policy '{
    "Id":"kms-policy",
    "Version": "2012-10-17",		 	 	 
    "Statement":
      [
        {
          "Sid":"Enable IAM User Permissions",
          "Effect":"Allow",
          "Principal":{"AWS":"arn:aws:iam::account_id:root"},
          "Action":"kms:*","Resource":"*"
        },
        {
          "Sid":"Allow access for Key Administrators",
          "Effect":"Allow",
          "Principal":
            {
              "AWS":
                ["$USER_ARN","arn:aws:iam:account_id::role/Admin"]
            },
          "Action":
            [
              "kms:Create*",
              "kms:Describe*",
              "kms:Enable*",
              "kms:List*",
              "kms:Put*",
              "kms:Update*",
              "kms:Revoke*",
              "kms:Disable*",
              "kms:Get*",
              "kms:Delete*",
              "kms:TagResource",
              "kms:UntagResource",
              "kms:ScheduleKeyDeletion",
              "kms:CancelKeyDeletion"
            ],
          "Resource":"*"
        },
        {
          "Sid":"Allow use of the key",
          "Effect":"Allow",
          "Principal":{"AWS":"$ROLE_ARN"},
          "Action":["kms:Decrypt","kms:DescribeKey"],
          "Resource":"*"
        }
      ]
  }'
  ```

 Mit den folgenden Befehlen werden beispielsweise Secrets Manager-Secrets für zwei Datenbankbenutzer erstellt: 

```
aws secretsmanager create-secret \
  --name secret_name_1 --description "db admin user" \
  --secret-string '{"username":"admin","password":"choose_your_own_password"}'

aws secretsmanager create-secret \
  --name secret_name_2 --description "application user" \
  --secret-string '{"username":"app-user","password":"choose_your_own_password"}'
```

Verwenden Sie die folgenden Befehle, um diese mit Ihrem benutzerdefinierten AWS KMS Schlüssel verschlüsselten Geheimnisse zu erstellen:

```
aws secretsmanager create-secret \
  --name secret_name_1 --description "db admin user" \
  --secret-string '{"username":"admin","password":"choose_your_own_password"}' \
  --kms-key-id arn:aws:kms:us-east-2:account_id:key/key_id

aws secretsmanager create-secret \
  --name secret_name_2 --description "application user" \
  --secret-string '{"username":"app-user","password":"choose_your_own_password"}' \
  --kms-key-id arn:aws:kms:us-east-2:account_id:key/key_id
```

Verwenden Sie den Befehl [list-secrets, um die Geheimnisse](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/list-secrets.html) zu sehen, die Ihrem AWS Konto gehören:

```
aws secretsmanager list-secrets
```

Wenn Sie mit der CLI einen Proxy erstellen, übergeben Sie die Amazon-Ressourcennamen (ARNs) eines oder mehrerer Secrets an den `--auth` Parameter. Das folgende Beispiel zeigt, wie Sie einen Bericht nur mit dem Namen und dem ARN jedes Secrets Ihres AWS -Kontos erstellen. In diesem Beispiel wird der `--output table` Parameter verwendet, der in AWS CLI Version 2 verfügbar ist. Wenn Sie AWS CLI Version 1 verwenden, verwenden Sie `--output text` stattdessen. 

```
aws secretsmanager list-secrets --query '*[].[Name,ARN]' --output table
```

Verwenden Sie den [get-secret-value](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/get-secret-value.html)Befehl, um zu überprüfen, ob der geheime Schlüssel die richtigen Anmeldeinformationen im richtigen Format enthält. Ersetzen Sie `your_secret_name` durch den Kurznamen oder den ARN des Secrets.

```
aws secretsmanager get-secret-value --secret-id your_secret_name
```

Die Ausgabe enthält eine Zeile mit einem JSON-codierten Wert, der dem folgenden ähnelt:

```
...
"SecretString": "{\"username\":\"your_username\",\"password\":\"your_password\"}",
...
```

# Konfigurieren der IAM-Authentifizierung für RDS-Proxy
<a name="rds-proxy-iam-setup"></a>

Um die AWS Identity and Access Management (IAM-) Authentifizierung für RDS Proxy in Amazon RDS einzurichten, erstellen und konfigurieren Sie eine IAM-Richtlinie, die die erforderlichen Berechtigungen gewährt. 

In diesem Thema werden die Schritte zur Konfiguration der IAM-Authentifizierung für den RDS-Proxy beschrieben, einschließlich der Erstellung der erforderlichen IAM-Richtlinie und deren Anfügung an eine IAM-Rolle. 

**Tipp**  
Dieses Verfahren ist nur erforderlich, wenn Sie Ihre eigene IAM-Rolle erstellen möchten. Andernfalls kann RDS die erforderliche Rolle automatisch erstellen, wenn Sie den Proxy einrichten, sodass Sie diese Schritte überspringen können.

## Voraussetzungen
<a name="rds-proxy-iam-setup-prereqs"></a>

Stellen Sie vor der Einrichtung der IAM-Authentifizierung für RDS-Proxy sicher, dass Sie über Folgendes verfügen:
+ **AWS Secrets Manager** – Mindestens ein gespeichertes Secret, das Datenbankanmeldedaten enthält. Anleitungen zum Erstellen von Secrets finden Sie unter [Datenbankanmeldedaten für RDS Proxy einrichten](rds-proxy-secrets-arns.md).

  Dies ist nicht erforderlich, wenn Sie die end-to-end IAM-Authentifizierung verwenden.
+ **IAM-Berechtigungen** – Eine IAM-Rolle oder ein IAM-Benutzer mit Berechtigungen zum Erstellen und Verwalten von IAM-Richtlinien, -Rollen und -Secrets in AWS Secrets Manager.

## Eine IAM-Richtlinie für end-to-end die IAM-Authentifizierung erstellen
<a name="rds-proxy-iam-setup-e2e-steps"></a>

Wenn Sie die end-to-end IAM-Authentifizierung verwenden, stellt RDS Proxy mithilfe der IAM-Authentifizierung eine Verbindung zu Ihrer Datenbank her, anstatt Anmeldeinformationen von Secrets Manager abzurufen. Dazu müssen Sie Ihre IAM-Rolle mit `rds-db:connect` Berechtigungen für die Datenbankkonten konfigurieren, die Sie mit dem Proxy verwenden möchten.

Um Ihren RDS-Proxy mithilfe von IAM gegenüber der Datenbank zu authentifizieren, erstellen Sie eine IAM-Rolle mit einer Richtlinie, die die erforderlichen Datenbankverbindungsberechtigungen gewährt.

### Konsole
<a name="rds-proxy-iam-e2e-console"></a>

**Um eine Rolle für die end-to-end IAM-Authentifizierung mit Ihrem Proxy zu erstellen**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die IAM-Konsole unter. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. Erstellen Sie eine Berechtigungsrichtlinie für die Rolle. Allgemeine Schritte finden Sie unter [IAM-Richtlinien erstellen (Konsole)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html).

   Fügen Sie die folgende Richtlinie in den JSON-Editor ein und nehmen Sie die folgenden Änderungen vor:
   + Ersetzen Sie die Vorgabe durch Ihre eigene Konto-ID.
   + Ersetzen Sie es `us-east-2` durch den Ort, an dem sich der Proxy befinden muss.
   + Ersetzen Sie die Datenbankressource IDs und die Benutzernamen durch die Namen, die Sie verwenden möchten. Das Format der Ressourcen-ID unterscheidet sich zwischen RDS-Instances undAurora clusters.

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "rds-db:connect",
               "Resource": [
                   "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_1",
                   "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_2"
               ]
           }
       ]
   }
   ```

1. Erstellen Sie die Rolle fügen Sie ihr die Berechtigungsrichtlinie an. Allgemeine Schritte finden Sie unter [Eine Rolle erstellen, um Berechtigungen an einen AWS Dienst zu delegieren](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html). 

   Wählen Sie für **Vertrauenswürdiger Entitätstyp** die Option **AWS -Service** aus. Wählen Sie unter **Anwendungsfall** die Option **RDS** und für den Anwendungsfall **RDS — Rolle zur Datenbank hinzufügen** aus.

1. Wählen Sie für **Berechtigungsrichtlinien** die Richtlinie aus, die Sie erstellt haben.

1. Geben Sie für **Vertrauenswürdige Entitäten auswählen** die folgende Vertrauensrichtlinie für die Rolle ein:

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
           "Service": "rds.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

### AWS CLI
<a name="rds-proxy-iam-e2e-cli"></a>

Um die Rolle mithilfe von zu erstellen AWS CLI, senden Sie die folgende Anfrage:

```
aws iam create-role \
  --role-name my_e2e_iam_role_name \

  --assume-role-policy-document '{"Version":"2012-10-17",		 	 	 "Statement":[{"Effect":"Allow","Principal":{"Service":["rds.amazonaws.com"]},"Action":"sts:AssumeRole"}]}'
```

Fügen Sie anschließend die Richtlinie an die Rolle an.

```
aws iam put-role-policy \
  --role-name my_e2e_iam_role_name \
  --policy-name e2e_iam_db_connect_policy \
  --policy-document '{

    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "rds-db:connect",
            "Resource": [
                "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_1",
                "arn:aws:rds-db:us-east-2:account_id:dbuser:db_instance_resource_id/db_user_name_2"
            ]
        }
    ]
}'
```

Wenn die IAM-Rolle und die Berechtigungen für die end-to-end IAM-Authentifizierung konfiguriert sind, können Sie jetzt einen Proxy mit der `DefaultAuthScheme` Einstellung auf erstellen. `IAM_AUTH` Dieser Proxy authentifiziert sich mithilfe von IAM direkt bei der Datenbank, ohne dass Secrets Manager Manager-Geheimnisse erforderlich sind. Detaillierte Anweisungen finden Sie unter [Erstellen eines Proxys für Amazon Aurora](rds-proxy-creating.md).

Wenn Sie die end-to-end IAM-Authentifizierung verwenden, stellen Sie sicher, dass Ihre Datenbankbenutzer für die IAM-Authentifizierung konfiguriert sind, wie unter beschrieben. [Erstellen eines Datenbankkontos mithilfe der IAM-Authentifizierung](UsingWithRDS.IAMDBAuth.DBAccounts.md)

## Erstellen einer IAM-Richtlinie für den Zugriff auf Secrets Manager
<a name="rds-proxy-iam-setup-steps"></a>

Damit RDS-Proxy Datenbankanmeldedaten von Secrets Manager abrufen kann, erstellen Sie eine IAM-Rolle mit einer Richtlinie, die die notwendigen Berechtigungen gewährt.

## Konsole
<a name="rds-proxy-iam-console"></a>

**So erstellen Sie eine Rolle für den Zugriff auf Ihre Secrets für die Verwendung mit Ihrem Proxy**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die IAM-Konsole unter. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. Erstellen Sie eine Berechtigungsrichtlinie für die Rolle. Allgemeine Schritte finden Sie unter [IAM-Richtlinien erstellen (Konsole)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html).

   Fügen Sie die folgende Richtlinie in den JSON-Editor ein und nehmen Sie die folgenden Änderungen vor:
   + Ersetzen Sie die Vorgabe durch Ihre eigene Konto-ID.
   + Ersetzen Sie `us-east-2` durch die Region, in der sich der Proxy befinden wird.
   + Ersetzen Sie die geheimen Namen durch die Namen, die Sie erstellt haben. Weitere Informationen finden Sie unter [Angeben von KMS-Schlüsseln in IAM-Richtlinienanweisungen](https://docs.aws.amazon.com/kms/latest/developerguide/cmks-in-iam-policies.html).
   + Ersetzen Sie die KMS-Schlüssel-ID durch die, die Sie zur Verschlüsselung der Secrets von Secrets Manager verwendet haben, entweder den Standardschlüssel oder Ihren eigenen Schlüssel.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "secretsmanager:GetSecretValue",
               "Resource": [
                   "arn:aws:secretsmanager:us-east-2:111122223333:secret:secret_name_1",
                   "arn:aws:secretsmanager:us-east-2:111122223333:secret:secret_name_2"
               ]
           },
           {
               "Effect": "Allow",
               "Action": "kms:Decrypt",
               "Resource": "arn:aws:kms:us-east-2:111122223333:key/key_id",
               "Condition": {
                   "StringEquals": {
                       "kms:ViaService": "secretsmanager.us-east-2.amazonaws.com"
                   }
               }
           }
       ]
   }
   ```

------

1. Erstellen Sie die Rolle fügen Sie ihr die Berechtigungsrichtlinie an. Allgemeine Schritte finden Sie unter [Eine Rolle erstellen, um Berechtigungen für einen AWS Dienst zu delegieren](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html). 

   Wählen Sie für **Vertrauenswürdiger Entitätstyp** die Option **AWS -Service** aus. Wählen Sie unter **Anwendungsfall** die Option **RDS** und für den Anwendungsfall **RDS — Rolle zur Datenbank hinzufügen** aus.

1. Wählen Sie für **Berechtigungsrichtlinien** die Richtlinie aus, die Sie erstellt haben.

1. Geben Sie für **Vertrauenswürdige Entitäten auswählen** die folgende Vertrauensrichtlinie für die Rolle ein:

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
           "Service": "rds.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

## AWS CLI
<a name="rds-proxy-iam-cli"></a>

Um die Rolle mithilfe von zu erstellen AWS CLI, senden Sie die folgende Anfrage:

```
aws iam create-role \
  --role-name my_role_name \
  --assume-role-policy-document '{"Version": "2012-10-17",		 	 	 "Statement":[{"Effect":"Allow","Principal":{"Service":["rds.amazonaws.com"]},"Action":"sts:AssumeRole"}]}'
```

Fügen Sie anschließend die Richtlinie an die Rolle an.

```
aws iam put-role-policy \
  --role-name my_role_name \
  --policy-name secret_reader_policy \
  --policy-document '{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "secretsmanager:GetSecretValue",
            "Resource": [
                "arn:aws:secretsmanager:us-east-2:account_id:secret:secret_name_1",
                "arn:aws:secretsmanager:us-east-2:account_id:secret:secret_name_2"
            ]
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "kms:Decrypt",
            "Resource": "arn:aws:kms:us-east-2:account_id:key/key_id",
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": "secretsmanager.us-east-2.amazonaws.com"
                }
            }
        }
    ]
}'
```

Nachdem Sie die IAM-Rolle und die Berechtigungen konfiguriert haben, können Sie nun einen Proxy erstellen und ihn dieser Rolle zuordnen. Auf diese Weise kann der Proxy Datenbankanmeldedaten sicher aus Ihren Anwendungen abrufen AWS Secrets Manager und die IAM-Authentifizierung für Ihre Anwendungen aktivieren. Detaillierte Anweisungen finden Sie unter [Erstellen eines Proxys für Amazon Aurora](rds-proxy-creating.md).

# Erstellen eines Proxys für Amazon Aurora
<a name="rds-proxy-creating"></a>

Sie können Amazon-RDS-Proxy verwenden, um die Skalierbarkeit, Verfügbarkeit und Sicherheit Ihrer Datenbankanwendungen zu verbessern, indem Sie Verbindungen bündeln und Datenbank-Failover effizienter verwalten. In diesem Thema wird das Erstellen eines Proxys erläutert. Stellen Sie vor Beginn sicher, dass Ihre Datenbank die erforderlichen Voraussetzungen erfüllt, einschließlich IAM-Berechtigungen und VPC-Konfiguration.

Sie können einen Proxy einem DB-Cluster von Aurora MySQL oder einem Aurora PostgreSQL zuordnen. 

## Konsole
<a name="rds-proxy-creating.console"></a>

**So erstellen Sie einen Proxy**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon RDS-Konsole unter [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Wählen Sie im Navigationsbereich **Proxies (Proxys)**. 

1. Wählen Sie **Create proxy (Proxy erstellen)**. 

1. Konfigurieren Sie die folgenden Einstellungen für Ihren Proxy.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/AmazonRDS/latest/AuroraUserGuide/rds-proxy-creating.html)

1.  Wählen Sie **Create proxy (Proxy erstellen)**. 

## AWS CLI
<a name="rds-proxy-creating.CLI"></a>

 Um einen Proxy mit dem zu erstellen AWS CLI, rufen Sie den [create-db-proxy](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-proxy.html)Befehl mit den folgenden erforderlichen Parametern auf: 
+ `--db-proxy-name`
+ `--engine-family`
+ `--role-arn`
+ `--vpc-subnet-ids`

Bei `--engine-family`-Wert ist die Groß- und Kleinschreibung zu beachten.

**Example**  
Für Linux, macOS oder Unix:  

```
aws rds create-db-proxy \
    --db-proxy-name proxy_name \
    --engine-family { MYSQL | POSTGRESQL | SQLSERVER } \
    --role-arn iam_role \
    --vpc-subnet-ids space_separated_list \
    [--default-auth-scheme { NONE | IAM_AUTH }] \
    [--auth ProxyAuthenticationConfig_JSON_string] \
    [--vpc-security-group-ids space_separated_list] \
    [--require-tls | --no-require-tls] \
    [--idle-client-timeout value] \
    [--debug-logging | --no-debug-logging] \
    [--endpoint-network-type { IPV4 | IPV6 | DUAL }] \
    [--target-connection-network-type { IPV4 | IPV6 }] \
    [--tags comma_separated_list]
```
Für Windows:  

```
aws rds create-db-proxy ^
    --db-proxy-name proxy_name ^
    --engine-family { MYSQL | POSTGRESQL | SQLSERVER } ^
    --role-arn iam_role ^
    --vpc-subnet-ids space_separated_list ^
    [--default-auth-scheme { NONE | IAM_AUTH }] ^
    [--auth ProxyAuthenticationConfig_JSON_string] ^
    [--vpc-security-group-ids space_separated_list] ^
    [--require-tls | --no-require-tls] ^
    [--idle-client-timeout value] ^
    [--debug-logging | --no-debug-logging] ^
    [--endpoint-network-type { IPV4 | IPV6 | DUAL }] ^
    [--target-connection-network-type { IPV4 | IPV6 }] ^
    [--tags comma_separated_list]
```

Nachstehend finden Sie ein Beispiel für den JSON-Wert der `--auth`-Option. Dieses Beispiel wendet auf jedes Secret einen anderen Client-Authentifizierungstyp an.

```
[
  {
    "Description": "proxy description 1",
    "AuthScheme": "SECRETS",
    "SecretArn": "arn:aws:secretsmanager:us-west-2:123456789123:secret/1234abcd-12ab-34cd-56ef-1234567890ab",
    "IAMAuth": "DISABLED",
    "ClientPasswordAuthType": "POSTGRES_SCRAM_SHA_256"
  },
  
  {
    "Description": "proxy description 2",
    "AuthScheme": "SECRETS",
    "SecretArn": "arn:aws:secretsmanager:us-west-2:111122223333:secret/1234abcd-12ab-34cd-56ef-1234567890cd",
    "IAMAuth": "DISABLED",
    "ClientPasswordAuthType": "POSTGRES_MD5"
    
  },
  
  {
    "Description": "proxy description 3",
    "AuthScheme": "SECRETS",
    "SecretArn": "arn:aws:secretsmanager:us-west-2:111122221111:secret/1234abcd-12ab-34cd-56ef-1234567890ef",
    "IAMAuth": "REQUIRED"
  }
  
]
```

Der `--endpoint-network-type`-Parameter gibt die IP-Version für den Proxy-Endpunkt an, über den Clients eine Verbindung zum Proxy herstellen. Folgende sind gültige Werte:
+ `IPV4`— Der Proxy-Endpunkt verwendet nur IPv4 Adressen (Standard).
+ `IPV6`— Der Proxy-Endpunkt verwendet nur IPv6 Adressen.
+ `DUAL`— Der Proxy-Endpunkt unterstützt IPv4 sowohl IPv6 Adressen als auch.

Der Parameter `--target-connection-network-type` gibt die IP-Version an, die der Proxy verwendet, um eine Verbindung zur Zieldatenbank herzustellen. Folgende sind gültige Werte:
+ `IPV4`— Der Proxy stellt über IPv4 Adressen eine Verbindung zur Datenbank her (Standard).
+ `IPV6`— Der Proxy stellt über IPv6 Adressen eine Verbindung zur Datenbank her.

Um Dual-Stack-Endpunkt-Netzwerktypen zu verwenden IPv6 , müssen Ihre VPC und Subnetze so konfiguriert sein, dass sie den ausgewählten Netzwerktyp unterstützen. Um den Netzwerktyp IPv6 Zielverbindung zu verwenden, muss Ihre Datenbank den Dual-Stack-Modus unterstützen.

**Tipp**  
 Wenn Sie noch nicht wissen, welches Subnetz für den `--vpc-subnet-ids` Parameter verwendet werden IDs soll, finden Sie unter [Einrichten der Netzwerkvoraussetzungen für RDS-Proxy](rds-proxy-network-prereqs.md) Beispiele, wie Sie sie finden können. 

**Anmerkung**  
Diese Sicherheitsgruppe muss den Zugriff auf die Datenbank zulassen, mit welcher der Proxy eine Verbindung herstellt. Dieselbe Sicherheitsgruppe wird für eingehenden Datenverkehr von Ihren Anwendungen zum Proxy und für ausgehenden Datenverkehr vom Proxy zur Datenbank verwendet. Angenommen, Sie verwenden dieselbe Sicherheitsgruppe für Ihre Datenbank und Ihren Proxy. Stellen Sie in diesem Fall sicher, dass Sie angeben, dass Ressourcen in dieser Sicherheitsgruppe mit anderen Ressourcen in derselben Sicherheitsgruppe kommunizieren können.  
Wenn Sie eine freigegebene VPC verwenden, können Sie die Standardsicherheitsgruppe für die VPC oder eine zu einem anderen Konto gehörende Gruppe nicht verwenden. Wählen Sie eine Sicherheitsgruppe aus, die zu Ihrem Konto gehört. Wenn keine vorhanden ist, erstellen Sie eine. Weitere Informationen zu dieser Einschränkung finden Sie unter [Arbeiten mit Shared VPCs](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-sharing.html#vpc-share-limitations). 

 Um die richtigen Verknüpfungen für den Proxy zu erstellen, verwenden Sie auch den [register-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/register-db-proxy-targets.html)Befehl. Angabe des `default`-Zielgruppennamens. RDS-Proxy erstellt automatisch eine Zielgruppe mit diesem Namen, wenn Sie jeden Proxy erstellen. 

```
aws rds register-db-proxy-targets
    --db-proxy-name value
    [--target-group-name target_group_name]
    [--db-instance-identifiers space_separated_list]  # rds db instances, or
    [--db-cluster-identifiers cluster_id]        # rds db cluster (all instances)
```

## RDS-API
<a name="rds-proxy-creating.API"></a>

 Um einen RDS-Proxy zu erstellen, rufen Sie den Amazon RDS-API-Vorgang [Create](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBProxy.html) aufDBProxy. Sie übergeben einen Parameter mit der [AuthConfig](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_AuthConfig.html)Datenstruktur. 

 RDS-Proxy erstellt automatisch eine Zielgruppe mit dem Namen `default`, wenn Sie die einzelnen Proxys erstellen. Sie ordnen der Zielgruppe einen zu, indem Sie die Funktion [DBProxyZiele registrieren](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RegisterDBProxyTargets.html) aufrufen. 

**Wichtig**  
Wenn Sie die **IAM-Authentifizierung** für das Standardauthentifizierungsschema auswählen:  
Sie müssen die IAM-Datenbankauthentifizierung auf Ihren Zieldatenbank-Instances oder Clustern aktivieren, bevor der Proxy erfolgreich eine Verbindung herstellen kann.
Wenn Sie **IAM-Rolle erstellen** wählen, ist das Feld **Datenbankkonten für die IAM-Authentifizierung erforderlich**.
Wenn Sie eine vorhandene IAM-Rolle auswählen, aktualisiert die Konsole die Rolle nicht automatisch mit Datenbankverbindungsberechtigungen. Überprüfen Sie, ob die Rolle über die erforderlichen `rds-db:connect` Berechtigungen verfügt.

# Anzeigen eines Proxys
<a name="rds-proxy-viewing"></a>

 Nachdem Sie einen oder mehrere RDS-Proxys erstellt haben, können Sie ihn bzw. sie in der AWS-Managementkonsole, der AWS CLI oder der RDS-API anzeigen und verwalten. Sie können ihre Konfigurationsdetails überprüfen, die Leistung überwachen und festlegen, welche Proxys nach Bedarf geändert oder gelöscht werden sollen.

Damit Datenbankanwendungen den Datenverkehr über einen Proxy weiterleiten können, müssen Sie den Proxy-Endpunkt in der Verbindungszeichenfolge angeben.

## Konsole
<a name="rds-proxy-viewing.console"></a>

**So zeigen Sie einen Proxy in der Konsole an**

1. Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon-RDS-Konsole unter [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Wählen Sie im Navigationsbereich **Proxies (Proxys)**. 

1. Wählen Sie den Proxy-Namen aus, um seine Details anzuzeigen. 

1. Auf der Detailseite zeigt der Abschnitt **Zielgruppen** an, wie der Proxy einer spezifischen einem spezifischen Aurora-DB-Cluster zugeordnet ist. Sie können zur Standardzielgruppenseite navigieren, um eine detailliertere Ansicht dieser Zuordnung zu erhalten, einschließlich der Konfigurationseinstellungen, die bei der Proxy-Erstellung definiert wurden. Zu diesen Einstellungen gehören maximaler Verbindungsprozentsatz, Zeitüberschreitung für die Verbindung, Engine-Familie und Sitzungs-Pinning-Filter.

## CLI
<a name="rds-proxy-viewing.cli"></a>

 Um Ihren Proxy mit der CLI anzuzeigen, verwenden Sie den Befehl [describe-db-proxies](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxies.html). Standardmäßig werden alle Proxys im Besitz Ihres AWS-Kontos zurückgegeben. Um Details für einen einzelnen Proxy anzuzeigen, geben Sie seinen Namen mit dem Parameter `--db-proxy-name` an. 

```
aws rds describe-db-proxies [--db-proxy-name proxy_name]
```

 Verwenden Sie die folgenden Befehle, um die anderen Informationen anzuzeigen, die mit dem Proxy verknüpft sind. 

```
aws rds describe-db-proxy-target-groups  --db-proxy-name proxy_name

aws rds describe-db-proxy-targets --db-proxy-name proxy_name
```

 Verwenden Sie die folgende Befehlsfolge, um weitere Details zu den Elementen anzuzeigen, die mit dem Proxy verknüpft sind: 

1.  Um eine Liste von Proxys anzufordern, führen Sie [describe-db-proxies](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxies.html) aus. 

1.  Führen Sie [describe-db-proxy-target-groups](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxy-target-groups.html) `--db-proxy-name` aus, um Verbindungsparameter anzuzeigen, wie den maximalen Prozentsatz der Verbindungen, die der Proxy verwenden kann. Verwenden Sie den Namen des Proxys als Parameterwert. 

1.  Führen Sie zum Anzeigen der Details der des Aurora-DB-Clusters, die/der der zurückgegebenen Zielgruppe zugeordnet ist, [describe-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxy-targets.html) aus. 

## RDS-API
<a name="rds-proxy-viewing.api"></a>

 Verwenden Sie den Vorgang [DescribeDBProxies](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBProxies.html), um Ihre Proxys mit der RDS-API anzuzeigen. Er gibt Werte des Datentyps [DBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DBProxy.html) zurück. 

 Um Details zu den Verbindungseinstellungen für den Proxy anzuzeigen, verwenden Sie die Proxy-Bezeichner aus diesem Rückgabewert mit der Operation [DescribeDBProxyTargetGroups](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBProxyTargetGroups.html). Er gibt Werte des Datentyps [DBProxyTargetGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DBProxyTargetGroup.html) zurück. 

 Sie können die dem Proxy zugeordnete RDS-Instance oder das Aurora-DB-Cluster mithilfe der Operation [DescribeDBProxyTargets](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBProxyTargets.html) anzeigen. Er gibt Werte des Datentyps [DBProxyTarget](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DBProxyTarget.html) zurück. 

# Verbinden mit einer Datenbank über RDS-Proxy
<a name="rds-proxy-connecting"></a>

Sie stellen eine Verbindung mit einem Aurora-DB-Cluster oder einem Cluster, der Aurora Serverless v2 verwendet, über einen Proxy in der Regel auf die gleiche Weise her, wie Sie eine direkte Verbindung mit der Datenbank herstellen. Der Hauptunterschied besteht darin, dass Sie anstelle des Cluster-Endpunkts den Proxy-Endpunkt angeben. Standardmäßig sind alle Proxyverbindungen read/write fähig und verwenden die Writer-Instanz. Wenn Sie den Reader-Endpunkt normalerweise für schreibgeschützte Verbindungen verwenden, können Sie einen zusätzlichen schreibgeschützten Endpunkt für den Proxy erstellen. Diesen Endpunkt können Sie auf die gleiche Weise verwenden. Weitere Informationen finden Sie unter [Überblick über Proxy-Endpunkte](rds-proxy-endpoints.md#rds-proxy-endpoints-overview). 

**Topics**
+ [Mit Datenbankanmeldeinformationen eine Verbindung zu einer Datenbank herstellen](#rds-proxy-connecting-native)
+ [Mithilfe der IAM-Authentifizierung eine Verbindung zu einer Datenbank herstellen](#rds-proxy-connecting-iam)
+ [Überlegungen zum Herstellen einer Verbindung zu PostgreSQL](#rds-proxy-connecting-postgresql)

## Mit Datenbankanmeldeinformationen eine Verbindung zu einer Datenbank herstellen
<a name="rds-proxy-connecting-native"></a>

 Gehen Sie wie folgt vor, um mithilfe von Datenbankanmeldedaten eine Verbindung zu einem Proxy herzustellen: 

1.  Suchen Sie den Proxy-Endpunkt. Im finden Sie den AWS-Managementkonsole Endpunkt auf der Detailseite für den entsprechenden Proxy. Mit dem AWS CLI können Sie den [describe-db-proxies](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxies.html)Befehl verwenden. Im folgenden Beispiel wird gezeigt, wie dies geschieht. 

   ```
   # Add --output text to get output as a simple tab-separated list.
   $ aws rds describe-db-proxies --query '*[*].{DBProxyName:DBProxyName,Endpoint:Endpoint}'
   [
       [
           {
               "Endpoint": "the-proxy.proxy-demo.us-east-1.rds.amazonaws.com",
               "DBProxyName": "the-proxy"
           },
           {
               "Endpoint": "the-proxy-other-secret.proxy-demo.us-east-1.rds.amazonaws.com",
               "DBProxyName": "the-proxy-other-secret"
           },
           {
               "Endpoint": "the-proxy-rds-secret.proxy-demo.us-east-1.rds.amazonaws.com",
               "DBProxyName": "the-proxy-rds-secret"
           },
           {
               "Endpoint": "the-proxy-t3.proxy-demo.us-east-1.rds.amazonaws.com",
               "DBProxyName": "the-proxy-t3"
           }
       ]
   ]
   ```

1.  Geben Sie den Endpunkt als Hostparameter in der Verbindungszeichenfolge für Ihre Clientanwendung an. Geben Sie beispielsweise den Proxy-Endpunkt als Wert für die Option `mysql -h` oder `psql -h` an. 

1.  Geben Sie denselben Datenbankbenutzernamen und dasselbe Passwort an, die Sie normalerweise verwenden. 

## Mithilfe der IAM-Authentifizierung eine Verbindung zu einer Datenbank herstellen
<a name="rds-proxy-connecting-iam"></a>

 Wenn Sie die IAM-Authentifizierung mit RDS Proxy verwenden, haben Sie zwei Optionen für die Authentifizierung zwischen Ihrem Client und dem Proxy:
+ Richten Sie Ihre Datenbankbenutzer so ein, dass sie sich mit normalen Benutzernamen und Passwörtern authentifizieren. RDS Proxy ruft den Benutzernamen und das Passwort von Secrets Manager ab. Die Verbindung von RDS-Proxy zur zugrunde liegenden Datenbank erfolgt nicht über IAM.
+ Sie können auch die end-to-end IAM-Authentifizierung verwenden, bei der über den Proxy mithilfe von IAM eine Verbindung zu Ihrer Datenbank hergestellt wird, ohne dass Datenbankanmeldeinformationen erforderlich sind.

 Um mittels IAM-Authentifizierung eine Verbindung mit dem RDS-Proxy herzustellen, befolgen Sie das gleiche allgemeine Verfahren wie für die IAM-Authentifizierung mit einem Aurora-DB-Cluster. Allgemeine Informationen zur Verwendung von IAM finden Sie unter [Sicherheit in Amazon Aurora](UsingWithRDS.md). Wenn Sie die end-to-end IAM-Authentifizierung verwenden, stellen Sie Ihrem DB-Benutzer das IAM-Authentifizierungs-Plugin zur Verfügung. Siehe [Erstellen eines Datenbankkontos mithilfe der IAM-Authentifizierung](UsingWithRDS.IAMDBAuth.DBAccounts.md).

 Zu den Hauptunterschieden bei der IAM-Nutzung für RDS-Proxy gehören die folgenden: 
+ Bei der Standard-IAM-Authentifizierung verfügen Datenbankbenutzer über reguläre Anmeldeinformationen in der Datenbank. Sie richten Secrets Manager-Geheimnisse ein, die diese Benutzernamen und Passwörter enthalten, und autorisieren RDS-Proxy, die Anmeldeinformationen von Secrets Manager abzurufen. Die IAM-Authentifizierung gilt für die Verbindung zwischen Ihrem Clientprogramm und dem Proxy. Der Proxy authentifiziert sich dann bei der Datenbank mit den Anmeldeinformationen aus Benutzername und Passwort, die von Secrets Manager abgerufen wurden.
+ Mit der end-to-end IAM-Authentifizierung müssen Sie Secrets Manager nicht für Datenbankanmeldedaten konfigurieren. Die IAM-Authentifizierung gilt für die Verbindung zwischen dem Client zum Proxy und dem Proxy zur Datenbank.
+ Anstelle des Instance-, Cluster- oder Leser-Endpunkts geben Sie den Proxy-Endpunkt an. Weitere Informationen zum Proxy-Endpunkt finden Sie unter [Herstellen einer Verbindung zu Ihrem DB--Cluster mithilfe der IAM-Authentifizierung](UsingWithRDS.IAMDBAuth.Connecting.md).
+ Sie müssen Transport Layer Security (TLS)/Secure Sockets Layer (SSL) verwenden, wenn Sie mit IAM-Authentifizierung eine Verbindung zu einem Proxy herstellen.

Sie können einem bestimmten Benutzer Zugriff auf den Proxy gewähren, indem Sie die IAM-Richtlinie ändern. Ein Beispiel folgt.

```
"Resource": "arn:aws:rds-db:us-east-2:1234567890:dbuser:prx-ABCDEFGHIJKL01234/db_user"
```

**Tipp**  
Beachten Sie bei der Konfiguration der IAM-Authentifizierung für RDS-Proxyverbindungen die folgenden wichtigen Richtlinien, um Verbindungsprobleme zu vermeiden:  
Gewähren Sie die `rds_iam` Rolle nicht und behalten Sie gleichzeitig die allgemeine Passwortauthentifizierung für denselben Datenbankbenutzer oder dieselbe Rolle bei.
Denken Sie daran, dass Clients zwar mithilfe der IAM-Authentifizierung eine Verbindung zum RDS-Proxy herstellen, RDS-Proxy jedoch immer mithilfe der Kennwortauthentifizierung über Secrets Manager eine Verbindung zur Datenbank herstellt.
Wenn Sie häufig Verbindungsabbrüche und Verbindungswiederverbindungen feststellen, entfernen Sie alle vorhandenen `rds_iam` Berechtigungen für den Benutzer oder die Rolle und verwenden Sie nur die Kennwortauthentifizierung.
Stellen Sie sicher, dass Ihre Passwortrichtlinie die SCRAM-SHA-256-Anforderungen für sichere Zeichen erfüllt.
Die Kombination von IAM- und Kennwortauthentifizierungsmethoden für denselben Datenbankbenutzer kann zu Verbindungsinstabilität führen.

## Überlegungen zum Herstellen einer Verbindung zu PostgreSQL
<a name="rds-proxy-connecting-postgresql"></a>

Stellen Sie beim Erstellen eines neuen PostgreSQL-Datenbankbenutzers für die Verbindung mit dem RDS-Proxy sicher, dass Sie die Benutzerberechtigung `CONNECT` für die Datenbank gewähren. Ohne diese kann der Benutzer keine Verbindung herstellen. Weitere Informationen finden Sie unter [Hinzufügen eines neuen Datenbankbenutzers zu einer PostgreSQL-Datenbank bei Verwendung von RDS-Proxy](rds-proxy-new-db-user.md#rds-proxy-new-db-user-pg).

Wenn ein Client beginnt, eine Verbindung mit einer PostgreSQL-Datenbank herzustellen, sendet er eine Startmeldung. Diese Nachricht enthält Paare von Parameternamen und Wertzeichenfolgen. Weitere Informationen finden Sie unter `StartupMessage` in den [PostgreSQL-Nachrichtenformaten](https://www.postgresql.org/docs/current/protocol-message-formats.html) in der PostgreSQL-Dokumentation. 

Wenn Sie eine Verbindung über einen RDS-Proxy herstellen, kann die Startmeldung die folgenden aktuell erkannten Parameter enthalten: 
+  `user` 
+  `database`

 Die Startmeldung kann auch die folgenden zusätzlichen Laufzeitparameter enthalten: 
+ `[application\$1name](https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-APPLICATION-NAME) `
+ `[client\$1encoding](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-CLIENT-ENCODING) `
+ `[DateStyle](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-DATESTYLE) `
+ `[TimeZone](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-TIMEZONE) `
+  `[extra\$1float\$1digits](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-EXTRA-FLOAT-DIGITS) `
+  `[ search\$1path ](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-SEARCH-PATH)` 

 Weitere Informationen zum PostgreSQL-Messaging finden Sie im [Frontend/Backend-Protokoll](https://www.postgresql.org/docs/current/protocol.html) in der PostgreSQL-Dokumentation.

 Für PostgreSQL empfehlen wir bei Verwendung von JDBC Folgendes, um Pinning zu vermeiden:
+ Stellen Sie den JDBC-Verbindungsparameter `assumeMinServerVersion` mindestens auf `9.0` ein, um Pinning zu vermeiden. Dadurch wird verhindert, dass der JDBC-Treiber beim Starten der Verbindung einen zusätzlichen Roundtrip durchführt, wenn `SET extra_float_digits = 3` ausgeführt wird. 
+ Setzen Sie den JDBC-Verbindungsparameter `ApplicationName` auf `any/your-application-name`, um Pinning zu vermeiden. Dadurch wird verhindert, dass der JDBC-Treiber beim Starten der Verbindung einen zusätzlichen Roundtrip ausführt, wenn er ausführ `SET application_name = "PostgreSQL JDBC Driver"`. Beachten Sie, dass der JDBC-Parameter `ApplicationName`, der PostgreSQL-`StartupMessage`-Parameter aber `application_name` ist.

Weitere Informationen finden Sie unter [Vermeiden von Pinning beim RDS-Proxy](rds-proxy-pinning.md). Weitere Informationen zum Herstellen einer Verbindung mit JDBC finden Sie unter [Verbinden mit der Datenbank](https://jdbc.postgresql.org/documentation/setup/) in der PostgreSQL-Dokumentation.

# Verwalten eines RDS-Proxy
<a name="rds-proxy-managing"></a>

 Dieser Abschnitt enthält Informationen zum Verwalten des Betriebs und der Konfiguration von RDS-Proxys. Diese Verfahren helfen Ihrer Anwendung, Datenbankverbindungen möglichst effizient zu nutzen und eine maximale Wiederverwendung der Verbindung zu erzielen. Je mehr Sie die Wiederverwendung der Verbindung nutzen können, desto mehr CPU- und Arbeitsspeicher-Overhead können Sie sparen. Dies reduziert wiederum die Latenz für Ihre Anwendung und ermöglicht es der Datenbank, mehr Ressourcen für die Verarbeitung von Anwendungsanforderungen zu verwenden. 

**Topics**
+ [Ändern eines RDS-Proxy](rds-proxy-modifying-proxy.md)
+ [Hinzufügen eines neuen Datenbankbenutzers bei Verwendung von RDS-Proxy](rds-proxy-new-db-user.md)
+ [Umstellung von der Standard-IAM-Authentifizierung zur end-to-end IAM-Authentifizierung für RDS Proxy](rds-proxy-iam-migration.md)
+ [Überlegungen zu RDS-Proxy-Verbindungen](rds-proxy-connections.md)
+ [Vermeiden von Pinning beim RDS-Proxy](rds-proxy-pinning.md)
+ [Löschen eines RDS-Proxy](rds-proxy-deleting.md)

# Ändern eines RDS-Proxy
<a name="rds-proxy-modifying-proxy"></a>

 Sie können bestimmte Einstellungen ändern, die einem Proxy zugeordnet sind, nachdem Sie den Proxy erstellt haben. Dazu ändern Sie den Proxy selbst, die zugehörige Zielgruppe oder beides. Jedem Proxy ist eine Zielgruppe zugeordnet. 

## AWS-Managementkonsole
<a name="rds-proxy-modifying-proxy.console"></a>

**Wichtig**  
Die Werte in den Feldern **Client authentication type** (Client-Authentifizierungstyp) und **IAM authentication** (IAM-Authentifizierung) gelten für alle Secrets-Manager-Secrets, die diesem Proxy zugeordnet sind. Um für jedes Geheimnis unterschiedliche Werte anzugeben, ändern Sie Ihren Proxy, indem Sie stattdessen die AWS CLI oder die API verwenden.

**So ändern Sie die Einstellungen für einen Proxy:**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon RDS-Konsole unter [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1.  Wählen Sie im Navigationsbereich **Proxies (Proxys)**. 

1.  Wählen Sie in der Liste der Proxys den Proxy aus, dessen Einstellungen Sie ändern möchten, oder gehen Sie zur Detailseite. 

1.  Wählen Sie für **Actions (Aktionen)** die Option **Modify (Ändern)** aus. 

1.  Geben Sie die zu ändernden Eigenschaften ein, oder wählen Sie sie aus. Sie können folgende Formen angeben: 
   +  **Proxy-Identifikator **- Benennen Sie den Proxy um, indem Sie einen neuen Identifikator eingeben. 
   +  **Zeitüberschreitung für Client-Verbindungsleerlauf**— Geben Sie einen Zeitraum für das Timeout für die Clientleerlauf ein. 
   +  **IAM-Rolle** - Ändern Sie die IAM-Rolle, die zum Abrufen der Geheimnisse von Secrets Manager verwendet wird. 
**Anmerkung**  
Sie können keine neue IAM-Rolle erstellen, wenn Sie das **Standardauthentifizierungsschema auf **IAM-Authentifizierung**** festlegen.
   +  **Secrets Manager-Secrets**— Hinzufügen oder entfernen Sie Secrets Manager Geheimnisse. Diese Secrets entsprechen Datenbankbenutzernamen und Passwörtern. 
   +  **Client-Authentifizierungstyp** — Ändern Sie den Authentifizierungstyp für Client-Verbindungen zum Proxy. 
   +  **IAM authentication** (IAM-Authentifizierung) – Verlangen oder unterbinden Sie die IAM-Authentifizierung für Verbindungen mit dem Proxy. 
   +  **Standardauthentifizierungsschema** — Ändern Sie das Standardauthentifizierungsschema, das der Proxy für Client-Verbindungen zum Proxy und Verbindungen vom Proxy zur zugrunde liegenden Datenbank verwendet. 
   +  **Require Transport Layer Security**— Aktivieren oder deaktivieren Sie die Anforderung für Transport Layer Security (TLS). 
   +  **VPC-Sicherheitsgruppe** - Fügen Sie VPC-Sicherheitsgruppen hinzu oder entfernen Sie sie, damit der Proxy sie verwenden kann. 
   +  **Aktivieren der erweiterten Protokollierung**— Aktivieren oder deaktivieren Sie die erweiterte Protokollierung. 

1.  Wählen Sie **Ändern** aus. 

Wenn Sie die Einstellungen, die Sie ändern möchten, in der Liste nicht gefunden haben, verwenden Sie das folgende Verfahren, um die Zielgruppe für den Proxy zu aktualisieren. Die *Zielgruppe*, die einem Proxy zugeordnet ist, steuert die Einstellungen für die physischen Datenbankverbindungen. Jedem Proxy ist eine Zielgruppe mit dem Namen `default` zugeordnet, die automatisch zusammen mit dem Proxy erstellt wird. Sie können die Standardzielgruppe nicht umbenennen.

 Sie können die Zielgruppe nur über die Proxy-Detailseite ändern, nicht über die Liste auf der Seite **Proxies (Proxys)**. 

**So ändern Sie die Einstellungen für eine Proxy-Zielgruppe:**

1.  Gehen Sie auf der Seite **Proxys** zur Detailseite für einen Proxy. 

1.  Wählen Sie für **Target groups (Zielgruppen)** den `default`-Link aus. Derzeit haben alle Proxys eine einzelne Zielgruppe mit dem Namen `default`. 

1.  Wählen Sie auf der Detailseite für die **Standard**-Zielgruppe die Option **Modify (Ändern)**. 

1.  Wählen Sie neue Einstellungen für die Eigenschaften aus, die Sie ändern können: 
   +  **Datenbank** – Wählen Sie einen anderen Aurora-Cluster aus. 
   +  **Maximale Verbindungen des Verbindungspools **- Legen Sie fest, wie viel Prozent der maximal verfügbaren Verbindungen der Proxy nutzen kann. 
   +  **Vortrags-Anheftungsfilter** – Wählen Sie optional einen Vortrags-Anheftungsfilter aus. Dadurch werden die standardmäßigen Sicherheitsmaßnahmen für das Multiplexing von Datenbankverbindungen über Client-Verbindungen hinweg umgangen. Derzeit wird die Einstellung für PostgreSQL nicht unterstützt. Die einzige Wahlmöglichkeit ist `EXCLUDE_VARIABLE_SETS`. 

     Die Aktivierung dieser Einstellung kann dazu führen, dass sich Sitzungsvariablen einer Verbindung auf andere Verbindungen auswirken. Dies kann zu Fehlern oder Problemen mit der Korrektheit führen, wenn Ihre Abfragen von Sitzungsvariablenwerten abhängen, die außerhalb der aktuellen Transaktion festgelegt wurden. Erwägen Sie, diese Option zu verwenden, nachdem Sie sich vergewissert haben, dass Ihre Anwendungen Datenbankverbindungen über mehrere Client-Verbindungen gemeinsam nutzen können.

     Die folgenden Muster können als sicher angesehen werden:
     + `SET`-Anweisungen, bei denen der effektive Wert der Sitzungsvariablen nicht geändert wird, d. h. dass keine Änderung an der Sitzungsvariablen vorgenommen wird.
     + Sie ändern den Wert der Sitzungsvariablen und führen eine Anweisung in derselben Transaktion aus.

     Weitere Informationen finden Sie unter [Vermeiden von Pinning beim RDS-Proxy](rds-proxy-pinning.md). 
   +  **Connection borrow timeout**— Passen Sie das Timeout-Intervall der Verbindung an. Diese Einstellung gilt, wenn für den Proxy bereits die maximale Anzahl von Verbindungen verwendet wird. Diese Einstellung legt fest, wie lange der Proxy wartet, bis eine Verbindung verfügbar ist, bevor ein Timeout-Fehler zurückgegeben wird. 
   + **Initialisierungsabfrage**. (Optional) Fügen Sie eine Initialisierungsabfrage hinzu oder ändern Sie die aktuelle. Sie können eine oder mehrere SQL-Anweisungen für die Ausführung durch den Proxy beim Öffnen jeder neuen Datenbankverbindung festlegen. Diese Einstellung wird normalerweise mit `SET`-Anweisungen verwendet, um sicherzustellen, dass jede Verbindung identische Einstellungen aufweist. Stellen Sie sicher, dass die von Ihnen hinzugefügte Abfrage gültig ist. Verwenden Sie Komma als Trennzeichen, um mehrere Variablen in eine einzelne `SET`-Anweisung einzuschließen. Zum Beispiel:

     ```
     SET variable1=value1, variable2=value2
     ```

     Verwenden Sie für mehrere Anweisungen Semikola als Trennzeichen.

    Sie können bestimmte Eigenschaften, z. B. die Zielgruppenkennung und die Datenbank-Engine, nicht ändern. 

1.  Wählen Sie **Modify target group (Zielgruppe ändern)**. 

## AWS CLI
<a name="rds-proxy-modifying-proxy.cli"></a>

 Um einen Proxy mit dem zu ändern AWS CLI, verwenden Sie die Befehle [modify-db-proxymodify-db-proxy-target](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy.html)[-group [deregister-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/deregister-db-proxy-targets.html)](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy-target-group.html), und [register-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/register-db-proxy-targets.html). 

 Mit dem Befehl `modify-db-proxy` können Sie Eigenschaften wie die folgenden ändern: 
+  Der Satz von Secrets Manager-Secrets, die vom Proxy verwendet werden. 
+  Ob TLS erforderlich ist. 
+  Das Timeout für Client-Leerlauf. 
+  Ob zusätzliche Informationen aus SQL-Anweisungen zum Debuggen protokolliert werden sollen. 
+  Die IAM-Rolle, die zum Abrufen von Secrets Manager-Secrets verwendet wird. 
+  Die vom Proxy verwendeten Sicherheitsgruppen. 
+ Das dem Proxy zugeordnete Standardauthentifizierungsschema.

 Das folgende Beispiel zeigt, wie ein vorhandener Proxy umbenannt wird. 

```
aws rds modify-db-proxy --db-proxy-name the-proxy --new-db-proxy-name the_new_name
```

Um verbindungsbezogene Einstellungen zu ändern oder die Zielgruppe umzubenennen, verwenden Sie den Befehl `modify-db-proxy-target-group`. Derzeit haben alle Proxys eine einzelne Zielgruppe mit dem Namen `default`. Wenn Sie mit dieser Zielgruppe arbeiten, geben Sie den Namen des Proxys und `default` als Name der Zielgruppe an. Sie können die Standardzielgruppe nicht umbenennen.

 Das folgende Beispiel zeigt, wie Sie zuerst die `MaxIdleConnectionsPercent`-Einstellung für einen Proxy überprüfen und dann mithilfe der Zielgruppe ändern. 

```
aws rds describe-db-proxy-target-groups --db-proxy-name the-proxy

{
    "TargetGroups": [
        {
            "Status": "available",
            "UpdatedDate": "2019-11-30T16:49:30.342Z",
            "ConnectionPoolConfig": {
                "MaxIdleConnectionsPercent": 50,
                "ConnectionBorrowTimeout": 120,
                "MaxConnectionsPercent": 100,
                "SessionPinningFilters": []
            },
            "TargetGroupName": "default",
            "CreatedDate": "2019-11-30T16:49:27.940Z",
            "DBProxyName": "the-proxy",
            "IsDefault": true
        }
    ]
}

aws rds modify-db-proxy-target-group --db-proxy-name the-proxy --target-group-name default --connection-pool-config '
{ "MaxIdleConnectionsPercent": 75 }'

{
    "DBProxyTargetGroup": {
        "Status": "available",
        "UpdatedDate": "2019-12-02T04:09:50.420Z",
        "ConnectionPoolConfig": {
            "MaxIdleConnectionsPercent": 75,
            "ConnectionBorrowTimeout": 120,
            "MaxConnectionsPercent": 100,
            "SessionPinningFilters": []
        },
        "TargetGroupName": "default",
        "CreatedDate": "2019-11-30T16:49:27.940Z",
        "DBProxyName": "the-proxy",
        "IsDefault": true
    }
}
```

 Mit den Befehlen `deregister-db-proxy-targets` und `register-db-proxy-targets` ändern Sie, welchen Aurora-DB-Clustern der Proxy über die Zielgruppe zugeordnet ist. Derzeit kann jeder Proxy eine Verbindung zu einer einem Aurora-DB-Cluster herstellen. Die Zielgruppe verfolgt die Verbindungsdetails für alle alle DB-Instances in einem Aurora-Cluster.

 Das folgende Beispiel beginnt mit einem Proxy, der einem Aurora MySQL-Cluster mit dem Namen zugeordnet is `cluster-56-2020-02-25-1399`. Das Beispiel zeigt, wie der Proxy so geändert wird, dass er eine Verbindung zu einem anderen Cluster namens herstellen kan `provisioned-cluster`. 

 Wenn Sie mit einem Aurora-DB-Cluster arbeiten, geben Sie die Option `--db-cluster-identifier` an. 

 Im folgenden Beispiel wird ein Aurora MySQL-Proxy geändert. Ein Aurora PostgreSQL-Proxy hat Port 5432. 

```
aws rds describe-db-proxy-targets --db-proxy-name the-proxy

{
    "Targets": [
        {
            "Endpoint": "instance-9814.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "instance-9814"
        },
        {
            "Endpoint": "instance-8898.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "instance-8898"
        },
        {
            "Endpoint": "instance-1018.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "instance-1018"
        },
        {
            "Type": "TRACKED_CLUSTER",
            "Port": 0,
            "RdsResourceId": "cluster-56-2020-02-25-1399"
        },
        {
            "Endpoint": "instance-4330.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "instance-4330"
        }
    ]
}

aws rds deregister-db-proxy-targets --db-proxy-name the-proxy --db-cluster-identifier cluster-56-2020-02-25-1399

aws rds describe-db-proxy-targets --db-proxy-name the-proxy

{
    "Targets": []
}

aws rds register-db-proxy-targets --db-proxy-name the-proxy --db-cluster-identifier provisioned-cluster

{
    "DBProxyTargets": [
        {
            "Type": "TRACKED_CLUSTER",
            "Port": 0,
            "RdsResourceId": "provisioned-cluster"
        },
        {
            "Endpoint": "gkldje.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "gkldje"
        },
        {
            "Endpoint": "provisioned-1.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "provisioned-1"
        }
    ]
}
```

## RDS-API
<a name="rds-proxy-modifying-proxy.api"></a>

 Um einen Proxy mithilfe der RDS-API zu ändern, verwenden Sie die Operationen [Modify DBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxy.html), [Modify DBProxy TargetGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxyTargetGroup.html), [Deregister DBProxy Targets](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeregisterDBProxyTargets.html) und [Register DBProxy Targets](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RegisterDBProxyTargets.html). 

 Mit `ModifyDBProxy` können Sie Eigenschaften wie die folgenden ändern: 
+  Der Satz von Secrets Manager-Secrets, die vom Proxy verwendet werden. 
+  Ob TLS erforderlich ist. 
+  Das Timeout für Client-Leerlauf. 
+  Ob zusätzliche Informationen aus SQL-Anweisungen zum Debuggen protokolliert werden sollen. 
+  Die IAM-Rolle, die zum Abrufen von Secrets Manager-Secrets verwendet wird. 
+  Die vom Proxy verwendeten Sicherheitsgruppen. 

Mit `ModifyDBProxyTargetGroup` können Sie verbindungsbezogene Einstellungen ändern. Derzeit haben alle Proxys eine einzelne Zielgruppe mit dem Namen `default`. Wenn Sie mit dieser Zielgruppe arbeiten, geben Sie den Namen des Proxys und `default` als Name der Zielgruppe an. Sie können die Standardzielgruppe nicht umbenennen.

 Mit `DeregisterDBProxyTargets` und `RegisterDBProxyTargets` ändern Sie, welcher welchem Aurora-Cluster der Proxy über die Zielgruppe zugeordnet ist. Derzeit kann jeder Proxy eine Verbindung mit einem Aurora-DB-Cluster herstellen. Die Zielgruppe verfolgt die Verbindungsdetails für die DB-Instances in einem Aurora-Cluster. 

# Hinzufügen eines neuen Datenbankbenutzers bei Verwendung von RDS-Proxy
<a name="rds-proxy-new-db-user"></a>

In einigen Fällen können Sie einen neuen Datenbankbenutzer zu einem Aurora-Cluster mit Proxy-Zuordnung hinzufügen. Fahren Sie fort, je nachdem, ob Sie die Standardauthentifizierung mit Secrets Manager Manager-Geheimnissen oder die end-to-end IAM-Authentifizierung verwenden.

Wenn Sie die Standard-IAM-Authentifizierung verwenden, folgen Sie diesen Anweisungen:

1. Erstellen Sie ein neues Secrets-Manager-Secret, indem Sie das unter beschriebene Verfahren verwende [Datenbankanmeldedaten für RDS Proxy einrichten](rds-proxy-secrets-arns.md). 

1. Aktualisieren Sie die IAM-Rolle, um RDS-Proxy Zugriff auf das neue Secrets Manager-Geheimnis zu gewähren. Aktualisieren Sie dazu den Ressourcenabschnitt der IAM-Rollenrichtlinie. 

1. Ändern Sie den RDS-Proxy, um das neue Secret von Secrets Manager unter **Secrets Manager Secrets** hinzuzufügen.

1.  Wenn der neue Benutzer an die Stelle eines vorhandenen Benutzers tritt, aktualisieren Sie die Anmeldeinformationen, die im Secrets Manager-Secret des Proxys für den vorhandenen Benutzer gespeichert sind. 

Wenn Sie die end-to-end IAM-Authentifizierung verwenden, müssen Sie den Datenbankbenutzer erstellen und IAM-Berechtigungen konfigurieren. Führen Sie dazu die folgenden Schritte aus:

1. Erstellen Sie einen neuen Datenbankbenutzer in Ihrer Datenbank, der dem IAM-Benutzer- oder Rollennamen entspricht, den Sie für die Authentifizierung verwenden möchten.

1. Stellen Sie sicher, dass der Datenbankbenutzer mit dem IAM-Authentifizierungs-Plugin in der Datenbank konfiguriert ist. Siehe [Erstellen eines Datenbankkontos mithilfe der IAM-Authentifizierung](UsingWithRDS.IAMDBAuth.DBAccounts.md).

1. Aktualisieren Sie die IAM-Richtlinie, um dem IAM-Benutzer oder der IAM-Rolle die `rds-db:connect` Berechtigung zu erteilen, wie unter beschrieben. [Eine IAM-Richtlinie für end-to-end die IAM-Authentifizierung erstellen](rds-proxy-iam-setup.md#rds-proxy-iam-setup-e2e-steps)

1. Stellen Sie sicher, dass Ihr Proxy so konfiguriert ist, dass er die IAM-Authentifizierung als Standardauthentifizierungsschema verwendet.

Mit der end-to-end IAM-Authentifizierung müssen Sie Datenbankanmeldedaten nicht in Secrets Manager Manager-Geheimnissen verwalten, da IAM-Anmeldeinformationen für die Authentifizierung vom Client zum Proxy und vom Proxy zur Datenbank verwendet werden. 

## Hinzufügen eines neuen Datenbankbenutzers zu einer PostgreSQL-Datenbank bei Verwendung von RDS-Proxy
<a name="rds-proxy-new-db-user-pg"></a>

Gehen Sie beim Hinzufügen eines neuen Benutzers zu Ihrer PostgreSQL-Datenbank wie folgt vor, wenn Sie den folgenden Befehl ausgeführt haben:

```
REVOKE CONNECT ON DATABASE postgres FROM PUBLIC;
```

Gewähren Sie dem Benutzer `rdsproxyadmin` die `CONNECT`-Berechtigung, damit der Benutzer Verbindungen in der Zieldatenbank überwachen kann. 

```
GRANT CONNECT ON DATABASE postgres TO rdsproxyadmin;
```

Sie können auch anderen Zieldatenbankbenutzern die Durchführung von Zustandsprüfungen ermöglichen, indem Sie im obigen Befehl `rdsproxyadmin` auf den Datenbankbenutzer ändern.

## Ändern des Passworts für einen Datenbankbenutzer bei Verwendung von RDS-Proxy
<a name="rds-proxy-changing-db-user-password"></a>

In einigen Fällen können Sie das Passwort für einen Datenbankbenutzer in einem Aurora-Cluster mit Proxy-Zuordnung ändern. Aktualisieren Sie dazu das entsprechende Secrets Manager-Secret mit dem neuen Passwort.

Wenn Sie die end-to-end IAM-Authentifizierung verwenden, müssen Sie keine Passwörter in Secrets Manager Secrets aktualisieren.

# Umstellung von der Standard-IAM-Authentifizierung zur end-to-end IAM-Authentifizierung für RDS Proxy
<a name="rds-proxy-iam-migration"></a>

 Wenn Sie derzeit die Standard-IAM-Authentifizierung für den RDS-Proxy verwenden, bei der sich Clients mit IAM am Proxy authentifizieren, der Proxy jedoch mithilfe von Geheimnissen eine Verbindung zur Datenbank herstellt, können Sie zur IAM-Authentifizierung migrieren, bei der client-to-proxy sowohl proxy-to-database Verbindungen als auch Verbindungen die end-to-end IAM-Authentifizierung verwenden. 

**Um zur IAM-Authentifizierung zu wechseln end-to-end**

1. **Aktualisieren Sie die IAM-Rollenberechtigungen für RDS Proxy**

   Erstellen Sie eine aktualisierte Proxy-Berechtigungsrichtlinie, die sowohl Secrets Manager als auch `rds:db-connect` Berechtigungen umfasst:

   ```
   # Create updated proxy permission policy
   cat > updated-proxy-policy.json ≪ EOF
   ```

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "GetSecretsValue",
         "Action": [
           "secretsmanager:GetSecretValue"
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:secretsmanager:us-east-1:123456789012:secret:secretName-1234f"
         ]
       },
       {
         "Sid": "RdsDBConnect",
         "Action": [
           "rds-db:connect"
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:rds-db:us-east-1:123456789012:dbuser:cluster-ABCDEFGHIJKL01234/jane_doe"
         ]
       }
     ]
   }
   ```

   Aktualisieren Sie den Proxy Ihrer Rollenrichtlinie:

   ```
   aws iam put-role-policy \
               --role-name RDSProxyRole \
               --policy-name UpdatedProxyPermissions \
               --policy-document file://updated-proxy-policy.json
   ```

1. Ändern Sie Ihren RDS-Proxy, um die end-to-end IAM-Authentifizierung zu aktivieren

   ```
   aws rds modify-db-proxy \
     --db-proxy-name my-database-proxy \
     --default-auth-scheme IAM_AUTH \
     --region us-east-1
   ```

   Stellen Sie sicher, dass der RDS-Proxystatus „**Verfügbar**“ `DefaultAuthScheme` lautet, `IAM_AUTH` bevor Sie fortfahren, um sicherzustellen, dass während der Migration keine Ausfallzeiten auftreten.

   ```
   aws rds describe-db-proxies --db-proxy-name my-database-proxy --region us-east-1
   ```

   Erwartete Ausgabe:

   ```
   {
     "DBProxies": [
       {
         "DBProxyName": "my-database-proxy",
         "DBProxyArn": "arn:aws:rds:us-east-1:123456789012:db-proxy:prx-0123456789abcdef",
         "Status": "available",
         ...
         "DefaultAuthScheme": "IAM_AUTH"
       }
     ]
   }
   ```

1. Aktivieren Sie die IAM-Authentifizierung in der Datenbank

   ```
   aws rds modify-db-cluster \
     --db-cluster-identifier my-database-cluster \
     --enable-iam-database-authentication \
     --region us-east-1
   ```

1. Konfigurieren Sie den Datenbankbenutzer für die IAM-Authentifizierung

   Für Aurora PostgreSQL:

   ```
   GRANT rds_iam TO jane_doe;
   ```

   Für Aurora MySQL:

   ```
   ALTER USER 'jane_doe' IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS';
   ALTER USER 'jane_doe'@'%' REQUIRE SSL;
   ```

1. Der Code Ihrer Client-Anwendung muss sich nicht ändern. Der Verbindungsvorgang bleibt derselbe:

   Für Aurora PostgreSQL:

   ```
   # Generate authentication token
   export PGPASSWORD=$(aws rds generate-db-auth-token \
     --hostname my-database-proxy.proxy-ABCDEFGHIJKL01234.us-east-1.rds.amazonaws.com \
     --port 5432 \
     --username jane_doe \
     --region us-east-1)
   
   # Connect to database through proxy
   psql "host=my-database-proxy.proxy-ABCDEFGHIJKL01234.us-east-1.rds.amazonaws.com port=5432 user=jane_doe dbname=postgres password=$PGPASSWORD sslmode=require sslrootcert=us-east-1-bundle.pem"
   ```

   Für Aurora MySQL:

   ```
   # Generate authentication token
   export MYSQL_PWD=$(aws rds generate-db-auth-token \
     --hostname my-database-proxy.proxy-ABCDEFGHIJKL01234.us-east-1.rds.amazonaws.com \
     --port 3306 \
     --username jane_doe \
     --region us-east-1)
   
   # Connect to database through proxy
   mysql -h my-database-proxy.proxy-ABCDEFGHIJKL01234.us-east-1.rds.amazonaws.com \
     -P 3306 \
     -u jane_doe \
     --ssl-ca=us-east-1-bundle.pem \
     --enable-cleartext-plugin
   ```

# Überlegungen zu RDS-Proxy-Verbindungen
<a name="rds-proxy-connections"></a>

## Konfigurieren der Verbindungseinstellungen
<a name="rds-proxy-connection-pooling-tuning"></a>

Um das Verbindungspooling von RDS-Proxy anzupassen, können Sie die folgenden Einstellungen ändern:
+ [IdleClientTimeout](#rds-proxy-connection-pooling-tuning.idleclienttimeout)
+ [MaxConnectionsPercent](#rds-proxy-connection-pooling-tuning.maxconnectionspercent)
+ [MaxIdleConnectionsPercent](#rds-proxy-connection-pooling-tuning.maxidleconnectionspercent)
+ [ConnectionBorrowTimeout](#rds-proxy-connection-pooling-tuning.connectionborrowtimeout)

### IdleClientTimeout
<a name="rds-proxy-connection-pooling-tuning.idleclienttimeout"></a>

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. Verringern Sie das Timeout für inaktive Client-Verbindungen, wenn der Proxy veraltete Verbindungen proaktiv entfernen soll. Wenn Ihr Workload häufige Verbindungen mit dem Proxy herstellt, erhöhen Sie das Timeout für inaktive Client-Verbindungen, um sich die Kosten für das Herstellen von Verbindungen zu sparen.

Diese Einstellung wird durch das Feld **Idle client connection timeout** (Zeitüberschreitung bei Client-Verbindungsinaktivität) in der RDS-Konsole und die Einstellung `IdleClientTimeout` in der AWS CLI und der API dargestellt. Informationen dazu, wie Sie den Wert des Felds **Idle client connection timeout** (Zeitüberschreitung bei Client-Verbindungsinaktivität) in der RDS-Konsole ändern, finden Sie unter [AWS-Managementkonsole](rds-proxy-modifying-proxy.md#rds-proxy-modifying-proxy.console). Informationen dazu, wie Sie den Wert der Einstellung `IdleClientTimeout` ändern, finden Sie unter dem CLI-Befehl [modify-db-proxy](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy.html) oder der API-Operation [ModifyDBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxy.html).

### MaxConnectionsPercent
<a name="rds-proxy-connection-pooling-tuning.maxconnectionspercent"></a>

Sie können die Anzahl der Verbindungen beschrä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 **Connection pool maximum connections** (Max. Verbindungen Verbindungspool) in der RDS-Konsole und die Einstellung `MaxConnectionsPercent` in der AWS CLI und der API dargestellt. 

Der Wert `MaxConnectionsPercent` wird als Prozentsatz der Einstellung `max_connections` für den Aurora-DB-Cluster ausgedrückt, die von der Zielgruppe verwendet wird. Der Proxy erstellt nicht alle diese Verbindungen im Voraus. Bei dieser Einstellung kann sich der Proxy das Recht vorbehalten, diese Verbindungen dann herzustellen, wenn der Workload sie benötigt.

Beispielsweise legt RDS-Proxy für ein registriertes Datenbankziel, für das `max_connections` auf 1000 und `MaxConnectionsPercent` auf 95 festgelegt ist, 950 Verbindungen als Obergrenze für gleichzeitige Verbindungen mit diesem Datenbankziel fest.

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 neu verteilt, können interne Kapazitätsänderungen mindestens 30 % Spielraum für zusätzliche Verbindungen erfordern, um erhöhte Ausleihlatenzen zu vermeiden.
+ RDS-Proxy reserviert eine bestimmte Anzahl von Verbindungen für die aktive Überwachung, um schnelles Failover, Weiterleitung von Datenverkehr und interne Operationen 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.

  Die folgenden Mindestwerte werden für `MaxConnectionsPercent` 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 dazu, wie Sie den Wert des Felds **Connection pool maximum connections** (Max. Verbindungen Verbindungspool) in der RDS-Konsole ändern, finden Sie unter [AWS-Managementkonsole](rds-proxy-modifying-proxy.md#rds-proxy-modifying-proxy.console). Informationen dazu, wie Sie den Wert der Einstellung `MaxConnectionsPercent` ändern, finden Sie unter dem CLI-Befehl [modify-db-proxy-target-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy-target-group.html) oder der API-Operation [ModifyDBProxyTargetGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxyTargetGroup.html).

**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](aurora-global-database-write-forwarding.md).

 Informationen zu Datenbankverbindungslimits finden Sie unter [Maximale Verbindungen zu einer Aurora-MySQL-DB-Instance](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Managing.Performance.html#AuroraMySQL.Managing.MaxConnections) und [Maximale Verbindungen zu einer Aurora-PostgreSQL-DB-Instance](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Managing.html#AuroraPostgreSQL.Managing.MaxConnections). 

### MaxIdleConnectionsPercent
<a name="rds-proxy-connection-pooling-tuning.maxidleconnectionspercent"></a>

Sie können die Anzahl inaktiver Datenbankverbindungen festlegen, die RDS-Proxy im Verbindungspool behalten kann. RDS-Proxy betrachtet eine Datenbankverbindung im Pool standardmäßig als *inaktiv*, wenn fünf Minuten lang keine Aktivität für die Verbindung aufgetreten ist. 

Der Wert `MaxIdleConnectionsPercent` wird als Prozentsatz der Einstellung `max_connections` für die Zielgruppe der RDS-DB-Instance verwendet. Der Standardwert ist 50 Prozent von `MaxConnectionsPercent` und die Obergrenze ist der Wert `MaxConnectionsPercent`. Wenn `MaxConnectionsPercent` beispielsweise 80 ist, ist der Standardwert von `MaxIdleConnectionsPercent` 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. Dies bedeutet, dass RDS-Proxy Aktivitätsspitzen verarbeiten kann, ohne viele neue Datenbankverbindungen zu öffnen. 

Diese Einstellung wird durch die Einstellung `MaxIdleConnectionsPercent` von `DBProxyTargetGroup` in der AWS CLI und der API dargestellt. Informationen dazu, wie Sie den Wert der Einstellung `MaxIdleConnectionsPercent` ändern, finden Sie unter dem CLI-Befehl [modify-db-proxy-target-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy-target-group.html) oder der API-Operation [ModifyDBProxyTargetGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxyTargetGroup.html).

 Informationen zu Datenbankverbindungslimits finden Sie unter [Maximale Verbindungen zu einer Aurora-MySQL-DB-Instance](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Managing.Performance.html#AuroraMySQL.Managing.MaxConnections) und [Maximale Verbindungen zu einer Aurora-PostgreSQL-DB-Instance](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Managing.html#AuroraPostgreSQL.Managing.MaxConnections). 

### ConnectionBorrowTimeout
<a name="rds-proxy-connection-pooling-tuning.connectionborrowtimeout"></a>

Sie können angeben, wie lange RDS-Proxy warten soll, bis eine Datenbankverbindung im Verbindungspool verfügbar ist, 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 Datenbank-Instance zur Bearbeitung der Anfrage verfügbar ist, beispielsweise wenn gerade ein Failover-Vorgang durchgeführt wird. Mit dieser Einstellung können Sie die beste Wartezeit für Ihre Anwendung festlegen, ohne das Abfrage-Timeout im Anwendungscode zu ändern.

Diese Einstellung wird durch das Feld **Connection borrow timeout** (Zeitüberschreitung für die Verbindung) in der RDS-Konsole oder die Einstellung `ConnectionBorrowTimeout` von `DBProxyTargetGroup` in der AWS CLI oder API dargestellt. Informationen dazu, wie Sie den Wert des Felds **Connection borrow timeout** (Zeitüberschreitung für die Verbindung) in der RDS-Konsole ändern, finden Sie unter [AWS-Managementkonsole](rds-proxy-modifying-proxy.md#rds-proxy-modifying-proxy.console). Informationen dazu, wie Sie den Wert der Einstellung `ConnectionBorrowTimeout` ändern, finden Sie unter dem CLI-Befehl [modify-db-proxy-target-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy-target-group.html) oder der API-Operation [ModifyDBProxyTargetGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxyTargetGroup.html).

## Client- und Datenbankverbindungen
<a name="rds-proxy-connection-life"></a>

Verbindungen von Ihrer Anwendung zum RDS-Proxy werden als Client-Verbindungen bezeichnet. Verbindungen von einem Proxy zur Datenbank sind Datenbankverbindungen. Bei Verwendung von RDS-Proxy 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 RDS-Proxy reduziert wird.

Berücksichtigen Sie die folgenden Konfigurationsaspekte, bevor Sie einen anwendungsseitigen Verbindungspool implementieren:
+ Maximale Client-Verbindungsdauer: RDS-Proxy erzwingt eine maximale Client-Verbindungsdauer 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 bei Inaktivität der Client-Verbindung: RDS-Proxy erzwingt eine maximale Leerlaufzeit für Client-Verbindungen. Konfigurieren Sie Ihren Pool mit einem Timeout für inaktive Verbindungen, der niedriger ist als die Einstellung für das Leerlaufzeitlimit für Client-Verbindungen für den RDS-Proxy, um unerwartete Verbindungsabbrüche zu vermeiden.

Die maximale Anzahl von Client-Verbindungen, die in Ihrem anwendungsseitigen Verbindungs-Pool konfiguriert ist, muss nicht auf die Einstellung **max\$1connections** für RDS-Proxy beschränkt sein.

Das Pooling von Client-Verbindungen führt zu einer längeren Client-Verbindungsdauer. Wenn es bei Ihren Verbindungen zum Pinning kommt, kann das Pooling von Client-Verbindungen die Effizienz des Multiplexings verringern. Client-Verbindungen, die im anwendungsseitigen Verbindungs-Pool gepinnt, aber inaktiv sind, behalten weiterhin eine Datenbankverbindung und verhindern, dass die Datenbankverbindung von anderen Client-Verbindungen wiederverwendet wird. Überprüfen Sie Ihre Proxy-Protokolle, um zu ermitteln, ob bei Ihren Verbindungen ein Pinning auftritt.

**Anmerkung**  
RDS-Proxy schließt Datenbankverbindungen 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.

# Vermeiden von Pinning beim RDS-Proxy
<a name="rds-proxy-pinning"></a>

 Multiplexing ist effizienter, wenn Datenbankanforderungen nicht auf Statusinformationen aus früheren Anforderungen angewiesen sind. In diesem Fall kann RDS-Proxy eine Verbindung zum Abschluss jeder Transaktion wiederverwenden. Beispiele für solche Zustandsinformationen sind die meisten Variablen und Konfigurationsparameter, die Sie durch `SET`-oder `SELECT`-Anweisungen ändern können. SQL-Transaktionen auf einer Clientverbindung können standardmäßig zwischen zugrunde liegenden Datenbankverbindungen Multiplexing durchführen. 

 Ihre Verbindungen zum Proxy können einen Status eingeben, der als *Pinning (Fixieren)* bezeichnet wird. Wenn eine Verbindung angeheftet wird, verwendet jede spätere Transaktion dieselbe zugrunde liegende Datenbankverbindung, bis die Sitzung beendet ist. Andere Clientverbindungen können diese Datenbankverbindung auch erst dann wieder verwenden, wenn die Sitzung beendet ist. Die Sitzung wird beendet, wenn die Clientverbindung unterbrochen wird. 

 RDS-Proxy heftet automatisch eine Clientverbindung an eine bestimmte DB-Verbindung an, wenn eine Sitzungsstatusänderung erkannt wird, die für andere Sitzungen nicht geeignet ist. Das Fixieren verringert die Effektivität der Wiederverwendung der Verbindung. Wenn alle oder fast alle Verbindungen fixiert sind, können Sie Ihren Anwendungscode oder Ihre Workload ändern, um dafür zu sorgen, dass Fixierungen weniger erforderlich sind. 

Ihre Anwendung ändert beispielsweise eine Sitzungsvariable oder einen Konfigurationsparameter. In diesem Fall können sich spätere Anweisungen darauf verlassen, dass die neue Variable oder der neue Parameter wirksam ist. Wenn also RDS-Proxy Anforderungen verarbeitet, um Sitzungsvariablen oder Konfigurationseinstellungen zu ändern, wird diese Sitzung an die DB-Verbindung fixiert. Auf diese Weise bleibt der Sitzungsstatus für alle späteren Transaktionen in derselben Sitzung gültig. 

 Bei Datenbank-Engines gilt diese Regel nicht für alle Parameter, die Sie festlegen können. RDS-Proxy verfolgt bestimmte Anweisungen und Variablen. RDS-Proxy nimmt somit kein Pinning einer Sitzung vor, wenn Sie diese ändern. In diesem Fall verwendet RDS-Proxy nur die Verbindung für andere Sitzungen erneut, die dieselben Werte für diese Einstellungen haben. Die Listen der verfolgten Anweisungen und Variablen für Aurora MySQL finden Sie unter [Welche Daten RDS-Proxy für Aurora-MySQL-Datenbanken verfolgt](#rds-proxy-pinning.mysql-tracked-vars). 

## Welche Daten RDS-Proxy für Aurora-MySQL-Datenbanken verfolgt
<a name="rds-proxy-pinning.mysql-tracked-vars"></a>

RDS-Proxy verfolgt die folgenden MySQL-Anweisungen:
+ DROP DATABASE
+ DROP SCHEMA
+ USE

RDS-Proxy verfolgt die folgenden MySQL-Variablen:
+ `AUTOCOMMIT`
+ `AUTO_INCREMENT_INCREMENT`
+ `CHARACTER SET (or CHAR SET)`
+ `CHARACTER_SET_CLIENT`
+ `CHARACTER_SET_DATABASE`
+ `CHARACTER_SET_FILESYSTEM`
+ `CHARACTER_SET_CONNECTION`
+ `CHARACTER_SET_RESULTS`
+ `CHARACTER_SET_SERVER`
+ `COLLATION_CONNECTION`
+ `COLLATION_DATABASE`
+ `COLLATION_SERVER`
+ `INTERACTIVE_TIMEOUT`
+ `NAMES`
+ `NET_WRITE_TIMEOUT`
+ `QUERY_CACHE_TYPE`
+ `SESSION_TRACK_SCHEMA`
+ `SQL_MODE`
+ `TIME_ZONE`
+ `TRANSACTION_ISOLATION (or TX_ISOLATION)`
+ `TRANSACTION_READ_ONLY (or TX_READ_ONLY)`
+ `WAIT_TIMEOUT`

**Anmerkung**  
RDS-Proxy verfolgt Änderungen an den Variablen `TRANSACTION_ISOLATION` und `TRANSACTION_READ_ONLY`, wenn Sie sie im Sitzungsbereich festlegen. Wenn Sie sie jedoch für den nächsten Transaktionsbereich festlegen, heftet der RDS-Proxy Verbindungen an. Dieses Verhalten gilt unabhängig davon, ob Sie eine `SET`- oder eine `SET TRANSACTION`-Anweisung verwenden, um diese Werte zu konfigurieren.

## Minimieren des Fixierens
<a name="rds-proxy-pinning.minimizing"></a>

 Die Leistungsoptimierung für RDS-Proxy beinhaltet den Versuch, die Wiederverwendung von Verbindungen auf Transaktionsebene (Multiplexing) zu maximieren, indem das Fixieren minimiert wird. 

Sie können das Fixieren wie folgt minimieren: 
+  Vermeiden Sie unnötige Datenbankanforderungen, die Anheften (Pinning) verursachen könnten. 
+  Legen Sie Variablen und Konfigurationseinstellungen konsistent über alle Verbindungen hinweg fest. Auf diese Weise verwenden spätere Sitzungen häufiger Verbindungen, die über diese speziellen Einstellungen verfügen. 

   Wenn für PostgreSQL jedoch eine Variable festgelegt wird, wird die Sitzung durch Pinning fixiert. 
+  Wenden Sie bei einer MySQL-Engine-Familiendatenbank einen Sitzungs-Pinning-Filter auf den Proxy an. Sie können bestimmte Arten von Operationen vom Fixieren der Sitzung ausnehmen, wenn Sie wissen, dass dies den korrekten Betrieb Ihrer Anwendung nicht beeinträchtigt. 
+  Sehen Sie sich anhand der CloudWatch Amazon-Metrik `DatabaseConnectionsCurrentlySessionPinned` an, wie häufig das Anheften erfolgt. Hinweise zu diesen und anderen CloudWatch-Metriken finden Sie unter [Überwachen von RDS-Proxy-Metriken mit Amazon CloudWatchÜberwachen von RDS-Proxy mit CloudWatch](rds-proxy.monitoring.md). 
+  Wenn Sie `SET`-Anweisungen verwenden, um eine identische Initialisierung für jede Clientverbindung durchzuführen, können Sie dies tun, während Sie das Multiplexing auf Transaktionsebene beibehalten. In diesem Fall verschieben Sie die Anweisungen, die den ursprünglichen Sitzungsstatus einrichten, in die Initialisierungsabfrage, die von einem Proxy verwendet wird. Diese Eigenschaft ist eine Zeichenfolge, die eine oder mehrere SQL-Anweisungen enthält, die durch Semikola getrennt sind. 

   Beispielsweise können Sie eine Initialisierungsabfrage für einen Proxy definieren, der bestimmte Konfigurationsparameter festlegt. RDS-Proxy wendet dann diese Einstellungen an, wenn eine neue Verbindung für diesen Proxy eingerichtet wird. Sie können die entsprechenden `SET`-Anweisungen aus Ihrem Anwendungscode entfernen, damit sie das Multiplexing auf Transaktionsebene nicht beeinträchtigen. 

   Metriken zur Häufigkeit des Pinnings für einen Proxy finden Sie unter [Überwachen von RDS-Proxy-Metriken mit Amazon CloudWatchÜberwachen von RDS-Proxy mit CloudWatch](rds-proxy.monitoring.md). 

## Bedingungen, die für alle Engine-Familien zum Pinning führen
<a name="rds-proxy-pinning.all"></a>

 Der Proxy fixiert die Sitzung an der aktuellen Verbindung in den folgenden Situationen an, in denen Multiplexing unerwartetes Verhalten verursachen kann: 
+ Jede Anweisung mit einer Textgröße über 16 KB bewirkt, dass der Proxy die Sitzung fixiert.

## Bedingungen, die das Fixieren für Aurora MySQL verursachen
<a name="rds-proxy-pinning.mysql"></a>

 Bei MySQL verursachen die folgenden Interaktionen ein Pinning: 
+ Die expliziten MySQL-Anweisungen `LOCK TABLE`, `LOCK TABLES` oder `FLUSH TABLES WITH READ LOCK` bewirken, dass der Proxy ein Pinning der Sitzung vornimmt. 
+ Durch Erstellen benannter Sperren mit `GET_LOCK` wird bewirkt, dass der Proxy ein Pinning der Sitzung vornimmt. 
+ Wenn Sie eine Benutzervariable oder eine Systemvariable festlegen (mit einigen Ausnahmen), wird die Sitzung an den Proxy angeheftet. Wenn dadurch die Wiederverwendung von Verbindungen erheblich eingeschränkt wird, können Sie `SET`-Vorgänge so konfigurieren, dass das Pinning vermieden wird. Passen Sie dazu die Eigenschaft für Sitzungs-Pinning-Filter an. Weitere Informationen erhalten Sie unter [Erstellen eines Proxys für Amazon Aurora](rds-proxy-creating.md) und [Ändern eines RDS-Proxy](rds-proxy-modifying-proxy.md).
+ Beim Erstellen einer temporären Tabelle fixiert der Proxy die Sitzung. Auf diese Weise wird der Inhalt der temporären Tabelle während der gesamten Sitzung beibehalten, unabhängig von den Transaktionsgrenzen. 
+ Der Aufruf der Funktionen `ROW_COUNT` und `FOUND_ROWS` verursacht manchmal Pinning. 

  Die genauen Umstände, unter denen diese Funktionen Pinning verursachen, können sich zwischen Aurora-MySQL-Versionen unterscheiden, die mit MySQL 5.7 kompatibel sind.
+ Vorbereitete Anweisungen bewirken, dass der Proxy die Sitzung fixiert. Diese Regel bestimmt, ob die vorbereitete Anweisung SQL-Text oder das Binärprotokoll verwendet. 
+ RDS-Proxy pingt keine Verbindungen an, wenn Sie SET LOCAL verwenden.
+ Das Aufrufen von gespeicherten Prozeduren und gespeicherten Funktionen verursacht kein Pinning. RDS-Proxy erkennt keine Änderungen des Sitzungsstatus, die aus solchen Aufrufen resultieren. Stellen Sie sicher, dass Ihre Anwendung den Sitzungsstatus in gespeicherten Routinen nicht ändert, wenn Sie darauf angewiesen sind, dass dieser Sitzungsstatus transaktionsübergreifend beibehalten wird. Beispielsweise ist RDS-Proxy derzeit nicht mit einer gespeicherten Prozedur kompatibel, die eine temporäre Tabelle erstellt, die transaktionsübergreifend bestehen bleiben soll. 
+ Abfragen mit ausführbaren Kommentaren für MySQL (Syntax /\$1\$1 ... \$1/) oder MariaDB (Syntax /\$1M\$1 ... \$1/) verursachen Pinning. RDS Proxy kann in diesen Kommentaren eingebettetes SQL nicht analysieren, um Änderungen des Sitzungsstatus nachzuverfolgen.

 Wenn Sie über eingehende Kenntnisse über das Verhalten Ihrer Anwendung verfügen, können Sie das Pinning-Verhalten für bestimmte Anwendungsanweisungen überspringen. Dazu wählen Sie beim Erstellen des Proxys die Option **Sitzungs-Pinning-Filter**. Derzeit können Sie das Sitzungs-Pinning für das Festlegen von Sitzungsvariablen und Konfigurationseinstellungen deaktivieren. 

## Bedingungen, die das Fixieren für Aurora PostgreSQL verursachen
<a name="rds-proxy-pinning.postgres"></a>

 Für PostgreSQL verursachen die folgenden Interaktionen eine Fixierung: 
+  Verwenden von `SET`-Befehlen
+  Verwenden der Befehle `PREPARE`, `DISCARD`, `DEALLOCATE` oder `EXECUTE` zur Verwaltung von vorbereiteten Anweisungen
+  Erstellen von temporären Sequenzen, Tabellen oder Ansichten
+  Deklarieren von Cursors
+  Verwerfen des Sitzungsstatus
+  Listening für einen Benachrichtigungskanal
+  Laden eines Bibliotheksmoduls wie `auto_explain`
+  Manipulieren von Sequenzen mit Funktionen wie `nextval` und `setval`
+  Interagieren mit Sperren mit Funktionen wie `pg_advisory_lock` und `pg_try_advisory_lock` 
**Anmerkung**  
RDS-Proxy führt kein Pinning für Advisor-Sperren auf Transaktionsebene durch. Dies gilt insbesondere für `pg_advisory_xact_lock`, `pg_advisory_xact_lock_shared`, `pg_try_advisory_xact_lock` und `pg_try_advisory_xact_lock_shared`.
+ Festlegen eines Parameters oder Zurücksetzen eines Parameters auf den Standardwert Insbesondere die Verwendung der Befehle `SET` und `set_config` zum Zuweisen von Standardwerten zu Sitzungsvariablen.
+ Das Aufrufen von gespeicherten Prozeduren und gespeicherten Funktionen verursacht kein Pinning. RDS-Proxy erkennt keine Änderungen des Sitzungsstatus, die aus solchen Aufrufen resultieren. Stellen Sie sicher, dass Ihre Anwendung den Sitzungsstatus in gespeicherten Routinen nicht ändert, wenn Sie darauf angewiesen sind, dass dieser Sitzungsstatus transaktionsübergreifend beibehalten wird. Beispielsweise ist RDS-Proxy derzeit nicht mit einer gespeicherten Prozedur kompatibel, die eine temporäre Tabelle erstellt, die transaktionsübergreifend bestehen bleiben soll. 
+ Verwerfen des Sitzungsstatus Wenn Sie Verbindungspooling-Bibliotheken verwenden, deren `DISCARD ALL`-Abfrage als Reset-Abfrage konfiguriert ist, fixiert RDS-Proxy Ihre Client-Verbindung bei der Freigabe. Dies verringert die Effizienz des Multiplexings des Proxys und kann zu unerwarteten Ergebnissen führen, da der Befehl `DISCARD ALL` die Sitzungsstatusverwaltung beeinträchtigen kann.

# Löschen eines RDS-Proxy
<a name="rds-proxy-deleting"></a>

 Sie können einen Proxy löschen, wenn Sie ihn nicht mehr benötigen. Oder Sie löschen einen Proxy, wenn Sie die/den mit ihm verknüpfte DB-Instance oder -Cluster außer Betrieb nehmen. 

## AWS-Managementkonsole
<a name="rds-proxy-deleting.console"></a>

**So löschen Sie einen Proxy:**

1. Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon-RDS-Konsole unter [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1.  Wählen Sie im Navigationsbereich **Proxies (Proxys)**. 

1.  Wählen Sie den zu löschenden Proxy aus der Liste aus. 

1.  Wählen Sie **Delete Proxy (Proxy löschen)**. 

## AWS CLI
<a name="rds-proxy-deleting.CLI"></a>

 Um einen DB-Proxy zu löschen, verwenden Sie den AWS CLI-Befehl [delete-db-proxy](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-proxy.html). Um zugehörige Zuordnungen zu entfernen, verwenden Sie auch den Befehl [deregister-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/deregister-db-proxy-targets.html) . 

```
aws rds delete-db-proxy --name proxy_name
```

```
aws rds deregister-db-proxy-targets
    --db-proxy-name proxy_name
    [--target-group-name target_group_name]
    [--target-ids comma_separated_list]       # or
    [--db-instance-identifiers instance_id]       # or
    [--db-cluster-identifiers cluster_id]
```

## RDS-API
<a name="rds-proxy-deleting.API"></a>

 Um einen DB-Proxy zu löschen, rufen Sie die Amazon-RDS-API-Funktion [DeleteDBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBProxy.html) auf. Um verwandte Elemente und Zuordnungen zu löschen, rufen Sie auch die Funktionen [DeleteDBProxyTargetGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBProxyTargetGroup.html) und [DeregisterDBProxyTargets](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeregisterDBProxyTargets.html) auf. 

# Arbeiten mit Amazon-RDS-Proxy-Endpunkten
<a name="rds-proxy-endpoints"></a>

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:
+ **Überwachung und Fehlerbehebung vereinfachen** – Verwenden Sie mehrere Endpunkte, um Verbindungen von verschiedenen Anwendungen unabhängig voneinander nachzuverfolgen und zu verwalten.
+ **Leseskalierbarkeit verbessern** – Nutzen Sie Leser-Endpunkte mit Aurora-DB-Clustern, um den Leseverkehr effizient zu verteilen und so die Leistung für abfrageintensive Workloads zu optimieren.
+ **VPC-übergreifenden Zugriff ermöglichen** – Verbinden Sie Datenbanken über VPCs hinweg, indem Sie VPC-übergreifende Endpunkte verwenden, sodass Ressourcen wie Amazon-EC2-Instances in einer VPC auf Datenbanken in einer anderen zugreifen können.

**Topics**
+ [Überblick über Proxy-Endpunkte](#rds-proxy-endpoints-overview)
+ [Limits für Proxy-Endpunkte](#rds-proxy-endpoints-limits)
+ [Verwenden von Reader-Endpunkten mit Aurora-Clustern](#rds-proxy-endpoints-reader)
+ [Zugriff auf Aurora über VPCs](#rds-proxy-cross-vpc)
+ [Erstellen eines Proxy-Endpunktes](rds-proxy-endpoints.CreatingEndpoint.md)
+ [Anzeigen von Proxy-Endpunkten](rds-proxy-endpoints.DescribingEndpoint.md)
+ [Ändern eines Proxy-Endpunkts](rds-proxy-endpoints.ModifyingEndpoint.md)
+ [Löschen eines Proxy-Endpunkts](rds-proxy-endpoints.DeletingEndpoint.md)

## Überblick über Proxy-Endpunkte
<a name="rds-proxy-endpoints-overview"></a>

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-Endpunktverbindungen](Aurora.Overview.Endpoints.md). 

Wenn Sie RDS-Proxy mit einem Aurora-Cluster verwenden, unterstützt der Standardendpunkt sowohl Lese- als auch Schreibvorgänge. Das bedeutet, dass er alle Anforderungen 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 read/write oder schreibgeschützte Endpunkte für Ihren Proxy erstellen, was ein effizienteres Workload-Management und eine verbesserte Skalierbarkeit ermöglicht.

Verwenden Sie zum Verarbeiten von Leseabfragen einen schreibgeschützten Endpunkt mit Ihrem Proxy, genauso wie Sie bei einem Reader-Endpunkt für einen von Aurora bereitgestellten Cluster vorgehen würden. Dieser Ansatz maximiert die Leseskalierbarkeit von Aurora, indem Abfragen auf eine oder mehrere Reader-DB-Instances verteilt werden. Indem Sie einen schreibgeschützten Endpunkt verwenden und nach Bedarf mehr Reader-Instances hinzufügen, können Sie die Anzahl gleichzeitiger 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-Managementkonsole, 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](#rds-proxy-endpoints-reader). 

Wenn Sie einen Proxy-Endpunkt erstellen, den Sie ihn einer anderen Virtual Private Cloud (VPC) als der des Proxys zuordnen. Auf diese Weise können Sie über eine andere VPC eine Verbindung zum Proxy herstellen, beispielsweise über eine VPC, die von einer anderen Anwendung innerhalb Ihres Unternehmens verwendet wird. 

Informationen zu Limits im Zusammenhang mit Proxy-Endpunkten finden Sie unter [Limits für Proxy-Endpunkte](#rds-proxy-endpoints-limits). 

In den RDS-Proxy-Protokollen wird jedem Eintrag der Name des zugehörigen Proxy-Endpunkts vorangestellt. Dies kann entweder der Name sein, den Sie für einen benutzerdefinierten Endpunkt angegeben haben, oder der spezielle Name `default` für den read/write Standardendpunkt des Proxys.

Jeder Proxy-Endpunkt hat seinen eigenen Satz von CloudWatch Metriken. Überwachen Sie Metriken für alle Proxy-Endpunkte, einen bestimmten Endpunkt oder alle read/write oder nur lesbare Endpunkte eines Proxys. Weitere Informationen finden Sie unter [Überwachen von RDS-Proxy-Metriken mit Amazon CloudWatchÜberwachen von RDS-Proxy mit CloudWatch](rds-proxy.monitoring.md). 

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](rds-proxy-gdb.md#rds-proxy-gdb.endpoints).

## Limits für Proxy-Endpunkte
<a name="rds-proxy-endpoints-limits"></a>

Für RDS-Proxy-Endpunkte gelten die folgenden Beschrä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. 
+  Für IPv6 oder Dual-Stack-Endpunkt-Netzwerktypen müssen Ihre VPC und Subnetze so konfiguriert sein, dass sie den ausgewählten Netzwerktyp unterstützen. 

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 über die Amazon-VPC-Konsole 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 von RDS-Proxy](https://aws.amazon.com/rds/proxy/pricing/).

## Verwenden von Reader-Endpunkten mit Aurora-Clustern
<a name="rds-proxy-endpoints-reader"></a>

 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 ändern Sie ggf. das Ziel des Proxys in einen Aurora-Cluster, der nur einen 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
<a name="rds-proxy-endpoints-reader-ha"></a>

 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
<a name="rds-proxy-endpoints-reader-scalability"></a>

 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 RDS-Proxy-Konzepte](rds-proxy.howitworks.md#rds-proxy-overview). 
+  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
<a name="rds-proxy-endpoints-reader-examples"></a>

 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 DB-Instance-Namen zu überprüfen, um festzustellen, ob die Verbindung schreibgeschützt oder schreibgeschützt ist. read/write 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
  -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. 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
<a name="rds-proxy-cross-vpc"></a>

 Standardmäßig befinden sich die Komponenten Ihres Aurora--Technologie-Stacks alle in derselben Amazon-VPC. Nehmen wir zum Beispiel an, dass eine Anwendung in einer Amazon-EC2-Instance eine Verbindung mit einem 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 einen Aurora-DB-Cluster in einer VPC aus Ressourcen wie EC2-Instances in einer anderen VPC festlegen. 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-übergreifenden Endpunkt befindet sich jedoch in der anderen VPC bei den anderen Ressourcen wie den EC2-Instances. Der VPC-übergreifende Endpunkt ist mit Subnetzen und Sicherheitsgruppen aus derselben VPC wie der EC2 und anderen Ressourcen verknüpft. 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: 

1.  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 zugehörige 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](CHAP_GettingStartedAurora.md) für die Schritte zum Einrichten einer anderen VPC zur erfolgreichen Verwendung von Aurora konsultieren. . Sie können Ihre vorhandene VPC auch in der Konsole Amazon EC2 untersuchen, um zu sehen, welche Arten von Ressourcen miteinander zu verbinden sind. 

1.  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 [Erstellen eines Proxys für Amazon Aurora](rds-proxy-creating.md). 

1.  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](rds-proxy-endpoints.CreatingEndpoint.md). 

1.  Wählen Sie aus, ob der VPC-übergreifende Endpunkt read/write oder schreibgeschützt werden soll. 

1.  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. 

1.  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. 

1. 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. In ähnlicher Weise funktionieren Ihre IAM-Konfiguration und Ihre Berechtigungen bei Verwendung der IAM-Authentifizierung auf allen Proxy-Endpunkten einheitlich, auch wenn sich die Endpunkte an unterschiedlichen Standorten befinden. VPCs Pro Endpunkt ist keine zusätzliche IAM-Konfiguration erforderlich.

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

1.  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. 

1.  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-Instance in dieser VPC zu erstellen. Melden Sie sich dann bei der EC2-Instance an und führen Sie die Befehle `mysql` oder `psql` aus, um eine Verbindung mit dem Endpunktwert in Ihrer Verbindungszeichenfolge herzustellen. 

# Erstellen eines Proxy-Endpunktes
<a name="rds-proxy-endpoints.CreatingEndpoint"></a>

Befolgen Sie diese Anleitungen zum Erstellen eines Proxy-Endpunkts:

## Konsole
<a name="rds-proxy-endpoints.CreatingEndpoint.CON"></a>

**So erstellen Sie einen Proxy-Endpunkt**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon RDS-Konsole unter [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1.  Wählen Sie im Navigationsbereich **Proxies (Proxys)**. 

1.  Klicken Sie auf den Namen des Proxys, für den Sie einen neuen Endpunkt erstellen möchten. 

    Die Detailseite für diesen Proxy wird angezeigt. 

1.  Im Abschnitt **Proxy-Endpunkte** wählen Sie **Proxy-Endpunkt erstellen**. 

    Das Fenster **Proxy-Endpunkt erstellen** wird angezeigt. 

1.  Für **Name des Proxy-Endpunkts** geben Sie einen beschreibenden Namen Ihrer Wahl ein. 

1.  Wählen Sie für die **Target-Rolle** aus, ob der Endpunkt schreibgeschützt read/write oder schreibgeschützt werden soll. 

    Verbindungen, die read/write Endpunkte verwenden, können alle Arten von Vorgängen ausführen, z. B. DDL-Anweisungen (Data Definition Language), DML-Anweisungen (Data Manipulation Language) und Abfragen. Diese Endpunkte stellen immer eine Verbindung mit der primären Instance des Aurora-Clusters her. Sie können read/write Endpunkte für allgemeine Datenbankoperationen verwenden, wenn Sie in Ihrer Anwendung nur einen einzigen Endpunkt verwenden. Sie können read/write Endpunkte auch für Verwaltungsvorgänge, OLTP-Anwendungen (Online Transaction Processing) und extract-transform-load (ETL) -Jobs verwenden. 

    Verbindungen, die einen schreibgeschützten Endpunkt verwenden, können nur Abfragen durchführen. Wenn es mehrere Reader-Instances im Aurora-Cluster gibt, kann RDS-Proxy für jede Verbindung mit dem Endpunkt eine andere Reader-Instance verwenden. Auf diese Weise kann eine abfrageintensive Anwendung die Clustering-Fähigkeit von Aurora nutzen. Sie können dem Cluster mehr Abfragekapazität hinzufügen, indem Sie weitere Reader-DB-Instances hinzufügen. Diese schreibgeschützten Verbindungen verursachen keinen Overhead für die primäre Instance des Clusters. Auf diese Weise verlangsamen Ihre Berichts- und Analyseabfragen die Schreibvorgänge Ihrer OLTP-Anwendungen nicht. 

1.  Wählen Sie für **Virtual Private Cloud (VPC)** die Standardeinstellung für den Zugriff auf den Endpunkt von denselben EC2 Instanzen oder anderen Ressourcen aus, die normalerweise für den Zugriff auf den Proxy oder die zugehörige Datenbank verwendet werden. Wenn Sie den VPC-übergreifenden Zugriff für diesen Proxy einrichten möchten, wählen Sie eine andere VPC als die Standard-VPC aus. Weitere Informationen zum VPC-übergreifenden Zugriff finden Sie unter [Zugriff auf Aurora über VPCs](rds-proxy-endpoints.md#rds-proxy-cross-vpc). 

1.  Wählen Sie für den **Netzwerktyp des Endpunkts** die IP-Version für den Proxy-Endpunkt aus. Die folgenden Optionen sind verfügbar:
   + **IPv4**— Der Proxy-Endpunkt verwendet nur IPv4 Adressen (Standard).
   + **IPv6**— Der Proxy-Endpunkt verwendet nur IPv6 Adressen.
   + **Dual-Stack** — Der Proxy-Endpunkt unterstützt IPv4 sowohl IPv6 Adressen als auch.

   Um Dual-Stack verwenden zu können IPv6 , müssen Ihre VPC und Subnetze so konfiguriert sein, dass sie den ausgewählten Netzwerktyp unterstützen.

1.  Für **Subnetze** füllt RDS-Proxy standardmäßig dieselben Subnetze wie der zugehörige Proxy aus. Wenn Sie den Zugriff auf den Endpunkt einschränken möchten, damit nur ein Teil des Adressbereichs der VPC eine Verbindung herstellen kann, entfernen Sie ein oder mehrere Subnetze. 

1.  Für die **VPC-Sicherheitsgruppe** können Sie eine vorhandene Sicherheitsgruppe auswählen oder eine neue erstellen. Standardmäßig füllt RDS-Proxy dieselbe Sicherheitsgruppe oder Gruppen wie der zugehörige Proxy aus. Wenn die eingehenden und ausgehenden Regeln für den Proxy für diesen Endpunkt geeignet sind, behalten Sie die Standardauswahl bei. 

    Wenn Sie eine neue Sicherheitsgruppe erstellen möchten, geben Sie auf dieser Seite einen Namen für die Sicherheitsgruppe an. Bearbeiten Sie dann später die Sicherheitsgruppeneinstellungen von der EC2 Konsole aus. 

1.  Wählen Sie **Proxy-Endpunkt erstellen**. 

## AWS CLI
<a name="rds-proxy-endpoints.CreatingEndpoint.CLI"></a>

 Verwenden Sie den AWS CLI [create-db-proxy-endpoint](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-proxy-endpoint.html)Befehl, um einen Proxy-Endpunkt zu erstellen. 

 Nutzen Sie die folgenden erforderlichen Parameter: 
+  `--db-proxy-name value` 
+  `--db-proxy-endpoint-name value` 
+  `--vpc-subnet-ids list_of_ids`. Trennen Sie das Subnetz IDs durch Leerzeichen. Sie geben die ID der VPC selbst nicht an. 

 Sie können auch die folgenden optionalen Parameter angeben: 
+  `--target-role { READ_WRITE | READ_ONLY }`. Dieser Parameter lautet standardmäßig `READ_WRITE`. Der Wert `READ_ONLY` hat nur Auswirkungen auf von Aurora bereitgestellte Cluster, die eine oder mehrere Reader-DB-Instances enthalten. Wenn der Proxy einem Aurora-Cluster zugeordnet ist, der nur eine Writer-DB-Instance enthält, können Sie `READ_ONLY` nicht angeben. Weitere Informationen zur beabsichtigten Verwendung von schreibgeschützten Endpunkten mit Aurora-Clustern finden Sie unter [Verwenden von Reader-Endpunkten mit Aurora-Clustern](rds-proxy-endpoints.md#rds-proxy-endpoints-reader) . 
+  `--vpc-security-group-ids value`. Trennen Sie die Sicherheitsgruppe IDs durch Leerzeichen. Wenn Sie diesen Parameter weglassen, verwendet RDS-Proxy die Standardsicherheitsgruppe für die VPC. RDS Proxy bestimmt die VPC auf der Grundlage des Subnetzes IDs , das Sie für den `--vpc-subnet-ids` Parameter angeben. 
+  `--endpoint-network-type { IPV4 | IPV6 | DUAL }`. Dieser Parameter gibt die IP-Version für den Proxy-Endpunkt an. Der Standardwert ist `IPV4`. Um `IPV6` oder `DUAL` zu verwenden, müssen Ihre VPC und Subnetze so konfiguriert sein, dass sie den ausgewählten Netzwerktyp unterstützen. 

**Example**  
 Im folgenden Beispiel wird ein Proxy-Endpunkt mit dem Namen erstell `my-endpoint`.   
Für Linux, macOS oder Unix:  

```
aws rds create-db-proxy-endpoint \
  --db-proxy-name my-proxy \
  --db-proxy-endpoint-name my-endpoint \
  --vpc-subnet-ids subnet_id subnet_id subnet_id ... \
  --target-role READ_ONLY \
  --vpc-security-group-ids security_group_id \
  --endpoint-network-type DUAL
```
Für Windows:  

```
aws rds create-db-proxy-endpoint ^
  --db-proxy-name my-proxy ^
  --db-proxy-endpoint-name my-endpoint ^
  --vpc-subnet-ids subnet_id_1 subnet_id_2 subnet_id_3 ... ^
  --target-role READ_ONLY ^
  --vpc-security-group-ids security_group_id ^
  --endpoint-network-type DUAL
```

## RDS-API
<a name="rds-proxy-endpoints.CreatingEndpoint.API"></a>

 Verwenden Sie die Aktion „Endpunkt erstellen“ der RDS-API, um einen [DBProxyProxy-Endpunkt zu erstellen](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBProxyEndpoint.html). 

# Anzeigen von Proxy-Endpunkten
<a name="rds-proxy-endpoints.DescribingEndpoint"></a>

Gehen Sie wie folgt vor, um vorhandene Proxy-Endpunkte anzuzeigen:

## Konsole
<a name="rds-proxy-endpoints.DescribingEndpoint.CON"></a>

**Anzeigen der Details für einen Proxy-Endpunkt**

1. Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon-RDS-Konsole unter [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1.  Wählen Sie im Navigationsbereich **Proxies (Proxys)**. 

1.  Wählen Sie in der Liste den Proxy aus, dessen Endpunkt Sie anzeigen möchten. Klicken Sie auf den Proxy-Namen, um die Detailseite anzuzeigen. 

1.  Wählen Sie im Abschnitt **Proxy-Endpunkte** den Endpunkt aus, den Sie anzeigen möchten. Klicken Sie auf seinen Namen, um die Detailseite aufzurufen. 

1.  Untersuchen Sie die Parameter, für deren Werten Sie sich interessieren. Sie können Eigenschaften wie die Folgenden überprüfen: 
   +  Ob der Endpunkt lese-/schreibgeschützt oder schreibgeschützt ist.
   +  Die Endpunkt-Adresse, die Sie in einer Datenbank-Verbindungszeichenfolge verwenden.
   +  Die VPC-Subnetze und -Sicherheitsgruppen, die einem Endpunkt zugeordnet sind.

## AWS CLI
<a name="rds-proxy-endpoints.DescribingEndpoint.CLI"></a>

 Um einen oder mehrere Proxy-Endpunkte anzuzeigen, verwenden Sie den AWS CLI-Befehl [describe-db-proxy-endpoints](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxy-endpoints.html).

 Sie können die folgenden optionalen Parameter angeben: 
+  `--db-proxy-endpoint-name` 
+  `--db-proxy-name` 

 Das folgende Beispiel beschreibt den `my-endpoint`-Proxy-Endpunkt. 

**Example**  
Für Linux, macOS oder Unix:  

```
aws rds describe-db-proxy-endpoints \
  --db-proxy-endpoint-name my-endpoint
```
Für Windows:  

```
aws rds describe-db-proxy-endpoints ^
  --db-proxy-endpoint-name my-endpoint
```

## RDS-API
<a name="rds-proxy-endpoints.DescribingEndpoint.API"></a>

 Um einen oder mehrere Proxy-Endpunkte zu beschreiben, verwenden Sie die Aktion RDS-API [DescribeDBProxyEndpoints](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBProxyEndpoints.html). 

# Ändern eines Proxy-Endpunkts
<a name="rds-proxy-endpoints.ModifyingEndpoint"></a>

Gehen Sie wie folgt vor, um die Proxy-Endpunkte zu ändern:

## Konsole
<a name="rds-proxy-endpoints.ModifyingEndpoint.CON"></a>

**So ändern Sie einen oder mehrere Proxy-Endpunkte**

1. Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon-RDS-Konsole unter [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1.  Wählen Sie im Navigationsbereich **Proxies (Proxys)**. 

1. Wählen Sie in der Liste den Proxy aus, dessen Endpunkt Sie ändern möchten. Klicken Sie auf den Proxy-Namen, um die Detailseite anzuzeigen.

1.  Wählen Sie m Abschnitt **Proxy-Endpunkte** den Endpunkt aus, den Sie ändern möchten. Sie können ihn in der Liste auswählen oder auf seinen Namen klicken, um die Detailseite anzuzeigen. 

1.  Auf der Seite mit den Proxy-Details unter dem Abschnitt **Proxy-Endpunkte** wählen Sie **Bearbeiten**. Oder wählen Sie auf der Detailseite des Proxy-Endpunkts für **Aktionen** **Bearbeiten**.

1.  Ändern Sie wie gewünscht die Werte der Parameter.

1.  Wählen Sie **Änderungen speichern ** aus. 

## AWS CLI
<a name="rds-proxy-endpoints.ModifyingEndpoint.CLI"></a>

 Um einen DB-Proxy-Endpunkt zu ändern, verwenden Sie den AWS CLI-Befehl [modify-db-proxy-endpoint](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy-endpoint.html) mit den folgenden erforderlichen Parametern: 
+  `--db-proxy-endpoint-name` 

 Geben Sie Änderungen in den Endpunkteigenschaften an, indem Sie einen oder mehrere der folgenden Parameter verwenden: 
+  `--new-db-proxy-endpoint-name` 
+  `--vpc-security-group-ids`. Trennen Sie die Sicherheitsgruppen-IDs durch Leerzeichen 

 Das folgende Beispiel benennt den `my-endpoint`-Proxy-Endpunkt in `new-endpoint-name`. 

**Example**  
Für Linux, macOS oder Unix:  

```
aws rds modify-db-proxy-endpoint \
  --db-proxy-endpoint-name my-endpoint \
  --new-db-proxy-endpoint-name new-endpoint-name
```
Für Windows:  

```
aws rds modify-db-proxy-endpoint ^
  --db-proxy-endpoint-name my-endpoint ^
  --new-db-proxy-endpoint-name new-endpoint-name
```

## RDS-API
<a name="rds-proxy-endpoints.ModifyingEndpoint.API"></a>

 Um einen Proxy-Endpunkt zu ändern, verwenden Sie die Aktion RDS-API [ModifyDBProxyEndpoint](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxyEndpoint.html). 

# Löschen eines Proxy-Endpunkts
<a name="rds-proxy-endpoints.DeletingEndpoint"></a>

 Gehen Sie folgendermaßen vor, um einen Endpunkt für Ihren Proxy zu löschen: 

**Anmerkung**  
 Sie können den Standardendpunkt des Proxy nicht löschen, den RDS-Proxy automatisch für jeden Proxy erstellt.   
 Wenn Sie einen Proxy löschen, löscht RDS-Proxy automatisch alle zugehörigen Endpunkte. 

## Konsole
<a name="rds-proxy-endpoints.DeleteEndpoint.console"></a>

**So löschen Sie einen Proxy-Endpunkt mit AWS-Managementkonsole**

1.  Wählen Sie im Navigationsbereich **Proxies (Proxys)**. 

1.  Wählen Sie in der Liste den Proxy aus, dessen Endpunkt Sie löschen möchten. Klicken Sie auf den Proxy-Namen, um die Detailseite anzuzeigen. 

1.  Im Abschnitt **Proxy-Endpunkte** den Endpunkt aus, den Sie löschen möchten. Sie können einen oder mehrere Endpunkte in der Liste auswählen oder auf den Namen eines einzelnen Endpunkts klicken, um die Detailseite anzuzeigen. 

1.  Auf der Seite mit den Proxy-Details unter dem Abschnitt **Proxy-Endpunkte**, wählen Sie **Löschen**. Oder wählen Sie auf der Detailseite des Proxy-Endpunkts für **Aktionen** die Option **Löschen** aus. 

## AWS CLI
<a name="rds-proxy-endpoints.DeleteEndpoint.cli"></a>

 Um einen Proxy-Endpunkt zu löschen, führen Sie den Befehl [delete-db-proxy-endpoint](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-proxy-endpoint.html) mit den folgenden erforderlichen Parametern: 
+  `--db-proxy-endpoint-name` 

 Der folgende Befehl löscht den Proxy-Endpunkt mit dem Namen `my-endpoint`. 

Für Linux, macOS oder Unix:

```
aws rds delete-db-proxy-endpoint \
  --db-proxy-endpoint-name my-endpoint
```

Für Windows:

```
aws rds delete-db-proxy-endpoint ^
  --db-proxy-endpoint-name my-endpoint
```

## RDS-API
<a name="rds-proxy-endpoints.DeleteEndpoint.api"></a>

 Um einen Proxy-Endpunkt mit der RDS-API zu löschen, führen Sie die Aktion [DeleteDBProxyEndpoint](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBProxyEndpoint.html) aus. Geben Sie den Namen des Proxy-Endpunkts für den `DBProxyEndpointName`-Parameter an. 

# Überwachen von RDS-Proxy-Metriken mit Amazon CloudWatch
<a name="rds-proxy.monitoring"></a>

 Sie können den RDS-Proxy mithilfe von Amazon CloudWatch überwachen. CloudWatch sammelt und verarbeitet Rohdaten von den Proxys zu lesbaren Metriken nahezu in Echtzeit. Um diese Metriken in der CloudWatch-Konsole zu finden, wählen Sie **Metrics (Metriken)**, dann **RDS**, und dann **Per-Proxy Metrics (Proxy-Metriken)**. Weitere Informationen finden Sie unter [Verwenden von Amazon CloudWatch-Metriken](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) im Amazon CloudWatch-Benutzerhandbuch. 

**Anmerkung**  
 RDS veröffentlicht diese Metriken für jede zugrunde liegende Amazon EC2-Instance, die dem Proxy zugeordnet ist. Ein einzelner Proxy kann von mehr als einer EC2-Instance bedient werden. Verwenden Sie CloudWatch-Statistiken, um die Werte für einen Proxy über alle zugeordneten Instances hinweg zu aggregieren.   
 Einige dieser Metriken sind möglicherweise erst nach der ersten erfolgreichen Verbindung durch einen Proxy sichtbar. 

 In den RDS-Proxy-Protokollen wird jedem Eintrag der Name des zugehörigen Proxy-Endpunkts vorangestellt. Dieser Name kann der Name sein, den Sie für einen benutzerdefinierten Endpunkt angegeben haben, oder der spezielle Name `default` für den Standardendpunkt eines Proxys, der Lese-/Schreibanforderungen durchführt. 

 Alle RDS-Proxy-Metriken befinden sich in der Gruppe `proxy`. 

 Jeder Proxy-Endpunkt hat seinen eigenen CloudWatch-Metriken. Sie können die Nutzung jedes Proxy-Endpunkts unabhängig überwachen. Weitere Informationen zu den Proxy-Endpunkten finden Sie unter [Arbeiten mit Amazon-RDS-Proxy-Endpunkten](rds-proxy-endpoints.md). 

 Sie können die Werte für jede Metrik mit einem der folgenden Dimensionssätze aggregieren. Zum Beispiel können Sie, indem Sie den `ProxyName`-Dimensionssatz verwenden, den gesamten Datenverkehr für einen bestimmten Proxy analysieren. Durch die Verwendung der anderen Dimensionssätze können Sie die Metriken auf verschiedene Arten aufteilen. Sie können die Metriken basierend auf den verschiedenen Endpunkten oder Zieldatenbanken jedes Proxys oder dem Lese-/Schreib- und schreibgeschützten Datenverkehr zu jeder Datenbank aufteilen. 
+  -Dimensionssatz 1: `ProxyName` 
+  -Dimensionssatz 2: `ProxyName`, `EndpointName` 
+  -Dimensionssatz 3: `ProxyName`, `TargetGroup`, `Target` 
+  -Dimensionssatz 4: `ProxyName`, `TargetGroup`, `TargetRole` 


|  Metrik  |  Beschreibung  |  Gültiger Zeitraum  |  CloudWatch-Dimensionssatz  | 
| --- | --- | --- | --- | 
|  `AvailabilityPercentage`   |   Der Prozentsatz der Zeit, für die die Zielgruppe in der durch die Dimension angegebenen Rolle verfügbar war. Diese Metrik wird jede Minute gemeldet. Die nützlichste Statistik für diese Metrik ist `Sum`.   |  1 Minute  |  [Dimension set 4](#proxy-dimension-set-4)  | 
| ClientConnections  |   Die aktuelle Anzahl von Clientverbindungen. Diese Metrik wird jede Minute gemeldet. Die nützlichste Statistik für diese Metrik ist `Sum`.   |   1 Minute   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| ClientConnectionsClosed  |   Die Anzahl der geschlossenen Clientverbindungen. Die nützlichste Statistik für diese Metrik ist `Sum`.   |   1 Minute und höher   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| ClientConnectionsInSetup |  Die aktuelle Anzahl der Clientverbindungen, die geöffnet sind, deren Einrichtung jedoch nicht abgeschlossen wurde. Diese Metrik wird jede Minute gemeldet. Die nützlichste Statistik für diese Metrik ist Summe.  |  1 Minute  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
|  `ClientConnectionsNoTLS`   |  Die aktuelle Anzahl von Clientverbindungen ohne TLS (Transport Layer Security). Diese Metrik wird jede Minute gemeldet. Die nützlichste Statistik für diese Metrik ist Sum.  |  1 Minute |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
|  `ClientConnectionsReceived`   |   Die Anzahl der empfangenen Clientverbindungsanforderungen. Die nützlichste Statistik für diese Metrik ist `Sum`.   |   1 Minute und höher   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| ClientConnectionsSetupFailedAuth  |   Die Anzahl der Clientverbindungsversuche, die aufgrund einer fehlerhaften Authentifizierungs- oder TLS-Konfiguration fehlgeschlagen sind. Die nützlichste Statistik für diese Metrik ist `Sum`.   |   1 Minute und höher   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| ClientConnectionsSetupSucceeded  |   Die Anzahl der Clientverbindungen, die erfolgreich mit einem Authentifizierungsmechanismus mit oder ohne TLS hergestellt wurden. Die nützlichste Statistik für diese Metrik ist `Sum`.   |   1 Minute und höher   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| ClientConnectionsTLS  |  Die aktuelle Anzahl von Clientverbindungen mit TLS. Diese Metrik wird jede Minute gemeldet. Die nützlichste Statistik für diese Metrik ist Sum.  | 1 Minute |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| DatabaseConnectionRequests  |   Die Anzahl der Anforderungen zum Erstellen einer Datenbankverbindung. Die nützlichste Statistik für diese Metrik ist `Sum`.   |   1 Minute und höher   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
|  `DatabaseConnectionRequestsWithTLS`   |  Die Anzahl der Anforderungen zum Erstellen einer Datenbankverbindung mit TLS. Die nützlichste Statistik für diese Metrik ist Sum.  |  1 Minute und höher  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| DatabaseConnections  |   Die aktuelle Anzahl von Datenbankverbindungen. Diese Metrik wird jede Minute gemeldet. Die nützlichste Statistik für diese Metrik ist `Sum`.   |   1 Minute   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
|  `DatabaseConnectionsBorrowLatency`   |  Die Zeit in Mikrosekunden, die der überwachte Proxy benötigt, um eine Datenbankverbindung zu erhalten. Die nützlichste Statistik für diese Metrik ist Sum.  |  1 Minute und höher  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| DatabaseConnectionsCurrentlyBorrowed  |   Die aktuelle Anzahl von Datenbankverbindungen im Ausleihstatus. Diese Metrik wird jede Minute gemeldet. Die nützlichste Statistik für diese Metrik ist `Sum`.   |   1 Minute   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| DatabaseConnectionsCurrentlyInTransaction  |   Die aktuelle Anzahl der Datenbankverbindungen in einer Transaktion. Diese Metrik wird jede Minute gemeldet. Die nützlichste Statistik für diese Metrik ist `Sum`.   |   1 Minute   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| DatabaseConnectionsCurrentlySessionPinned  |   Die aktuelle Anzahl von Datenbankverbindungen, die derzeit aufgrund von Operationen in Clientanforderungen, die den Sitzungsstatus ändern, angeheftet, bzw. fixiert, werden. Diese Metrik wird jede Minute gemeldet. Die nützlichste Statistik für diese Metrik ist `Sum`.   |   1 Minute   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| DatabaseConnectionsSetupFailed  |   Die Anzahl der fehlgeschlagenen Datenbankverbindungsanforderungen. Die nützlichste Statistik für diese Metrik ist `Sum`.   |   1 Minute und höher   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| DatabaseConnectionsSetupSucceeded  |   Die Anzahl der erfolgreich aufgebauten Datenbankverbindungen mit oder ohne TLS. Die nützlichste Statistik für diese Metrik ist `Sum`.   |   1 Minute und höher   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
|  `DatabaseConnectionsWithTLS`   |  Die aktuelle Anzahl von Datenbankverbindungen mit TLS. Diese Metrik wird jede Minute gemeldet. Die nützlichste Statistik für diese Metrik ist Sum.  |  1 Minute  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| MaxDatabaseConnectionsAllowed  |   Die maximal zulässige Anzahl von Datenbankverbindungen. Diese Metrik wird jede Minute gemeldet. Die nützlichste Statistik für diese Metrik ist `Sum`.   |   1 Minute   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
|  `QueryDatabaseResponseLatency`   |  Die Zeit in Mikrosekunden, die die Datenbank benötigt hat, um auf die Abfrage zu antworten. Die nützlichste Statistik für diese Metrik ist Average.  |  1 Minute und höher  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2), [Dimension set 3](#proxy-dimension-set-3), [Dimension set 4](#proxy-dimension-set-4)  | 
| QueryRequests  |   Die Anzahl der empfangenen Abfragen. Eine Abfrage, die mehrere Anweisungen enthält, wird als eine Abfrage gezählt. Die nützlichste Statistik für diese Metrik ist `Sum`.   |   1 Minute und höher   |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| QueryRequestsNoTLS  |  Die Anzahl der Abfragen, die von Nicht-TLS-Verbindungen empfangen wurden. Eine Abfrage, die mehrere Anweisungen enthält, wird als eine Abfrage gezählt. Die nützlichste Statistik für diese Metrik ist Sum.  |  1 Minute und höher  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
|  `QueryRequestsTLS`   |  Die Anzahl der Abfragen, die von TLS-Verbindungen empfangen wurden. Eine Abfrage, die mehrere Anweisungen enthält, wird als eine Abfrage gezählt. Die nützlichste Statistik für diese Metrik ist Sum.  |  1 Minute und höher  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 
| QueryResponseLatency  |  Die Zeit in Mikrosekunden zwischen dem Abrufen einer Abfrageanforderung und dem darauf antwortenden Proxy. Die nützlichste Statistik für diese Metrik ist Average.  |  1 Minute und höher  |  [Dimension set 1](#proxy-dimension-set-1), [Dimension set 2](#proxy-dimension-set-2)  | 

 Sie können Protokolle der RDS-Proxy-Aktivität unter CloudWatch in der AWS-Managementkonsole finden. Jeder Proxy hat einen Eintrag auf der Seite **Log groups (Protokollgruppen)** . 

**Wichtig**  
 Diese Protokolle sind zur menschlichen Verwendung zur Fehlerbehebung und nicht für den programmatischen Zugriff bestimmt. Das Format und der Inhalt der Protokolle können geändert werden.   
 Insbesondere enthalten ältere Protokolle keine Präfixe, die den Endpunkt für jede Anfrage angeben. In neueren Protokollen wird jedem Eintrag der Name des zugehörigen Proxy-Endpunkts vorangestellt. Dieser Name kann der Name sein, den Sie für einen benutzerdefinierten Endpunkt angegeben haben, oder der spezielle Name `default` für Anforderungen mit dem Standard-Endpunkt eines Proxys. 

# Arbeiten mit RDS-Proxy-Ereignissen
<a name="rds-proxy.events"></a>

Ein *Ereignis* weist auf eine Änderung in einer Umgebung hin, beispielsweise einer AWS-Umgebung, eines Service oder einer Anwendung eines SaaS-Partners (Software as a Service). Oder es kann sich um eine(n) Ihrer eigenen benutzerdefinierten Anwendungen oder Services handeln. Ein Beispiel: Amazon Aurora generiert ein Ereignis, wenn Sie einen RDS-Proxy erstellen oder ändern. Amazon Aurora überträgt Ereignisse nahezu in Echtzeit an Amazon EventBridge bereit. Nachfolgend finden Sie eine Liste von RDS-Proxy-Ereignissen, die Sie abonnieren können, und ein Beispiel für ein RDS-Proxy-Ereignis. 

Weitere Informationen zum Arbeiten mit Ereignissen finden Sie in den folgenden Abschnitten:
+ Informationen zum Anzeigen von Ereignissen mithilfe der AWS-Managementkonsole, AWS CLI oder RDS API finden Sie unter [Anzeigen von Amazon-RDS-Ereignissen](USER_ListEvents.md).
+ Informationen dazu, wie Sie Amazon Aurora dafür konfigurieren, Ereignisse an EventBridge zu senden, finden Sie unter [Erstellen einer Regel, die bei einem Amazon Aurora-Ereignis ausgelöst wird](rds-cloud-watch-events.md).

## RDS-Proxy-Ereignisse
<a name="rds-proxy.events.list"></a>

Die folgende Tabelle zeigt die Ereigniskategorie und eine Liste von Ereignissen für den Fall, dass ein RDS-Proxy der Quelltyp ist.


|  Kategorie  | RDS-Ereignis-ID |  Fehlermeldung  |  Hinweise  | 
| --- | --- | --- | --- | 
| Konfigurationsänderung | RDS-EVENT-0204 |  RDS hat den DB-Proxy *Name* geändert.  | Keine | 
| Konfigurationsänderung | RDS-EVENT-0207 |  RDS hat den Endpunkt des DB-Proxys *Name* geändert.  | Keine | 
| Konfigurationsänderung | RDS-EVENT-0213 |  RDS hat das Hinzufügen der DB-Instance erkannt und sie automatisch zur Zielgruppe des DB-Proxys *Name* hinzugefügt.  | Keine | 
|  Konfigurationsänderung  | RDS-EVENT-0214 |  RDS hat das Löschen der DB-Instance *Name* erkannt und sie automatisch aus der Zielgruppe *Name* des DB-Proxys *Name* entfernt.  | Keine | 
|  Konfigurationsänderung  | RDS-EVENT-0215 |  RDS hat das Löschen des DB-Clusters *Name* erkannt und ihn automatisch aus der Zielgruppe *Name* des DB-Proxys *Name* entfernt.  | Keine | 
|  Erstellung  | RDS-EVENT-0203 |  RDS hat den DB-Proxy *Name* erstellt.  | Keine | 
|  Erstellung  | RDS-EVENT-0206 |  RDS hat den Endpunkt *Name* für den DB-Proxy *Name* erstellt.  | Keine | 
| Löschung | RDS-EVENT-0205 |  RDS hat den DB-Proxy *Name* erstellt.  | Keine | 
|  Löschung  | RDS-EVENT-0208 |  RDS hat den Endpunkt *Name* für den DB-Proxy *Name* gelöscht.  | Keine | 
|  Ausfall  | RDS-EVENT-0243 |  RDS konnte keine Kapazität für den Proxy *Name* bereitstellen, da in Ihren Subnetzen nicht genügend IP-Adressen verfügbar sind: *Name*. Stellen Sie sicher, dass Ihre Subnetze die Mindestanzahl unbenutzter IP-Adressen aufweisen, wie in der RDS-Proxy-Dokumentation empfohlen.  |  Informationen zur Bestimmung der empfohlenen Anzahl für Ihre Instance-Klasse finden Sie unter [Planen der Kapazität von IP-Adressen](rds-proxy-network-prereqs.md#rds-proxy-network-prereqs.plan-ip-address).  | 
|  Ausfall | RDS-EVENT-0275 |  RDS drosselte einige Verbindungen zum DB-Proxy *name*. Die Anzahl der gleichzeitigen Verbindungsanforderungen vom Client zum Proxy hat den Grenzwert überschritten.  | Keine | 

Es folgt ein Beispiel eines RDS-Proxy-Ereignisses im JSON-Format. Das Ereignis zeigt, dass RDS den Endpunkt `my-endpoint` des RDS-Proxy `my-rds-proxy` geändert hat. Die Ereignis-ID lautet RDS-EVENT-0207.

```
{
  "version": "0",
  "id": "68f6e973-1a0c-d37b-f2f2-94a7f62ffd4e",
  "detail-type": "RDS DB Proxy Event",
  "source": "aws.rds",
  "account": "123456789012",
  "time": "2018-09-27T22:36:43Z",
  "region": "us-east-1",
  "resources": [
     "arn:aws:rds:us-east-1:123456789012:db-proxy:my-rds-proxy"
  ],
  "detail": {
    "EventCategories": [
      "configuration change"
    ],
    "SourceType": "DB_PROXY",
    "SourceArn": "arn:aws:rds:us-east-1:123456789012:db-proxy:my-rds-proxy",
    "Date": "2018-09-27T22:36:43.292Z",
    "Message": "RDS modified endpoint my-endpoint of DB Proxy my-rds-proxy.",
    "SourceIdentifier": "my-endpoint",
    "EventID": "RDS-EVENT-0207"
  }
}
```

# Befehlszeilenbeispiele für RDS Proxy
<a name="rds-proxy.examples"></a>

 Um zu sehen, wie Kombinationen von Verbindungsbefehlen und SQL-Anweisungen mit RDS Proxy interagieren, sehen Sie sich die folgenden Beispiele an. 

**Beispiele**
+  [Preserving Connections to a MySQL Database Across a Failover](#example-mysql-preserve-connections) 
+  [Adjusting the max_connections Setting for an Aurora DB Cluster](#example-adjust-cluster-max-connections) 

**Example Verbindungen zu einer MySQL-Datenbank über ein Failover beibehalten**  
 Dieses MySQL-Beispiel zeigt, wie offene Verbindungen bei einem Failover weiterhin funktionieren. Ein Beispiel ist, wenn Sie eine Datenbank neu starten oder sie aufgrund eines Problems nicht mehr verfügbar ist. In diesem Beispiel werden ein Proxy mit dem Namen `the-proxy` und ein Aurora-DB-Cluster mit den DB-Instances `instance-8898` und `instance-9814` verwendet. Wenn Sie den `failover-db-cluster`-Befehl über die Linux-Befehlszeile ausführen, wechselt die Schreiber-Instance, mit der der Proxy verbunden ist, zu einer anderen DB-Instance. Sie können sehen, dass sich die dem Proxy zugeordnete DB-Instance ändert, während die Verbindung geöffnet bleibt.   

```
$ mysql -h the-proxy.proxy-demo.us-east-1.rds.amazonaws.com -u admin_user -p
Enter password:
...

mysql> select @@aurora_server_id;
+--------------------+
| @@aurora_server_id |
+--------------------+
| instance-9814      |
+--------------------+
1 row in set (0.01 sec)

mysql>
[1]+  Stopped                 mysql -h the-proxy.proxy-demo.us-east-1.rds.amazonaws.com -u admin_user -p
$ # Initially, instance-9814 is the writer.
$ aws rds failover-db-cluster --db-cluster-identifier cluster-56-2019-11-14-1399
JSON output
$ # After a short time, the console shows that the failover operation is complete.
$ # Now instance-8898 is the writer.
$ fg
mysql -h the-proxy.proxy-demo.us.us-east-1.rds.amazonaws.com -u admin_user -p

mysql> select @@aurora_server_id;
+--------------------+
| @@aurora_server_id |
+--------------------+
| instance-8898      |
+--------------------+
1 row in set (0.01 sec)

mysql>
[1]+  Stopped                 mysql -h the-proxy.proxy-demo.us-east-1.rds.amazonaws.com -u admin_user -p
$ aws rds failover-db-cluster --db-cluster-identifier cluster-56-2019-11-14-1399
JSON output
$ # After a short time, the console shows that the failover operation is complete.
$ # Now instance-9814 is the writer again.
$ fg
mysql -h the-proxy.proxy-demo.us-east-1.rds.amazonaws.com -u admin_user -p

mysql> select @@aurora_server_id;
+--------------------+
| @@aurora_server_id |
+--------------------+
| instance-9814      |
+--------------------+
1 row in set (0.01 sec)
+---------------+---------------+
| Variable_name | Value         |
+---------------+---------------+
| hostname      | ip-10-1-3-178 |
+---------------+---------------+
1 row in set (0.02 sec)
```

**Example Anpassen der Einstellung max\$1connections für einen Aurora-DB-Cluster.**  
 Dieses Beispiel zeigt, wie Sie die `max_connections`-Einstellung für einen Aurora MySQL-DB-Cluster anpassen können. Dazu erstellen Sie eine eigene DB-Cluster-Parametergruppe basierend auf den Standardparametereinstellungen für Cluster, die mit MySQL 5.7 kompatibel sind. Sie geben einen Wert für die `max_connections`-Einstellung an und überschreiben die Formel, die den Standardwert festlegt. Sie ordnen die DB-Clusterparametergruppe Ihrem DB-Cluster zu.   

```
export REGION=us-east-1
export CLUSTER_PARAM_GROUP=rds-proxy-mysql-57-max-connections-demo
export CLUSTER_NAME=rds-proxy-mysql-57

aws rds create-db-parameter-group --region $REGION \
  --db-parameter-group-family aurora-mysql5.7 \
  --db-parameter-group-name $CLUSTER_PARAM_GROUP \
  --description "Aurora MySQL 5.7 cluster parameter group for RDS Proxy demo."

aws rds modify-db-cluster --region $REGION \
  --db-cluster-identifier $CLUSTER_NAME \
  --db-cluster-parameter-group-name $CLUSTER_PARAM_GROUP

echo "New cluster param group is assigned to cluster:"
aws rds describe-db-clusters --region $REGION \
  --db-cluster-identifier $CLUSTER_NAME \
  --query '*[*].{DBClusterParameterGroup:DBClusterParameterGroup}'

echo "Current value for max_connections:"
aws rds describe-db-cluster-parameters --region $REGION \
  --db-cluster-parameter-group-name $CLUSTER_PARAM_GROUP \
  --query '*[*].{ParameterName:ParameterName,ParameterValue:ParameterValue}' \
  --output text | grep "^max_connections"

echo -n "Enter number for max_connections setting: "
read answer

aws rds modify-db-cluster-parameter-group --region $REGION --db-cluster-parameter-group-name $CLUSTER_PARAM_GROUP \
  --parameters "ParameterName=max_connections,ParameterValue=$$answer,ApplyMethod=immediate"

echo "Updated value for max_connections:"
aws rds describe-db-cluster-parameters --region $REGION \
  --db-cluster-parameter-group-name $CLUSTER_PARAM_GROUP \
  --query '*[*].{ParameterName:ParameterName,ParameterValue:ParameterValue}' \
  --output text | grep "^max_connections"
```

# Fehlersuche für RDS-Proxy
<a name="rds-proxy.troubleshooting"></a>

 Im Folgenden finden Sie Ideen zur Fehlerbehebung für einige häufig auftretende Probleme mit dem RDS-Proxy sowie Informationen zu CloudWatch Protokollen für RDS Proxy. 

 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 read/write Anfragen ausführt. Weitere Informationen zu den Proxy-Endpunkten finden Sie unter [Arbeiten mit Amazon-RDS-Proxy-Endpunkten](rds-proxy-endpoints.md). 

**Topics**
+ [Überprüfen der Konnektivität für einen Proxy](#rds-proxy-verifying)
+ [Häufige Probleme und Lösungen](#rds-proxy-diagnosis)
+ [Beheben von RDS-Proxy-Problemen mit RDS für MySQL](#rds-proxy-MySQL-troubleshooting)
+ [Beheben von RDS-Proxy-Problemen mit RDS für PostgreSQL](#rds-proxy-PostgreSQL-troubleshooting)

## Überprüfen der Konnektivität für einen Proxy
<a name="rds-proxy-verifying"></a>

 Mit den folgenden Befehle können Sie überprüfen, ob alle Komponenten wie Proxy-, Datenbank- und Rechen-Instances in der Verbindung miteinander kommunizieren können. 

 Untersuchen Sie den Proxy selbst mit dem [describe-db-proxies](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxies.html)Befehl. Untersuchen Sie auch die zugehörige Zielgruppe mit dem Befehl [describe-db-proxy-target-groups](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxy-target-groups.html). Überprüfen Sie, ob die Details der Ziele mit dem Aurora-Cluster übereinstimmen, den Sie dem Proxy zuordnen möchten. Verwenden Sie Befehle wie die folgenden. 

```
aws rds describe-db-proxies --db-proxy-name $DB_PROXY_NAME
aws rds describe-db-proxy-target-groups --db-proxy-name $DB_PROXY_NAME
```

 Um zu überprüfen, ob der Proxy eine Verbindung zur zugrunde liegenden Datenbank herstellen kann, überprüfen Sie mithilfe des [describe-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxy-targets.html)Befehls die in den Zielgruppen angegebenen Ziele. Verwenden Sie einen Befehl wie den folgenden. 

```
aws rds describe-db-proxy-targets --db-proxy-name $DB_PROXY_NAME
```

 Die Ausgabe des [describe-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-proxy-targets.html)Befehls enthält ein `TargetHealth` Feld. Sie können die Felder `State`, `Reason` und `Description` in `TargetHealth` überprüfen, um festzustellen, ob der Proxy mit der zugrunde liegenden DB-Instance kommunizieren kann. 
+  Der Wert `State` für `AVAILABLE` gibt an, dass der Proxy eine Verbindung mit der DB-Instance herstellen kann. 
+  Der Wert `State` für `UNAVAILABLE` weist auf ein temporäres oder dauerhaftes Verbindungsproblem hin. Überprüfen Sie in diesem Fall die Felder `Reason` und `Description`. Wenn beispielsweise der `Reason` den Wert `PENDING_PROXY_CAPACITY` hat, versuchen Sie erneut , eine Verbindung herzustellen, nachdem der Proxy seinen Skalierungsvorgang beendet hat. Wenn `Reason` den Wert `UNREACHABLE`, `CONNECTION_FAILED` oder `AUTH_FAILURE` hat, verwenden Sie die Erläuterung aus dem Feld `Description`, um das Problem leichter zu diagnostizieren. 
+  Das Feld `State` hat möglicherweise für kurze Zeit einen Wert von `REGISTERING`, bevor Sie zu `AVAILABLE` oder `UNAVAILABLE` wechseln. 

 Wenn der folgende Netcat-Befehl (`nc`) erfolgreich ist, können Sie von der EC2 Instanz oder einem anderen System aus, auf dem Sie angemeldet sind, auf den Proxy-Endpunkt zugreifen. Dieser Befehl meldet einen Fehler, wenn Sie sich nicht in derselben VPC wie der Proxy und die zugehörige Datenbank befinden. Möglicherweise können Sie sich direkt bei der Datenbank anmelden, ohne sich in derselben VPC zu befinden. Sie können sich jedoch nur am Proxy anmelden, wenn Sie sich in derselben VPC befinden. 

```
nc -zx MySQL_proxy_endpoint 3306

nc -zx PostgreSQL_proxy_endpoint 5432
```

 Sie können die folgenden Befehle verwenden, um sicherzustellen, dass Ihre EC2 Instanz über die erforderlichen Eigenschaften verfügt. Insbesondere muss die VPC für die EC2 Instance mit der VPC für den Aurora-Cluster der RDS-DB-Instance identisch sein, mit dem der Proxy eine Verbindung herstellt. 

```
aws ec2 describe-instances --instance-ids your_ec2_instance_id
```

 Untersuchen Sie die für den Proxy verwendeten Secrets Manager-Secrets. 

```
aws secretsmanager list-secrets
aws secretsmanager get-secret-value --secret-id your_secret_id
```

 Stellen Sie sicher, dass das von `get-secret-value` angezeigte Feld `SecretString` als JSON-Zeichenfolge codiert ist, die die Felder `username` und `password` enthält. Das folgende Beispiel zeigt das Format des `SecretString`-Feldes. 

```
{
  "ARN": "some_arn",
  "Name": "some_name",
  "VersionId": "some_version_id",
  "SecretString": '{"username":"some_username","password":"some_password"}',
  "VersionStages": [ "some_stage" ],
  "CreatedDate": some_timestamp
}
```

Überprüfen Sie bei der Behebung von Problemen mit der IAM-Authentifizierung Folgendes:
+ In der Datenbank ist die IAM-Authentifizierung aktiviert.
+ Der Proxy ist mit dem richtigen Authentifizierungsschema konfiguriert.
+ Die IAM-Richtlinien in der IAM-Rolle, die dem Proxy zur Verfügung gestellt wurden, gewähren der entsprechenden Datenbank und ihrem Benutzernamen die erforderlichen `rds-db:connect` Berechtigungen.
+ Für die end-to-end IAM-Authentifizierung existieren Datenbankbenutzer, die den IAM-Benutzer- oder Rollennamen entsprechen.
+ SSL/TLS ist für die Verbindung aktiviert.

## Häufige Probleme und Lösungen
<a name="rds-proxy-diagnosis"></a>

In diesem Abschnitt werden einige häufig auftretende Probleme und mögliche Lösungen bei der Verwendung von RDS-Proxy beschrieben.

Wenn in der Beschreibung `TargetHealth` `Proxy does not have any registered credentials` angegeben ist, überprüfen Sie nach dem Ausführen des CLI-Befehls `aws rds describe-db-proxy-targets` Folgendes:
+ Es sind Anmeldeinformationen registriert, damit der Benutzer auf den Proxy zugreifen kann.
+ Die IAM-Rolle für den Zugriff auf das vom Proxy verwendete Secret von Secrets Manager ist gültig.

Beim Erstellen eines DB-Proxys oder beim Herstellen einer Verbindung mit einem DB-Proxy können die folgenden RDS-Ereignisse auftreten.


| Kategorie | RDS-Ereignis-ID | Description | 
| --- | --- | --- | 
|  Ausfall  | RDS-EVENT-0243 | RDS konnte keine Kapazität für den Proxy bereitstellen, da in Ihren Subnetzen nicht genügend IP-Adressen verfügbar sind. Stellen Sie sicher, dass Ihre Subnetze die Mindestanzahl unbenutzter IP-Adressen aufweisen, um das Problem zu lösen. Informationen zur Bestimmung der empfohlenen Anzahl für Ihre Instance-Klasse finden Sie unter [Planen der Kapazität von IP-Adressen](rds-proxy-network-prereqs.md#rds-proxy-network-prereqs.plan-ip-address). | 
|  Ausfall  | RDS-EVENT-0275 |  RDS hat einige Verbindungen zum DB-Proxy gedrosselt. *name* Die Anzahl der gleichzeitigen Verbindungsanforderungen vom Client zum Proxy hat den Grenzwert überschritten.  | 

 Beim Erstellen eines neuen Proxys oder beim Herstellen einer Verbindung mit einem Proxy können die folgenden Probleme auftreten. 


|  Fehler  |  Ursachen oder Problemumgehungen  | 
| --- | --- | 
|   `403: The security token included in the request is invalid`   |  Wählen Sie eine vorhandene IAM-Rolle aus, anstatt eine neue zu erstellen.  | 

## Beheben von RDS-Proxy-Problemen mit RDS für MySQL
<a name="rds-proxy-MySQL-troubleshooting"></a>

 Beim Herstellen einer Verbindung mit einem MySQL-Proxy können die folgenden Probleme auftreten. 


|  Fehler  |  Ursachen oder Problemumgehungen  | 
| --- | --- | 
|  ERROR 1040 (HY000): Connections rate limit exceeded (limit\$1value)  |  Die Rate der Verbindungsanforderungen vom Client zum Proxy hat den Grenzwert überschritten.  | 
|  ERROR 1040 (HY000): IAM authentication rate limit exceeded  |  Die Anzahl der gleichzeitigen Anforderungen mit IAM-Authentifizierung vom Client an den Proxy hat den Grenzwert überschritten.  | 
|  ERROR 1040 (HY000): Number simultaneous connections exceeded (limit\$1value)  |  Die Anzahl der gleichzeitigen Verbindungsanforderungen vom Client zum Proxy hat den Grenzwert überschritten.  | 
|   `ERROR 1045 (28000): Access denied for user 'DB_USER'@'%' (using password: YES)`   |  Das vom Proxy verwendete Secrets Manager-Geheimnis stimmt nicht mit dem Benutzernamen und dem Passwort eines vorhandenen Datenbankbenutzers überein. Aktualisieren Sie entweder die Anmeldeinformationen im Secrets Manager-Geheimnis oder stellen Sie sicher, dass der Datenbankbenutzer vorhanden ist und über das gleiche Passwort wie im Geheimnis verfügt.  | 
|  ERROR 1105 (HY000): Unknown error  |  Es ist ein unbekannter Fehler aufgetreten.  | 
|  ERROR 1231 (42000): Variable ''character\$1set\$1client'' can't be set to the value of value  |   Der für den `character_set_client`-Parameter gesetzte Wert ist ungültig. Beispielsweise ist der Wert `ucs2` ungültig, da er den MySQL-Server zum Absturz bringen kann.   | 
|  ERROR 3159 (HY000): This RDS Proxy requires TLS connections.  |   Sie haben die Einstellung **Transport Layer Security erfordern** im Proxy aktiviert, aber Ihre Verbindung enthielt den Parameter `ssl-mode=DISABLED` im MySQL-Client. Führen Sie eine der folgenden Aufgaben aus:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/AmazonRDS/latest/AuroraUserGuide/rds-proxy.troubleshooting.html)  | 
|  ERROR 2026 (HY000): SSL connection error: Internal Server Error  |   Der TLS-Handshake an den Proxy ist fehlgeschlagen. Einige mögliche Gründe sind:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/AmazonRDS/latest/AuroraUserGuide/rds-proxy.troubleshooting.html)  | 
|  ERROR 9501 (HY000): Timed-out waiting to acquire database connection  |   Auf dem Proxy ist beim Herstellen einer Datenbankverbindung eine Zeitüberschreitung aufgetreten. Einige mögliche Gründe sind:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/AmazonRDS/latest/AuroraUserGuide/rds-proxy.troubleshooting.html)  | 

## Beheben von RDS-Proxy-Problemen mit RDS für PostgreSQL
<a name="rds-proxy-PostgreSQL-troubleshooting"></a>

 Beim Herstellen einer Verbindung mit einem PostgreSQL-Proxy können die folgenden Probleme auftreten. 


|  Fehler  |  Ursache  |  Lösung  | 
| --- | --- | --- | 
|   `ERROR 28000: IAM authentication is allowed only with SSL connections.`   |   Der Benutzer hat versucht, mithilfe der IAM-Authentifizierung mit der Einstellung `sslmode=disable` im PostgreSQL-Client eine Verbindung zur Datenbank herzustellen.   |   Der Benutzer muss eine Verbindung mit der Datenbank mit der Mindesteinstellung `sslmode=require` im PostgreSQL-Client herstellen. Weitere Informationen finden Sie in der [PostgreSQL SSL Support-Dokumentation](https://www.postgresql.org/docs/current/libpq-ssl.html).   | 
|  `ERROR 28000: This RDS proxy has no credentials for the role role_name. Check the credentials for this role and try again.`   |   Es gibt kein Secrets Manager-Secret für diese Rolle.   |   Fügen Sie ein Secrets Manager-Secret diese Rolle hinzu. Weitere Informationen finden Sie unter [Konfigurieren der IAM-Authentifizierung für RDS-Proxy](rds-proxy-iam-setup.md).  | 
|  `ERROR 28000: RDS supports only IAM, MD5, or SCRAM authentication.`   |   Der Datenbank-Client, der für die Verbindung mit dem Proxy verwendet wird, nutzt einen Authentifizierungsmechanismus, der derzeit vom Proxy nicht unterstützt wird.   |   Wenn Sie keine IAM-Authentifizierung verwenden, verwenden Sie die MD5 oder die SCRAM-Passwortauthentifizierung.   | 
|  `ERROR 28000: A user name is missing from the connection startup packet. Provide a user name for this connection.`   |   Der Datenbankclient, der zum Herstellen einer Verbindung mit dem Proxy verwendet wird, sendet beim Versuch, eine Verbindung herzustellen, keinen Benutzernamen.   |   Stellen Sie sicher, dass Sie beim Einrichten einer Verbindung zum Proxy mit dem PostgreSQL-Client Ihrer Wahl einen Benutzernamen definieren.   | 
|  `ERROR 28000: IAM is allowed only with SSL connections.`   |   Ein Client hat versucht, eine Verbindung über die IAM-Authentifizierung herzustellen, aber SSL war nicht aktiviert.   |   Aktivieren Sie SSL im PostgreSQL-Client.   | 
|  `ERROR 28000: This RDS Proxy requires TLS connections.`   |   Der Benutzer hat die Option **Transport Layer Security erfordern** aktiviert, hat aber versucht, auf dem PostgreSQL-Client eine Verbindung mit `sslmode=disable` herzustellen.   |   Führen Sie einen der folgenden Schritte aus, um diesen Fehler zu beheben:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/AmazonRDS/latest/AuroraUserGuide/rds-proxy.troubleshooting.html)  | 
|  `ERROR 28P01: IAM authentication failed for user user_name. Check the IAM token for this user and try again.`   |   Dies kann folgende Ursachen haben:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/AmazonRDS/latest/AuroraUserGuide/rds-proxy.troubleshooting.html)  |   Gehen Sie folgendermaßen vor, um diesen Fehler zu beheben:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/AmazonRDS/latest/AuroraUserGuide/rds-proxy.troubleshooting.html)  | 
|  `ERROR 28P01: The password that was provided for the role role_name is wrong.`   |   Das Passwort für diese Rolle stimmt nicht mit dem Secrets Manager-Secret überein.   |   Überprüfen Sie den Schlüssel für diese Rolle in Secrets Manager, um festzustellen, ob das Passwort mit dem in Ihrem PostgreSQL-Client verwendeten Passwort übereinstimmt.   | 
|  `ERROR 28P01: The IAM authentication failed for the role role_name. Check the IAM token for this role and try again.`   |   Es gibt ein Problem mit dem IAM-Token, das für die IAM-Authentifizierung verwendet wird.   |   Generieren Sie ein neues Authentifizierungstoken und verwenden Sie es in einer neuen Verbindung.   | 
|  `ERROR 0A000: Feature not supported: RDS Proxy supports only version 3.0 of the PostgreSQL messaging protocol.`   |   Der PostgreSQL-Client, mit dem eine Verbindung zum Proxy hergestellt wird, verwendet ein Protokoll, das älter als 3.0 ist.   |   Verwenden Sie einen neueren PostgreSQL-Client, der das 3.0-Messaging-Protokoll unterstützt. Wenn Sie die `psql` PostgreSQL-CLI verwenden, verwenden Sie Version 7.4 oder höher.   | 
|  `ERROR 0A000: Feature not supported: RDS Proxy currently doesn't support streaming replication mode.`   |   Der PostgreSQL-Client, der für die Verbindung mit dem Proxy verwendet wird, versucht, den Streaming-Replikationsmodus zu verwenden, der derzeit vom RDS-Proxy nicht unterstützt wird.   |   Deaktivieren Sie den Streaming-Replikationsmodus im PostgreSQL-Client, der für die Verbindung verwendet wird.   | 
|  `ERROR 0A000: Feature not supported: RDS Proxy currently doesn't support the option option_name.`   |   Über die Startmeldung fordert der PostgreSQL-Client, der für die Verbindung mit dem Proxy verwendet wird, eine Option an, die derzeit vom RDS-Proxy nicht unterstützt wird.   |   Deaktivieren Sie die Option, die in der obigen Nachricht als nicht unterstützt angezeigt wird, in dem PostgreSQL-Client, der für die Verbindung verwendet wird.   | 
|  `ERROR 53300: The IAM authentication failed because of too many competing requests.`   |   Die Anzahl der gleichzeitigen Anforderungen mit IAM-Authentifizierung vom Client an den Proxy hat den Grenzwert überschritten.   |   Reduzieren Sie die Rate, mit der Verbindungen mit IAM-Authentifizierung von einem PostgreSQL-Client hergestellt werden.   | 
|  `ERROR 53300: The maximum number of client connections to the proxy exceeded number_value.`   |   Die Anzahl der gleichzeitigen Verbindungsanforderungen vom Client zum Proxy hat den Grenzwert überschritten.   |   Reduzieren Sie die Anzahl der aktiven Verbindungen von PostgreSQL-Clients zu diesem RDS-Proxy.   | 
|  `ERROR 53300: Rate of connection to proxy exceeded number_value.`   |   Die Rate der Verbindungsanforderungen vom Client zum Proxy hat den Grenzwert überschritten.   |   Reduzieren Sie die Rate, mit der Verbindungen von einem PostgreSQL-Client hergestellt werden.   | 
|  `ERROR XX000: Unknown error.`   |   Es ist ein unbekannter Fehler aufgetreten.   |   Wenden Sie sich an den AWS Support, um das Problem zu untersuchen.   | 
|  `ERROR 08000: Timed-out waiting to acquire database connection.`   |   Auf dem Proxy ist beim Herstellen einer Datenbankverbindung innerhalb der in der Einstellung `ConnectionBorrowTimeout` angegebenen Dauer eine Zeitüberschreitung aufgetreten. Einige mögliche Gründe sind:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/AmazonRDS/latest/AuroraUserGuide/rds-proxy.troubleshooting.html)  |   Folgende Lösungen sind möglich:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/AmazonRDS/latest/AuroraUserGuide/rds-proxy.troubleshooting.html)  | 
|  `ERROR XX000: Request returned an error: database_error.`   |   Die vom Proxy hergestellte Datenbankverbindung hat einen Fehler zurückgegeben.   |   Die Lösung hängt vom spezifischen Datenbankfehler ab. Ein Beispiel is: `Request returned an error: database "your-database-name" does not exist`. Das bedeutet, dass der angegebene Datenbankname nicht auf dem Datenbankserver existiert. Oder es bedeutet, dass der als Datenbankname verwendete Benutzername (wenn kein Datenbankname angegeben ist) auf dem Server nicht vorhanden ist.   | 
|  `ERROR 53300: The IAM authentication failed because of too many competing requests.`  |  Die Anzahl der gleichzeitigen Anforderungen mit IAM-Authentifizierung vom Client an den Proxy hat den Grenzwert überschritten.  |  Reduzieren Sie die Rate, mit der Verbindungen mit IAM-Authentifizierung von einem PostgreSQL-Client hergestellt werden.  | 
|  `ERROR 28000: Enable IAM authentication for the client connection to the proxy and try again.`  |  Der RDS-Proxy kann keine Verbindung zur Datenbank herstellen, da die IAM-Authentifizierung für die Client-Verbindung zum Proxy nicht aktiviert ist. Dies tritt auf, wenn der `DefaultAuthScheme` Parameter des Proxys auf `IAM_AUTH` mit einem registrierten Benutzer gesetzt ist, der Client jedoch die Kennwortauthentifizierung anstelle der IAM-Authentifizierung verwendet.  |  Aktivieren Sie die IAM-Authentifizierung für die Client-Verbindung zum Proxy und versuchen Sie es erneut.  | 
|  `ERROR 28000: Configure IAM authentication as the DefaultAuthScheme in your proxy and try again.`  |  Der RDS-Proxy kann keine Verbindung zur Datenbank herstellen, da der `DefaultAuthScheme` nicht auf `IAM_AUTH` eingestellt ist. Der `DefaultAuthScheme` Parameter des Proxys ist auf gesetzt`NONE`, aber der Client versucht, die IAM-Authentifizierung zu verwenden.  |  Stellen Sie `IAM_AUTH` für `DefaultAuthScheme` Ihren Proxy auf ein und versuchen Sie es erneut.  | 

### Problembehandlung bei gelöschter `postgres`-Datenbank
<a name="rds-proxy-PostgreSQL-troubleshooting.postgresDBDelete"></a>

Wenn Sie die `postgres`-Datenbank versehentlich aus Ihrer Instance löschen, müssen Sie die Datenbank wiederherstellen, um die Verbindung zu Ihrer Instance wiederherzustellen. Führen Sie die folgenden Befehle mit Ihrer DB-Instance aus:

```
CREATE DATABASE postgres;
GRANT CONNECT ON DATABASE postgres TO rdsproxyadmin;
```

# Verwenden von RDS-Proxy mit AWS CloudFormation
<a name="rds-proxy-cfn"></a>

 Sie können RDS-Proxy mit AWS CloudFormation nutzen. Auf diese Weise können Sie Gruppen verwandter Ressourcen erstellen. Eine solche Gruppe kann einen Proxy enthalten, der eine Verbindung mit einem neu erstellten Aurora-DB-Cluster herstellen kann. Die RDS-Proxy-Unterstützung in CloudFormation umfasst zwei neue Registrierungstypen: `DBProxy` und `DBProxyTargetGroup`. 

 Die folgende Auflistung zeigt eine CloudFormation-Beispielvorlage für RDS-Proxy. 

```
Resources:
 DBProxy:
   Type: AWS::RDS::DBProxy
   Properties:
     DBProxyName: CanaryProxy
     EngineFamily: MYSQL
     RoleArn:
      Fn::ImportValue: SecretReaderRoleArn
     Auth:
       - {AuthScheme: SECRETS, SecretArn: !ImportValue ProxySecret, IAMAuth: DISABLED}
     VpcSubnetIds:
       Fn::Split: [",", "Fn::ImportValue": SubnetIds]

 ProxyTargetGroup: 
   Type: AWS::RDS::DBProxyTargetGroup
   Properties:
     DBProxyName: CanaryProxy
     TargetGroupName: default
     DBInstanceIdentifiers: 
       - Fn::ImportValue: DBInstanceName
   DependsOn: DBProxy
```

 Weitere Informationen zu den Ressourcen in diesem Beispiel finden Sie unter [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html) und [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxytargetgroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxytargetgroup.html). 

 Weitere Informationen zu den Ressourcen, die Sie mit CloudFormation erstellen können, finden Sie in der [Referenz zu RDS-Ressourcentypen](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_RDS.html). 

# Verwenden von RDS Proxy mit globalen Aurora-Datenbanken
<a name="rds-proxy-gdb"></a>

Eine *globale Aurora-Datenbank* ist eine einzige Datenbank, die mehrere AWS-Regionen abdeckt, um globale Lesezugriffe mit niedriger Latenz und eine Notfallwiederherstellung nach regionalen Ausfällen zu ermöglichen. Es bietet eine integrierte Fehlertoleranz für Ihre Bereitstellung, da die DB-Instance nicht auf eine einzelne AWS-Region, sondern auf mehreren Regionen und verschiedenen Availability Zones zurückgreifen kann. Weitere Informationen finden Sie unter [Verwenden von Amazon Aurora Global Database](aurora-global-database.md).

Sie können RDS Proxy mit jedem DB-Cluster in einer globalen Aurora-Datenbank verwenden. Bevor Sie beginnen, diese Funktionen zusammen zu verwenden, sollten Sie sich mit den folgenden Informationen vertraut machen. 

**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](aurora-global-database-write-forwarding.md).

## Einschränkungen für RDS Proxy mit globalen Datenbanken
<a name="rds-proxy-gdb.limitations"></a>

Wenn im Aurora-DB-Cluster die Schreibweiterleitung aktiviert ist, unterstützt RDS Proxy den `SESSION`-Wert für die `aurora_replica_read_consistency`-Variable nicht. Durch das Festlegen dieses Werts kann unerwartetes Verhalten auftreten.

## So funktionieren RDS-Proxy-Endpunkte mit globalen Datenbanken
<a name="rds-proxy-gdb.endpoints"></a>

Wenn Sie verstehen, wie RDS-Proxy-Endpunke mit globalen Datenbanken funktionieren, können Sie Ihre Anwendungen, die Aurora-Datenbanken verwenden, mit diesen beiden Funktionen besser verwalten.

Bei einem Proxy mit dem primären Cluster einer globalen Datenbank als registriertem Ziel funktionieren die Proxy-Endpunkte genauso wie bei jedem beliebigen Aurora-DB-Cluster. Die Lese-/Schreib-Endpunkte des Proxy senden alle Anforderungen an die Writer-Instance des Clusters. Die schreibgeschützten Endpunkte des Proxys senden alle Anfragen an die Reader-Instances. Wenn ein Reader nicht mehr verfügbar ist, während eine Verbindung geöffnet ist, leitet RDS Proxy nachfolgende Abfragen in der Verbindung an eine andere Reader-Instance weiter. Bei einem Proxy mit einem sekundären Cluster als registriertem Ziel werden Anfragen, die an die schreibgeschützten Endpunkte des Proxys gesendet werden, auch an die Reader-Instances gesendet. Da der Cluster keine Writer-Instances hat, schlagen Anfragen, die an Lese/Schreib-Endpunkte gesendet werden, mit dem Fehler „`The target group doesn't have any associated read/write instances`“ fehl. 

Eine globale Datenbank-Umstellung und Failover-Vorgänge umfassen einen Rollenwechsel zwischen dem primären und einem der sekundären DB-Cluster. Wenn der ausgewählte sekundäre Cluster zum neuen primären Cluster wird, wird eine seiner Reader-Instances zum Writer hochgestuft. Diese DB-Instance ist jetzt die neue Writer-Instance für den globalen Cluster. Stellen Sie sicher, dass Sie die Schreibvorgänge Ihrer Anwendung an den entsprechenden Lese/Schreib-Endpunkt des Proxys umleiten, der dem neuen primären Cluster zugeordnet ist. Dieser Proxy-Endpunkt kann der Standardendpunkt oder ein benutzerdefinierter Lese/Schreib-Endpunkt sein. 

RDS Proxy stellt alle Anfragen über Lese/Schreib-Endpunkte in die Warteschlange und sendet sie an die Schreib-Iinstance des neuen primären Clusters, sobald dieser verfügbar ist. Dies geschieht unabhängig davon, ob die Umstellung oder der Failover-Vorgang abgeschlossen ist. Während der Umstellung oder des Failovers akzeptiert der Standardendpunkt des Proxys für den alten primären Cluster weiterhin Schreibvorgänge. Sobald dieser Cluster jedoch zu einem sekundären Cluster wird, schlagen alle Schreibvorgänge fehl. Informationen dazu, wie und wann bestimmte globale Umstellungs- oder Failover-Aufgaben ausgeführt werden müssen, finden Sie in den folgenden Themen:
+ Globale Datenbank-Umstellung – [Durchführen von Umstellungen für Amazon Aurora Global Databases](aurora-global-database-disaster-recovery.md#aurora-global-database-disaster-recovery.managed-failover)
+ Globales Datenbank-Failover – [Wiederherstellen einer globalen Amazon Aurora-Datenbank nach einem ungeplanten Ausfall](aurora-global-database-disaster-recovery.md#aurora-global-database-failover)