

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.

# 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 eine andere RDS-DB-Instance oder 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 RDS-DB-Instances der Proxy über die Zielgruppe zugeordnet ist. Derzeit kann jeder Proxy eine Verbindung zu einer RDS-DB-Instance herstellen. Die Zielgruppe verfolgt die Verbindungsdetails für alle RDS-DB-Instances in einer Multi-AZ-Konfiguration.

 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 einer RDS-DB-Instance arbeiten, geben Sie die `--db-instance-identifier`-Option 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 RDS-DB-Instance der Proxy über die Zielgruppe zugeordnet ist. Derzeit kann jeder Proxy eine Verbindung mit einer RDS-DB-Instance herstellen. Die Zielgruppe verfolgt die Verbindungsdetails für die RDS-DB-Instances in einer Multi-AZ-Konfiguration. 

# 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 einer RD-DB-Instance oder -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 einer RDS-DB-Instance 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 RDS für PostgreSQL:

   ```
   GRANT rds_iam TO jane_doe;
   ```

   Für RDS für MySQL und RDS für MariaDB:

   ```
   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 RDS für 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 RDS für MySQL und RDS für MariaDB:

   ```
   # 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 Verbindungs-Pooling 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 die RDS-DB-Instance 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.

  Empfohlene Mindestwerte für `MaxConnectionsPercent`
  + db.t3.small: 30
  + db.t3.medium oder höher: 20

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

 Informationen zu Datenbankverbindungslimits finden Sie unter [Maximale Anzahl von Datenbankverbindungen](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.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. Wenn der Wert von `MaxConnectionsPercent` nicht angegeben ist, beträgt `MaxIdleConnectionsPercent` für SQL Server 5. Für alle anderen Engines ist der Standardwert 50.

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 Anzahl von Datenbankverbindungen](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.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 prüfen, 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. Einzelheiten darüber, welche Daten RDS-Proxy für eine Datenbank-Engine verfolgt, finden Sie im Folgenden: 
+ [Welche Daten RDS-Proxy für Datenbanken von RDS für SQL Server verfolgt](#rds-proxy-pinning.sql-server-tracked-vars)
+ [RDS-Proxy verfolgt die folgenden Datenbanken von RDS für MariaDB und RDS für MySQL:](#rds-proxy-pinning.mysql-tracked-vars)

## Welche Daten RDS-Proxy für Datenbanken von RDS für SQL Server verfolgt
<a name="rds-proxy-pinning.sql-server-tracked-vars"></a>

RDS-Proxy verfolgt die folgenden SQL-Server-Anweisungen:
+ `USE`
+ `SET ANSI_NULLS`
+ `SET ANSI_PADDING`
+ `SET ANSI_WARNINGS`
+ `SET ARITHABORT`
+ `SET CONCAT_NULL_YIELDS_NULL`
+ `SET CURSOR_CLOSE_ON_COMMIT`
+ `SET DATEFIRST`
+ `SET DATEFORMAT`
+ `SET LANGUAGE`
+ `SET LOCK_TIMEOUT`
+ `SET NUMERIC_ROUNDABORT`
+ `SET QUOTED_IDENTIFIER`
+ `SET TEXTSIZE`
+ `SET TRANSACTION ISOLATION LEVEL`

## RDS-Proxy verfolgt die folgenden Datenbanken von RDS für MariaDB und RDS für MySQL:
<a name="rds-proxy-pinning.mysql-tracked-vars"></a>

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

RDS-Proxy verfolgt die folgenden MySQL- und MariaDB-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 RDS für Microsoft SQL Server verursachen
<a name="rds-proxy-pinning.sqlserver"></a>

 Bei RDS für SQL Server verursachen die folgenden Interaktionen eine Fixierung: 
+ Verwendung mehrerer aktiver Ergebnissätze (MARS). Weitere Informationen zu MARS finden Sie in der [SQL-Server](https://docs.microsoft.com/en-us/sql/relational-databases/native-client/features/using-multiple-active-result-sets-mars?view=sql-server-ver16)-Dokumentation.
+ Verwendung der Kommunikation mit verteiltem Transaktionskoordinator (DTC).
+ Erstellen von temporären Tabellen, Transaktionen, Cursor oder vorbereiteten Anweisungen.
+ Verwenden der folgenden `SET`-Anweisungen:
  + `SET ANSI_DEFAULTS`
  + `SET ANSI_NULL_DFLT`
  + `SET ARITHIGNORE`
  + `SET DEADLOCK_PRIORITY`
  + `SET FIPS_FLAGGER`
  + `SET FMTONLY`
  + `SET FORCEPLAN`
  + `SET IDENTITY_INSERT`
  + `SET NOCOUNT`
  + `SET NOEXEC`
  + `SET OFFSETS`
  + `SET PARSEONLY`
  + `SET QUERY_GOVERNOR_COST_LIMIT`
  + `SET REMOTE_PROC_TRANSACTIONS`
  + `SET ROWCOUNT`
  + `SET SHOWPLAN_ALL`, `SHOWPLAN_TEXT` und `SHOWPLAN_XML`
  + `SET STATISTICS`
  + `SET XACT_ABORT`

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

 Bei MariaDB und 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 RDS](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. 
+ 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 RDS für 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. 