

# Criar um proxy para o Amazon Aurora
<a name="rds-proxy-creating"></a>

É possível usar o Amazon RDS Proxy para melhorar a escalabilidade, disponibilidade e segurança das aplicações de banco de dados agrupando conexões e gerenciando failovers de banco de dados com maior eficiência. Este tópico descreve como criar um proxy. Antes de começar, assegure-se de que o banco de dados atenda aos pré-requisitos necessários, como permissões do IAM e configuração de VPC.

É possível associar um proxy a um cluster de banco de dados do Aurora MySQL ou Aurora PostgreSQL. 

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

**Como criar 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 **Create proxy (Criar proxy)**. 

1. Defina as configurações de proxy a seguir.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/AuroraUserGuide/rds-proxy-creating.html)

1.  Escolha **Create proxy (Criar proxy)**. 

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

 Para criar um proxy utilizando a AWS CLI, chame o comando [create-db-proxy](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-proxy.html) com os seguintes parâmetros obrigatórios: 
+ `--db-proxy-name`
+ `--engine-family`
+ `--role-arn`
+ `--vpc-subnet-ids`

O valor `--engine-family` diferencia letras maiúsculas de minúsculas.

**Example**  
Para Linux, macOS ou Unix:  

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

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

Veja a seguir um exemplo do valor JSON da opção `--auth`. Este exemplo aplica um tipo de autenticação de cliente diferente a cada segredo.

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

O parâmetro `--endpoint-network-type` especifica a versão do IP do endpoint de proxy que os clientes usam para se conectar ao proxy. Os valores válidos são:
+ `IPV4`: o endpoint de proxy usa somente endereços IPv4 (padrão).
+ `IPV6`: o endpoint de proxy usa somente endereços IPv6.
+ `DUAL`: o endpoint de proxy comporta endereços IPv4 e IPv6.

O parâmetro `--target-connection-network-type` especifica a versão do IP que o proxy usa para se conectar ao banco de dados de destino. Os valores válidos são:
+ `IPV4`: o proxy se conecta ao banco de dados usando endereços IPv4 (padrão).
+ `IPV6`: o proxy se conecta ao banco de dados usando endereços IPv6.

Para usar tipos de rede de endpoint IPv6 ou de pilha dupla, sua VPC e sub-redes devem ser configuradas para comportar o tipo de rede selecionado. Para usar o tipo de rede de conexão de destino IPv6, seu banco de dados deve comportar o modo de pilha dupla.

**dica**  
 Se você ainda não souber os IDs de sub-rede que serão usados para o parâmetro `--vpc-subnet-ids`, consulte [Configurar os pré-requisitos de rede para o RDS Proxy](rds-proxy-network-prereqs.md) para obter exemplos de como encontrá-los. 

**nota**  
O grupo de segurança deve permitir acesso ao banco de dados ao qual o proxy se conecta. O mesmo grupo de segurança é usado para entrada das aplicações para o proxy e para saída do proxy para o banco de dados. Por exemplo, suponha que você use o mesmo grupo de segurança para o banco de dados e o proxy. Nesse caso, especifique que os recursos nesse grupo de segurança podem se comunicar com outros recursos no mesmo grupo de segurança.  
Ao usar uma VPC compartilhada, você não pode usar o grupo de segurança padrão para a VPC ou um grupo de segurança pertencente a outra conta. Escolha um grupo de segurança que pertença à sua conta. Se não houver, crie um. Para ter mais informações sobre essa limitação, consulte [Trabalhar com VPCs compartilhadas](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-sharing.html#vpc-share-limitations). 

 Para criar as associações corretas para o proxy, também é possível usar o comando [register-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/register-db-proxy-targets.html). Especificar o nome do grupo de destino do `default`. O proxy do RDS cria automaticamente um grupo de destino com este nome ao criar cada proxy. 

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

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

 Para criar um proxy do RDS , chame a operação [CreateDBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBProxy.html) da API do Amazon RDS. Passe um parâmetro com a estrutura de dados [AuthConfig](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_AuthConfig.html). 

 O proxy do RDS cria automaticamente um grupo de destino chamado `default` ao criar cada proxy. Associe um cluster de bancos de dados do Aurora ao grupo de destino chamando a função [RegisterDBProxyTargets](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RegisterDBProxyTargets.html). 

**Importante**  
Quando você seleciona a **autenticação do IAM** para o esquema de autenticação padrão:  
Você deve habilitar a autenticação do banco de dados do IAM em suas instâncias ou clusters de banco de dados de destino para que o proxy possa se conectar com êxito.
Se você escolher **Criar perfil do IAM**, o campo **Contas de banco de dados para autenticação do IAM** será obrigatório.
Se você selecionar um perfil do IAM existente, o console não atualizará automaticamente o perfil com as permissões de conexão do banco de dados. Confira se o perfil tem as permissões `rds-db:connect` necessárias.