

# Gerenciar um RDS Proxy
<a name="rds-proxy-managing"></a>

 Esta seção fornece informações sobre como gerenciar a operação e a configuração do RDS Proxy. Esses procedimentos ajudam a aplicação a fazer o uso mais eficiente de conexões de banco de dados e alcançar o máximo de reutilização de conexão. Quanto mais você puder aproveitar a reutilização de conexões, poderá economizar mais sobrecarga de CPU e de memória. Isso, por sua vez, reduz a latência da aplicação e permite que o banco de dados dedique mais de seus recursos ao processamento de solicitações da aplicação. 

**Topics**
+ [Modificar um RDS Proxy](rds-proxy-modifying-proxy.md)
+ [Adicionar um novo usuário de banco de dados ao usar o RDS Proxy](rds-proxy-new-db-user.md)
+ [Migrar da autenticação padrão do IAM para a autenticação de ponta a ponta do IAM para o RDS Proxy](rds-proxy-iam-migration.md)
+ [Considerações sobre a conexão do RDS Proxy](rds-proxy-connections.md)
+ [Evitar a fixação de um RDS Proxy](rds-proxy-pinning.md)
+ [Excluir um RDS Proxy](rds-proxy-deleting.md)

# Modificar um RDS Proxy
<a name="rds-proxy-modifying-proxy"></a>

 Você pode alterar determinadas configurações associadas a um proxy depois de criar o proxy. Faça isso modificando o próprio proxy, seu grupo de destino associado ou ambos. Cada proxy tem um grupo de destino associado. 

## Console de gerenciamento da AWS
<a name="rds-proxy-modifying-proxy.console"></a>

**Importante**  
Os valores nos campos **Client authentication type** (Tipo de autenticação do cliente) e **IAM authentication** (Autenticação do IAM) se aplicam a todos os segredos do Secrets Manager associados a esse proxy. Para especificar valores diferentes para cada segredo, modifique seu proxy usando a AWS CLI ou a API.

**Como modificar as configurações de um proxy**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1.  No painel de navegação, escolha **Proxies**. 

1.  Na lista de proxies, escolha o proxy cujas configurações você deseja modificar ou vá para sua página de detalhes. 

1.  Para **Actions (Ações)**, escolha **Modify (Modificar)**. 

1.  Insira ou escolha as propriedades a serem modificadas. Você pode modificar o seguinte: 
   +  **Proxy identifier** (Identificador de proxy): renomeie o proxy inserindo um novo identificador. 
   +  **Idle client connection timeout** (Tempo limite da conexão do cliente ociosa): insira um período para o tempo limite da conexão do cliente ociosa. 
   +  **IAM role** (Perfil do IAM): altere o perfil do IAM usada para recuperar os segredos do Secrets Manager. 
**nota**  
Você não poderá criar um perfil do IAM se definir o **esquema de autenticação padrão** como **autenticação do IAM**.
   +  **Secrets Manager secrets** (Segredos do Secrets Manager): adicione ou remova segredos do Secrets Manager. Esses segredos correspondem a nomes de usuário e senhas de banco de dados. 
   +  **Tipo de autenticação de cliente**: altere o tipo de autenticação das conexões do cliente com o proxy. 
   +  **IAM Authentication** (Autenticação do IAM): exija ou desabilite a autenticação do IAM para conexões com o proxy. 
   +  **Esquema de autenticação padrão**: altere o esquema de autenticação padrão usado pelo proxy para conexões do cliente com o proxy e conexões do proxy com o banco de dados subjacente. 
   +  **Require Transport Layer Security** (Exija Transport Layer Security): ative ou desative o requisito de segurança do Transport layer Security (TLS). 
   +  **VPC grupo de segurança** (Grupos de segurança da VPC): adicione ou remova grupos de segurança da VPC para uso do proxy. 
   +  **Enable enhanced logging** (Habilite o registro em log aprimorado): habilite ou desabilite o registro em log aprimorado. 

1.  Selecione **Modify**. 

Se você não encontrou as configurações listadas que deseja alterar, use o procedimento a seguir para atualizar o grupo de destino para o proxy. O *grupo de destino* associado a um proxy controla as configurações relacionadas às conexões físicas do banco de dados. Cada proxy tem um grupo de destino associado, chamado `default`, que é criado automaticamente com o proxy. Não é possível renomear o grupo de destino padrão.

 Você só pode modificar o grupo de destino na página de detalhes do proxy, não na lista da página **Proxies**. 

**Como modificar as configurações de um grupo de destino de proxy**

1.  Na página **Proxies**, acesse a página de detalhes de um proxy. 

1.  Em **Target groups (Grupos de destino)**, escolha o link `default`. Atualmente, todos os proxies têm um único grupo de destino chamado `default`. 

1.  Na página de detalhes do grupo de destino **default (padrão)** escolha **Modify (Modificar)**. 

1.  Escolha novas configurações para as propriedades que você pode modificar: 
   +  **Banco de dados**: escolha outra instância de banco de dados do RDS ou outro cluster. 
   +  **Connection pool maximum connections** (Conexões máximas do grupo de conexões): ajuste a porcentagem das conexões máximas disponíveis que o proxy pode usar. 
   +  **Session pinning filters** (Filtros de fixação de sessões): (opcional) escolha um filtro de fixação de sessões. Isso contorna as medidas de segurança padrão para multiplexar conexões de banco de dados entre conexões de clientes. No momento, a configuração não é compatível com o PostgreSQL. A única opção é `EXCLUDE_VARIABLE_SETS`. 

     Habilitar essa configuração pode fazer com que as variáveis da sessão de uma conexão afetem outras conexões. Isso pode causar erros ou problemas de correção se suas consultas dependerem dos valores das variáveis de sessão definidos fora da transação atual. Considere a possibilidade de usar essa opção depois de verificar se é seguro as aplicações compartilharem conexões de banco de dados entre conexões de clientes.

     Os seguintes padrões podem ser considerados seguros:
     + Instruções `SET` em que não há alteração no valor efetivo da variável de sessão; isto é, não há alteração na variável de sessão.
     + Você altera o valor da variável de sessão e executa uma instrução na mesma transação.

     Para ter mais informações, consulte [Evitar a fixação de um RDS Proxy](rds-proxy-pinning.md). 
   +  **Connection borrow timeout** (Tempo limite do empréstimo de conexões): ajuste o intervalo do tempo limite de empréstimo de conexões. Essa configuração se aplica quando o número máximo de conexões já está sendo usado para o proxy. A configuração determina quanto tempo o proxy espera que uma conexão fique disponível antes de retornar um erro de tempo limite. 
   + **Consulta de inicialização**. (Opcional) Adicione uma consulta de inicialização ou modifique a atual. Você pode especificar uma ou mais instruções SQL para o proxy executar ao abrir cada nova conexão de banco de dados. A configuração normalmente é usada com instruções `SET` para garantir que cada conexão tenha configurações idênticas. Verifique se a consulta adicionada é válida. Para incluir diversas variáveis em uma única instrução `SET`, use vírgulas como separadores. Por exemplo:

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

     Para várias instruções, use um ponto e vírgula como separador.

    Não é possível alterar determinadas propriedades, como o identificador do grupo de destino e o mecanismo de banco de dados. 

1.  Escolha **Modify target group (Modificar grupo de destino)**. 

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

 Para modificar um proxy usando a AWS CLI, use os comandos [modify-db-proxy](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy.html), [modify-db-proxy-target-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy-target-group.html), [deregister-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/deregister-db-proxy-targets.html) e [register-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/register-db-proxy-targets.html). 

 Com o comando `modify-db-proxy`, é possível alterar propriedades como as seguintes: 
+  O conjunto de segredos do Secrets Manager usados pelo proxy. 
+  Se o TLS é necessário. 
+  O tempo limite do cliente ocioso. 
+  Se deseja registrar em log informações adicionais de instruções SQL para depuração. 
+  O perfil do IAM usada para recuperar segredos do Secrets Manager. 
+  Os grupos de segurança usados pelo proxy. 
+ O esquema de autenticação padrão associado ao proxy.

 O exemplo a seguir mostra como renomear um proxy existente. 

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

Para modificar configurações relacionadas à conexão ou renomear o grupo de destino, use o comando `modify-db-proxy-target-group`. Atualmente, todos os proxies têm um único grupo de destino chamado `default`. Ao trabalhar com esse grupo de destino, especifique o nome do proxy e `default` para o nome do grupo de destino. Não é possível renomear o grupo de destino padrão.

 O exemplo a seguir mostra como verificar primeiro a configuração de `MaxIdleConnectionsPercent` de um proxy e alterá-la usando o grupo de destino. 

```
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
    }
}
```

 Com os comandos `deregister-db-proxy-targets` e `register-db-proxy-targets`, você altera a quais instâncias de banco de dados do RDS o proxy está associado por meio de seu grupo de destino. No momento, cada proxy pode se conectar a uma instância de banco de dados do RDS. O grupo de destino controla os detalhes da conexão de todas as instâncias de banco de dados do RDS em uma configuração multi-AZ.

 O exemplo a seguir começa com um proxy associado a um cluster do Aurora MySQL chamado `cluster-56-2020-02-25-1399`. O exemplo mostra como alterar o proxy para que ele possa se conectar a outro cluster chamado `provisioned-cluster`. 

 Ao trabalhar com uma instância de banco de dados do RDS, você especifica a opção `--db-instance-identifier`. 

 O exemplo a seguir modifica um proxy Aurora MySQL. Um proxy Aurora PostgreSQL tem a porta 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"
        }
    ]
}
```

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

 Para modificar um proxy utilizando a API do RDS, utilize as operações [ModifyDBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxy.html), [ModifyDBProxyTargetGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxyTargetGroup.html), [DeregisterDBProxyTargets](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeregisterDBProxyTargets.html) e [RegisterDBProxyTargets](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RegisterDBProxyTargets.html). 

 Com `ModifyDBProxy`, é possível alterar propriedades como as seguintes: 
+  O conjunto de segredos do Secrets Manager usados pelo proxy. 
+  Se o TLS é necessário. 
+  O tempo limite do cliente ocioso. 
+  Se deseja registrar em log informações adicionais de instruções SQL para depuração. 
+  O perfil do IAM usada para recuperar segredos do Secrets Manager. 
+  Os grupos de segurança usados pelo proxy. 

Com `ModifyDBProxyTargetGroup`, é possível modificar as configurações relacionadas à conexão. Atualmente, todos os proxies têm um único grupo de destino chamado `default`. Ao trabalhar com esse grupo de destino, especifique o nome do proxy e `default` para o nome do grupo de destino. Não é possível renomear o grupo de destino padrão.

 Com `DeregisterDBProxyTargets` e `RegisterDBProxyTargets`, altere a qual instância de banco de dados do RDS o proxy está associado por meio do grupo de destino. Atualmente, cada proxy pode se conectar a uma instância de banco de dados do RDS. O grupo de destino monitora os detalhes da conexão das instâncias de banco de dados do RDS em uma configuração multi-AZ . 

# Adicionar um novo usuário de banco de dados ao usar o RDS Proxy
<a name="rds-proxy-new-db-user"></a>

Em alguns casos, é possível adicionar um novo usuário de banco de dados a uma instância de banco de dados do RDS ou um cluster com associação a um proxy. Prossiga dependendo se você estiver usando a autenticação padrão com segredos do Secrets Manager ou a autenticação de ponta a ponta do IAM.

Se você estiver usando a autenticação padrão do IAM, siga estas instruções:

1. Crie um segredo do Secrets Manager usando o procedimento descrito em [Configurar credenciais de banco de dados para RDS Proxy](rds-proxy-secrets-arns.md). 

1. Atualize o perfil do IAM para conceder ao proxy do RDS acesso ao novo segredo do Secrets Manager. Para fazer isso, atualize a seção de recursos da política de perfil do IAM. 

1. Modifique o RDS Proxy para adicionar o novo segredo do Secrets Manager em **Segredos do Secrets Manager**.

1.  Se o novo usuário tomar o lugar de um existente, atualize as credenciais armazenadas no segredo do Secrets Manager do proxy do usuário existente. 

Se você estiver usando a autenticação de ponta a ponta do IAM, precisará criar o usuário do banco de dados e configurar as permissões do IAM. Para isso, siga estas etapas:

1. Crie um usuário em seu banco de dados que corresponda ao nome de usuário ou perfil do IAM que você deseja usar para autenticação.

1. O usuário do banco de dados deve estar configurado com o plug-in de autenticação do IAM no banco de dados. Consulte [Criar uma conta de banco de dados usando autenticação do IAM](UsingWithRDS.IAMDBAuth.DBAccounts.md).

1. Atualize a política do IAM para conceder a permissão `rds-db:connect` ao usuário ou ao perfil do IAM, conforme descrito em [Criar uma política do IAM para a autenticação de ponta a ponta do IAM](rds-proxy-iam-setup.md#rds-proxy-iam-setup-e2e-steps).

1. Seu proxy deve estar configurado para usar a autenticação do IAM como o esquema de autenticação padrão.

Com a autenticação de ponta a ponta do IAM, você não precisa gerenciar as credenciais do banco de dados nos segredos do Secrets Manager, pois as credenciais do IAM são usadas para autenticação do cliente para o proxy e do proxy para o banco de dados. 

## Adicionar um novo usuário de banco de dados a um banco de dados do PostgreSQL ao usar o RDS Proxy
<a name="rds-proxy-new-db-user-pg"></a>

Ao adicionar um novo usuário ao banco de dados do PostgreSQL, se você tiver executado o seguinte comando:

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

Conceda ao usuário `rdsproxyadmin` o privilégio `CONNECT` para que ele possa monitorar as conexões no banco de dados de destino. 

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

Também é possível permitir que outros usuários do banco de dados de destino realizem verificações de integridade mudando `rdsproxyadmin` para o usuário do banco de dados no comando acima.

## Alterar a senha de um usuário de banco de dados ao usar o RDS Proxy
<a name="rds-proxy-changing-db-user-password"></a>

Em alguns casos, você pode alterar a senha de um usuário de banco de dados em uma instância de banco de dados do RDS com associação a um proxy. Nesse caso, atualize o segredo do Secrets Manager correspondente com a nova senha.

Se você estiver usando a autenticação de ponta a ponta do IAM, não precisará atualizar nenhuma senha nos segredos do Secrets Manager.

# Migrar da autenticação padrão do IAM para a autenticação de ponta a ponta do IAM para o RDS Proxy
<a name="rds-proxy-iam-migration"></a>

 Se atualmente você usa a autenticação do IAM padrão para RDS Proxy, em que os clientes se autenticam no proxy usando o IAM, mas o proxy se conecta ao banco de dados usando segredos, você pode migrar para a autenticação de ponta a ponta do IAM, na qual as conexões cliente-para-proxy e proxy-para-banco de dados usam a autenticação do IAM. 

**Como migrar para a autenticação de ponta a ponta do IAM**

1. **Atualizar as permissões do perfil do IAM para RDS Proxy**

   Crie uma política de permissão de proxy atualizada que inclua o Secrets Manager e permissões `rds:db-connect`:

   ```
   # 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"
         ]
       }
     ]
   }
   ```

   Atualize a política de perfil do proxy:

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

1. Modificar o RDS Proxy para habilitar a autenticação de ponta a ponta do IAM

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

   Verifique se o status do Proxy RDS está **disponível** e `DefaultAuthScheme` é `IAM_AUTH` antes de continuar para garantir zero tempo de inatividade durante a migração.

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

   Saída esperada:

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

1. Habilitar a autenticação do IAM no banco de dados

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

1. Configurar o usuário do banco de dados para autenticação do IAM

   Para RDS para PostgreSQL:

   ```
   GRANT rds_iam TO jane_doe;
   ```

   Para RDS para MySQL e RDS para MariaDB:

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

1. O código da sua aplicação cliente não precisa mudar. O processo de conexão permanece o mesmo:

   Para RDS para 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"
   ```

   Para RDS para MySQL e RDS para 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
   ```

# Considerações sobre a conexão do RDS Proxy
<a name="rds-proxy-connections"></a>

## Configurar configurações de conexões
<a name="rds-proxy-connection-pooling-tuning"></a>

Para ajustar o grupo de conexões do RDS Proxy, você pode modificar as seguintes configurações:
+ [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>

É possível especificar por quanto tempo uma conexão de cliente pode ficar antes que o proxy a feche. O padrão é de 1.800 segundos (30 minutos). 

Uma conexão de cliente é considerada *ociosa* quando a aplicação não envia uma nova solicitação dentro do tempo especificado após a conclusão da solicitação anterior. A conexão de banco de dados subjacente permanece aberta e é retornada ao grupo de conexões. Portanto, ela está disponível para ser reutilizada para novas conexões de cliente. Reduza o tempo limite de conexão do cliente ocioso se desejar que o proxy remova proativamente as conexões obsoletas. Se a workload estabelecer conexões frequentes com o proxy, aumente o tempo limite de conexão do cliente ocioso para reduzir o custo de estabelecimento de conexões.

Essa configuração é representada pelo **Tempo limite de conexão do cliente ocioso** no console do RDS e na configuração `IdleClientTimeout` na AWS CLI e a API. Para saber como alterar o valor do **Tempo limite de conexão do cliente ocioso** no console do RDS, consulte [Console de gerenciamento da AWS](rds-proxy-modifying-proxy.md#rds-proxy-modifying-proxy.console). Para saber como alterar o valor da configuração `IdleClientTimeout`, use o comando da CLI [modify-db-proxy](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy.html) ou a operação da API [ModifyDBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxy.html).

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

Você pode limitar o número de conexões que um Proxy RDS pode estabelecer com o banco de dados de destino. Você especifica o limite como uma porcentagem do máximo de conexões disponíveis para o banco de dados. Essa configuração é representada pelo campo **Connection pool maximum connections** (Número máximo de conexões para o grupo de conexões) no console do proxy do RDS ou pelo parâmetro `MaxConnectionsPercent` na AWS CLI e na API. 

O valor `MaxConnectionsPercent` é expresso como uma porcentagem da configuração `max_connections` da instância de banco de dados do RDS usada pelo grupo de destino. O proxy não cria todas essas conexões com antecedência. Essa configuração permite ao proxy estabelecer essas conexões conforme a necessidade da workload.

Por exemplo, para um destino de banco de dados registrado com `max_connections` definido como 1.000 e `MaxConnectionsPercent` definido como 95, o RDS Proxy define 950 conexões como o limite superior para conexões simultâneas com esse destino de banco de dados.

Um efeito colateral comum de sua workload atingir o número máximo de conexões de banco de dados permitidas é um aumento na latência geral da consulta, bem como um aumento na métrica `DatabaseConnectionsBorrowLatency`. Você pode monitorar as conexões de banco de dados usadas atualmente e o total permitido comparando as métricas `DatabaseConnections` e `MaxDatabaseConnectionsAllowed`.

Ao definir esse parâmetro, observe as seguintes práticas recomendadas:
+ Permita espaço de conexão suficiente para mudanças no padrão da workload. É recomendável definir o parâmetro pelo menos 30% acima do seu uso máximo monitorado recentemente. Como o RDS Proxy redistribui as cotas de conexão do banco de dados em vários nós, as mudanças na capacidade interna podem exigir pelo menos 30% de espaço livre para conexões adicionais, a fim de evitar o aumento das latências de empréstimo.
+ O RDS Proxy reserva um certo número de conexões para monitoramento ativo para comportar falhas rápidas, roteamento de tráfego e operações internas. A métrica `MaxDatabaseConnectionsAllowed` não inclui essas conexões reservadas. Ela representa o número de conexões disponíveis para atender à workload e pode ser menor do que o valor derivado da configuração `MaxConnectionsPercent`.

  Valores `MaxConnectionsPercent` mínimos recomendados
  + db.t3.small: 30
  + db.t3.medium ou superior: 20

Para saber como alterar o valor **Connection pool maximum connections** (Número máximo de conexões para o grupo de conexões) no console do RDS, consulte [Console de gerenciamento da AWS](rds-proxy-modifying-proxy.md#rds-proxy-modifying-proxy.console). Para saber como alterar o valor de `MaxConnectionsPercent`, consulte o comando da CLI [modify-db-proxy-target-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy-target-group.html) ou a operação da API [ModifyDBProxyTargetGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxyTargetGroup.html).

 Para obter informações sobre os limites de conexões de banco de dados, consulte [Número máximo de conexões de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.MaxConnections). 

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

Você pode controlar o número de conexões de banco de dados ociosas que o proxy do RDS pode manter no grupo de conexões. Por padrão, o RDS Proxy considera uma conexão de banco de dados no grupo como *ociosa* quando não há atividade na conexão por cinco minutos. 

O valor `MaxIdleConnectionsPercent` é expresso como uma porcentagem da configuração `max_connections` do grupo de destino da instância de banco de dados do RDS. O valor padrão é 50% de `MaxConnectionsPercent` e o limite superior é o valor de `MaxConnectionsPercent`. Por exemplo, se `MaxConnectionsPercent` for 80, o valor padrão de `MaxIdleConnectionsPercent` será 40. Se o valor de `MaxConnectionsPercent` não for especificado, para o SQL Server, `MaxIdleConnectionsPercent` será 5 e, para todos os outros mecanismos, o padrão será 50.

Com um valor alto, o proxy deixa uma alta porcentagem de conexões de banco de dados ociosas abertas. Com um valor baixo, o proxy fecha uma alta porcentagem de conexões de banco de dados ociosas. Se suas workloads forem imprevisíveis, considere definir um valor alto para `MaxIdleConnectionsPercent`. Isso significa que o RDS Proxy pode acomodar picos de atividade sem abrir muitas novas conexões de banco de dados. 

Essa configuração é representada pela configuração `MaxIdleConnectionsPercent` do `DBProxyTargetGroup` na AWS CLI e na API. Para saber como alterar o valor de `MaxIdleConnectionsPercent`, consulte o comando da CLI [modify-db-proxy-target-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy-target-group.html) ou a operação da API [ModifyDBProxyTargetGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxyTargetGroup.html).

 Para obter informações sobre os limites de conexões de banco de dados, consulte [Número máximo de conexões de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.MaxConnections). 

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

É possível especificar quanto tempo o proxy do RDS espera que uma conexão de banco de dados no grupo de conexão fique disponível antes de retornar um erro de tempo limite. O padrão é 120 segundos. Esta configuração se aplica quando o número de conexões está no máximo e, portanto, nenhuma conexão está disponível no grupo de conexões. Isso também se aplica caso nenhuma instância de banco de dados apropriada esteja disponível para lidar com a solicitação, por exemplo, quando uma operação de failover está em andamento. Usando essa configuração, é possível definir o melhor período de espera para a aplicação sem precisar alterar o tempo limite da consulta no código.

Essa configuração é representada pelo campo **Connection borrow timeout** (Tempo limite de empréstimo de conexões) no console do RDS ou pela configuração `ConnectionBorrowTimeout` de `DBProxyTargetGroup` na AWS CLI ou API. Para saber como alterar o valor do campo **Connection borrow timeout** (Tempo limite de empréstimo de conexões) no console do RDS, consulte [Console de gerenciamento da AWS](rds-proxy-modifying-proxy.md#rds-proxy-modifying-proxy.console). Para saber como alterar o valor de `ConnectionBorrowTimeout`, consulte o comando da CLI [modify-db-proxy-target-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy-target-group.html) ou a operação da API [ModifyDBProxyTargetGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxyTargetGroup.html).

## Conexões de cliente e banco de dados
<a name="rds-proxy-connection-life"></a>

As conexões do seu aplicativo com o RDS Proxy são conhecidas como conexões de cliente. As conexões de um proxy com o banco de dados são conexões de banco de dados. Ao usar o RDS Proxy, as conexões do cliente terminam no proxy, enquanto as conexões do banco de dados são gerenciadas no RDS Proxy.

O grupo de conexões do lado da aplicação pode oferecer o benefício de reduzir o estabelecimento de conexão recorrente entre a aplicação e o RDS Proxy.

Pense nos seguintes aspectos de configuração antes de implementar um grupo de conexões do lado da aplicação:
+ Vida útil máxima da conexão do cliente: o RDS Proxy impõe uma vida útil máxima das conexões do cliente de 24 horas. Esse valor não é configurável. Configure o grupo com uma vida útil máxima de conexão inferior a 24 horas para evitar quedas inesperadas na conexão do cliente. 
+ Tempo limite de inatividade da conexão do cliente: o RDS Proxy impõe um tempo máximo de inatividade para as conexões do cliente. Configure seu pool com um tempo limite de conexão ociosa de um valor menor do que a configuração de tempo limite de inatividade da conexão do cliente para o RDS Proxy para evitar quedas inesperadas de conexão.

O número máximo de conexões de cliente configuradas no grupo de conexões do lado da aplicação não precisa ser limitado à configuração **max\$1connections** do RDS Proxy.

O grupo de conexões do cliente resulta em maior vida útil da conexão do cliente. Se suas conexões experimentarem fixação, o agrupamento de conexões de clientes pode reduzir a eficiência da multiplexação. As conexões de cliente fixas, mas ociosas, no grupo de conexões do lado da aplicação continuam mantendo uma conexão com o banco de dados e impedem que a conexão seja reutilizada por outras conexões do cliente. Analise os logs do proxy para conferir se as conexões estão sendo fixadas.

**nota**  
O proxy do RDS encerra as conexões com o banco de dados depois de 24 horas, quando elas não estiverem mais em uso. O proxy executa essa ação independentemente do valor da configuração máxima de conexões ociosas.

# Evitar a fixação de um RDS Proxy
<a name="rds-proxy-pinning"></a>

 A multiplexação é mais eficiente quando as solicitações de banco de dados não dependem de informações de estado de solicitações anteriores. Nesse caso, o proxy do RDS pode reutilizar uma conexão na conclusão de cada transação. Exemplos de tais informações de estado incluem a maioria das variáveis e parâmetros de configuração que você pode alterar por meio de instruções `SET` ou `SELECT`. Por padrão, as transações SQL em uma conexão de cliente podem multiplexar entre conexões de banco de dados subjacentes. 

 Suas conexões com o proxy podem entrar em um estado conhecido como *fixação*. Quando uma conexão é fixada, cada transação posterior usa a mesma conexão de banco de dados subjacente até que a sessão termine. Outras conexões de cliente também não podem reutilizar essa conexão de banco de dados até que a sessão termine. A sessão termina quando a conexão do cliente é descartada. 

 O proxy do RDS automaticamente fixa uma conexão de cliente a uma conexão de banco de dados específica quando detecta uma alteração no estado de sessão que não é apropriada para outras sessões. A fixação reduz a eficácia da reutilização de conexões. Se todas ou quase todas as suas conexões forem fixadas, considere modificar o código da aplicação ou a workload para reduzir as condições que provocam a fixação. 

Por exemplo, a aplicação altera uma variável de sessão ou um parâmetro de configuração. Nesse caso, as declarações posteriores poderão contar que a nova variável ou parâmetro estará em vigor. Assim, quando o proxy do RDS processa solicitações para alterar variáveis ou definições da configuração da sessão, ele fixa essa sessão para a conexão com o banco de dados. Dessa forma, o estado da sessão permanece em vigor para todas as transações posteriores na mesma sessão. 

 Em alguns mecanismos de banco de dados, essa regra não se aplica a todos os parâmetros que você pode definir. O proxy do RDS monitora determinadas instruções e variáveis. Portanto, o RDS Proxy não fixa a sessão quando você as modifica. Nesse caso, o proxy do RDS apenas reutiliza a conexão para outras sessões que tenham os mesmos valores para essas configurações. Para obter detalhes sobre o que o RDS Proxy monitora para um mecanismo de banco de dados, consulte o seguinte: 
+ [O que o RDS Proxy monitora para bancos de dados do RDS para SQL Server](#rds-proxy-pinning.sql-server-tracked-vars)
+ [O que o RDS Proxy monitora para bancos de dados do RDS para MariaDB e o RDS para MySQL](#rds-proxy-pinning.mysql-tracked-vars)

## O que o RDS Proxy monitora para bancos de dados do RDS para SQL Server
<a name="rds-proxy-pinning.sql-server-tracked-vars"></a>

O RDS Proxy monitora as seguintes instruções do SQL Server:
+ `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`

## O que o RDS Proxy monitora para bancos de dados do RDS para MariaDB e o RDS para MySQL
<a name="rds-proxy-pinning.mysql-tracked-vars"></a>

O RDS Proxy monitora as seguintes instruções do MariaDB e do MySQL:
+ DROP DATABASE
+ DROP SCHEMA
+ USE

O RDS Proxy monitora as seguintes variáveis do MySQL e do MariaDB:
+ `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`

**nota**  
O RDS Proxy rastreia as alterações nas variáveis `TRANSACTION_ISOLATION` e `TRANSACTION_READ_ONLY` quando você as define no escopo da sessão. No entanto, se você defini-las no escopo da próxima transação, o RDS Proxy fixará as conexões. Esse comportamento se aplica independentemente de você usar uma instrução `SET` ou uma instrução `SET TRANSACTION` para configurar esses valores.

## Reduzir a fixação
<a name="rds-proxy-pinning.minimizing"></a>

 O ajuste de performance do proxy do RDS envolve a tentativa de maximizar a reutilização de conexões em nível de transação (multiplexação) minimizando a fixação. 

É possível reduzir a fixação da seguinte maneira: 
+  Evite solicitações de banco de dados desnecessárias que podem causar fixação. 
+  Defina variáveis e definições de configuração de forma consistente em todas as conexões. Dessa forma, as sessões posteriores têm mais probabilidade de reutilizar conexões que têm essas configurações específicas. 

   No entanto, para a configuração do PostgreSQL, uma variável leva à fixação da sessão. 
+  Para um banco de dados da família de mecanismos do MySQL, aplique um filtro de fixação de sessão ao proxy. Você pode isentar certos tipos de operações de fixar a sessão se souber que isso não afeta o funcionamento correto da aplicação. 
+  Veja com que frequência a fixação ocorre monitorando a métrica `DatabaseConnectionsCurrentlySessionPinned` do Amazon CloudWatch. Para obter informações sobre essa e outras métricas do CloudWatch, consulte [Monitorar métricas do proxy do RDS com o Amazon CloudWatchMonitorar o proxy do RDS com o CloudWatch](rds-proxy.monitoring.md). 
+  Se você usar instruções `SET` para executar uma inicialização idêntica para cada conexão de cliente, poderá fazê-lo enquanto preserva a multiplexação no nível de transação. Nesse caso, você move as instruções que configuram o estado da sessão inicial para a consulta de inicialização usada por um proxy. Esta propriedade é uma string que contém uma ou mais instruções SQL, separadas por ponto e vírgula. 

   Por exemplo, você pode definir uma consulta de inicialização para um proxy que define determinados parâmetros de configuração. O proxy do RDS aplica essas configurações sempre que configura uma nova conexão para esse proxy. Você pode remover as instruções `SET` correspondentes do código de sua aplicação, para que elas não interfiram na multiplexação em nível de transação. 

   Para ver métricas sobre a frequência com que a fixação ocorre para um proxy, consulte [Monitorar métricas do proxy do RDS com o Amazon CloudWatchMonitorar o proxy do RDS com o CloudWatch](rds-proxy.monitoring.md). 

## Condições que causam fixação para todas as famílias de mecanismos
<a name="rds-proxy-pinning.all"></a>

 O proxy fixa a sessão à conexão atual nas seguintes situações em que a multiplexação pode causar um comportamento inesperado: 
+ Qualquer instrução com um tamanho de texto maior do que 16 KB faz com que o proxy fixe a sessão.

## Condições que podem causar fixação no RDS para Microsoft SQL Server
<a name="rds-proxy-pinning.sqlserver"></a>

 Para o RDS para SQL Server, as seguintes interações também geram fixação: 
+ Utilizando vários conjuntos de resultados ativos (MARS). Para obter informações sobre MARS, consulte a documentação do [SQL Server](https://docs.microsoft.com/en-us/sql/relational-databases/native-client/features/using-multiple-active-result-sets-mars?view=sql-server-ver16).
+ Utilizando a comunicação do coordenador de transações distribuídas (DTC).
+ Criando tabelas temporárias, transações, cursores ou declarações preparadas.
+ Usando as seguintes declarações `SET`:
  + `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`, e `SHOWPLAN_XML`
  + `SET STATISTICS`
  + `SET XACT_ABORT`

## Condições que causam fixação no RDS para MariaDB e RDS para MySQL
<a name="rds-proxy-pinning.mysql"></a>

 Para o MySQL e o MariaDB, as seguintes interações também podem causar fixação: 
+ As instruções explícitas de bloqueio de tabela `LOCK TABLE`, `LOCK TABLES` ou `FLUSH TABLES WITH READ LOCK` fazem com que o proxy fixe a sessão. 
+ A criação de bloqueios nomeados usando `GET_LOCK` faz com que o proxy fixe a sessão. 
+ Definir uma variável de usuário ou sistema (com algumas exceções) fixa a sessão ao proxy. Se isso limitar significativamente a reutilização da conexão, você poderá configurar as operações `SET` para evitar a fixação. Para fazer isso, ajuste a propriedade de filtros de fixação de sessão. Para obter mais informações, consulte [Criar um proxy para o Amazon RDS](rds-proxy-creating.md) e [Modificar um RDS Proxy](rds-proxy-modifying-proxy.md).
+ A criação de uma tabela temporária faz com que o proxy fixe a sessão. Dessa forma, o conteúdo da tabela temporária é preservado durante toda a sessão, independentemente dos limites de transação. 
+ A chamada das funções `ROW_COUNT` e `FOUND_ROWS` às vezes causa fixação. 
+ As instruções preparadas fazem com que o proxy fixe a sessão. Essa regra se aplicará se a instrução preparada usar texto SQL ou o protocolo binário. 
+ O RDS Proxy não fixa conexões quando você usa SET LOCAL.
+ A chamada de procedimentos armazenados e de funções armazenadas não causa fixação. O proxy do RDS não detecta nenhuma alteração de estado de sessão resultante dessas chamadas. Verifique se a aplicação não altera o estado da sessão dentro de rotinas armazenadas se você confia nesse estado de sessão para persistir entre transações. Por exemplo, no momento, o proxy do RDS não é compatível com um procedimento armazenado que cria uma tabela temporária que persiste em todas as transações. 
+ Consultas com comentários executáveis para MySQL (sintaxe /\$1\$1 ... \$1/) ou MariaDB (sintaxe /\$1M\$1 ... \$1/) causam fixação. O RDS Proxy não pode analisar o SQL incorporado nesses comentários para rastrear alterações no estado da sessão.

 Se você tiver conhecimento especializado sobre o comportamento da aplicação, poderá ignorar o comportamento de fixação de determinadas instruções da aplicação. Para fazer isso, escolha a opção **Filtros de fixação de sessão** ao criar o proxy. Atualmente, é possível cancelar a fixação de sessão para definir variáveis de sessão e configurações. 

## Condições que causam fixação no RDS para PostgreSQL
<a name="rds-proxy-pinning.postgres"></a>

 Para o PostgreSQL, as seguintes interações também geram a fixação: 
+  Usar comandos `SET`.
+  Usar comandos `PREPARE`, `DISCARD`, `DEALLOCATE` ou `EXECUTE` para gerenciar instruções preparadas.
+  Criar sequências, tabelas ou visualizações temporárias.
+  Declarar cursores.
+  Descartar o estado da sessão.
+  Escutar em um canal de notificação.
+  Carregar um módulo de biblioteca, como `auto_explain`.
+  Manipular sequências usando funções como `nextval` e `setval`.
+  Interagir com bloqueios usando funções como `pg_advisory_lock` e `pg_try_advisory_lock`. 
**nota**  
O RDS Proxy não fixa bloqueios consultivos em nível de transação, especificamente `pg_advisory_xact_lock`, `pg_advisory_xact_lock_shared`, `pg_try_advisory_xact_lock` e `pg_try_advisory_xact_lock_shared`.
+ Definir ou redefinir um parâmetro como o padrão. Especificamente, usar comandos `SET` e `set_config` para atribuir valores padrão às variáveis da sessão.
+ A chamada de procedimentos armazenados e de funções armazenadas não causa fixação. O proxy do RDS não detecta nenhuma alteração de estado de sessão resultante dessas chamadas. Verifique se a aplicação não altera o estado da sessão dentro de rotinas armazenadas se você confia nesse estado de sessão para persistir entre transações. Por exemplo, no momento, o proxy do RDS não é compatível com um procedimento armazenado que cria uma tabela temporária que persiste em todas as transações. 
+ Descartar estado da sessão. Se você usar bibliotecas de pool de conexões com a consulta `DISCARD ALL` configurada como uma consulta de redefinição, o RDS Proxy fixará sua conexão de cliente na liberação. Isso reduz a eficiência da multiplexação do proxy e pode levar a resultados inesperados, pois o comando `DISCARD ALL` pode interferir no gerenciamento do estado da sessão.

# Excluir um RDS Proxy
<a name="rds-proxy-deleting"></a>

 Será possível excluir um proxy quando não precisar mais dele. Ou poderá excluir um proxy se você tirar de serviço a instância ou o cluster de banco de dados associado. 

## Console de gerenciamento da AWS
<a name="rds-proxy-deleting.console"></a>

**Como excluir um proxy**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1.  No painel de navegação, escolha **Proxies**. 

1.  Escolha o proxy a ser excluído da lista. 

1.  Escolha **Delete Proxy (Excluir proxy)**. 

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

 Para excluir um proxy de banco de dados, use o comando [delete-db-proxy](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-proxy.html) da AWS CLI. Para remover associações relacionadas, use também o comando [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]
```

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

 Para excluir um proxy de banco de dados, chame a função [DeleteDBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBProxy.html) da API do Amazon RDS. Para excluir itens e associações relacionados, você também chama as funções [DeleteDBProxyTargetGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBProxyTargetGroup.html) e [DeregisterDBProxyTargets](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeregisterDBProxyTargets.html). 