Usar o Amazon RDS Proxy para o Aurora
Com o proxy do Amazon RDS, você pode permitir que suas aplicações agrupem e compartilhem conexões de banco de dados para melhorar sua capacidade de escala. O proxy do RDS torna as aplicações mais resilientes a falhas de banco de dados conectando-se automaticamente a uma instância de banco de dados em espera e preservando as conexões de aplicações. Ao usar o RDS Proxy, você também pode impor a autenticação do AWS Identity and Access Management (IAM) para bancos de dados e armazenar credenciais com segurança no AWS Secrets Manager.
Com o RDS Proxy, você pode lidar com picos imprevisíveis no tráfego de banco de dados. Caso contrário, esses picos podem causar problemas devido a conexões com excesso de assinaturas ou à criação rápida de conexões. O RDS Proxy estabelece um grupo de conexões de banco de dados e reutiliza conexões nesse grupo. Essa abordagem evita sobrecarregar a memória e a CPU de abrir uma nova conexão de banco de dados todas as vezes. Para proteger um banco de dados contra o excesso de assinaturas, é possível controlar o número de conexões do banco de dados criadas.
O RDS Proxy coloca na fila ou limita as conexões das aplicações que não podem ser atendidas imediatamente do grupo de conexões. Embora as latências possam aumentar, sua aplicação pode continuar a escalar sem falhar abruptamente ou sobrecarregar o banco de dados. Se as solicitações de conexão excederem os limites especificados, o proxy do RDS rejeitará as conexões de aplicações (ou seja, grandes quantidades de carga). Ao mesmo tempo, ele mantém uma performance previsível para a carga que pode ser atendida pelo RDS com a capacidade disponível.
Você pode reduzir a sobrecarga para processar credenciais e estabelecer uma conexão segura para cada nova conexão. O proxy do RDS pode lidar com parte desse trabalho em nome do banco de dados.
O proxy do RDS é totalmente compatível com as versões dos mecanismos com os quais é compatível. É possível habilitar o proxy do RDS para a maioria das aplicações sem alterações de código. Para obter uma lista das versões dos mecanismos compatíveis, consulte Regiões e mecanismos de banco de dados do Aurora compatíveis com o Amazon RDS Proxy.
Tópicos
- Disponibilidade de região e versão
- Cotas e limitações do RDS Proxy
- Planejar onde usar o RDS Proxy
- Conceitos e terminologia do RDS Proxy
- Conceitos básicos do RDS Proxy
- Gerenciar um RDS Proxy
- Como trabalhar com endpoints do proxy do Amazon RDS
- Monitorar métricas do proxy do RDS com o Amazon CloudWatch
- Trabalhar com eventos do RDS Proxy
- Exemplos de linha de comando do RDS Proxy
- Solução de problemas do RDS Proxy
- Usar o proxy do RDS com o AWS CloudFormation
- Usa o RDS Proxy com bancos de dados globais do Aurora
Disponibilidade de região e versão
Para saber mais sobre o suporte a versões de mecanismos de banco de dados e a disponibilidade do RDS Proxy em determinada região da Região da AWS, consulte Regiões e mecanismos de banco de dados do Aurora compatíveis com o Amazon RDS Proxy.
Cotas e limitações do RDS Proxy
As seguintes limitações aplicam-se ao RDS Proxy:
-
Cada ID de Conta da AWS é limitado a 20 proxies. Se a aplicação exigir mais proxies, solicite um aumento na página Service Quotas no AWS Management Console. Na página Service Quotas, selecione Amazon Relational Database Service (Amazon RDS) e localize Proxies para solicitar um aumento de cota. A AWS pode aumentar automaticamente a cota ou aguardar a análise da solicitação pelo AWS Support.
-
Cada proxy pode ter até 200 segredos associados do Secrets Manager. Assim, cada proxy pode se conectar com até 200 contas de usuário diferentes em qualquer momento.
-
Cada proxy tem um endpoint padrão. Também é possível adicionar até vinte endpoints a cada proxy. É possível criar, visualizar, modificar e excluir esses endpoints.
-
Em um cluster do Aurora, todas as conexões que usam o endpoint padrão do proxy são tratadas pela instância de gravação do Aurora. Para executar o balanceamento de carga para workloads com uso intensivo de leitura, você pode criar um endpoint somente leitura para um proxy. Esse endpoint passa conexões para o endpoint de leitor do cluster. Dessa forma, suas conexões de proxy podem tirar proveito da escalabilidade de leitura do Aurora. Para ter mais informações, consulte Visão geral dos endpoints de proxy.
-
É possível usar o RDS Proxy com clusters do Aurora Serverless v2, mas não com clusters do Aurora Serverless v1.
-
O proxy do RDS deve estar na mesma nuvem privada virtual (VPC) que o banco de dados. O proxy não pode ser acessível publicamente, embora o banco de dados sim. Por exemplo, se você estiver fazendo protótipos do banco de dados em um host local, não poderá se conectar ao proxy, a menos que você configure os requisitos de rede necessários para permitir a conexão com o proxy. O motivo disso é que o host local está fora da VPC do proxy.
nota
Para clusters de bancos de dados Aurora, é possível habilitar o acesso entre VPCs. Para isso, crie um endpoint adicional para um proxy e especifique uma VPC, sub-redes e grupos de segurança diferente com esse endpoint. Para ter mais informações, consulte Acesso aos bancos de dados do Aurora e do RDS entre VPCs.
-
Não é possível usar o proxy do RDS com uma VPC cuja locação está definida como
dedicated
. -
Se você usar o RDS Proxy com um cluster de banco de dados do Aurora com a autenticação do IAM habilitada, confira a autenticação do usuário. Os usuários que se conectam por meio de um proxy devem ser autenticados por credenciais de login. Para obter detalhes sobre o suporte do Secrets Manager e do IAM no RDS Proxy, consulte Configurar credenciais de banco de dados no AWS Secrets Manager para RDS Proxy e Configurar políticas do AWS Identity and Access Management (IAM) para o RDS Proxy.
-
Você não pode usar o RDS Proxy com DNS personalizado ao usar a validação do nome de host SSL.
-
Cada proxy pode ser associado a um único cluster de banco de dados de destino. No entanto, é possível associar vários proxies ao mesmo cluster de banco de dados.
Qualquer instrução com um tamanho de texto maior do que 16 KB faz com que o proxy fixe a sessão à conexão atual.
-
Certas regiões têm restrições de zona de disponibilidade (AZ) a serem consideradas ao criar seu proxy. A região Leste dos EUA (Norte da Virgínia) não é compatível com o RDS Proxy na zona de
use1-az3
disponibilidade. A região Oeste dos EUA (Norte da Califórnia) não é compatível com o RDS Proxy na zona deusw1-az2
disponibilidade. Ao selecionar sub-redes ao criar seu proxy, certifique-se de não selecionar sub-redes nas zonas de disponibilidade mencionadas acima. -
No momento, o RDS Proxy não comporta nenhuma chave de contexto de condição global.
Para obter mais informações sobre chaves de contexto de condição global, consulte Chaves de contexto de condição global AWS no Guia do usuário do IAM.
-
Não é possível usar o RDS Proxy com o RDS Custom para SQL Server.
-
Para refletir qualquer modificação do grupo de parâmetros do banco de dados no proxy, é necessária uma reinicialização da instância, mesmo que você opte por aplicar as alterações imediatamente. Para parâmetros no nível do cluster, é necessária uma reinicialização em todo o cluster.
Para saber as limitações adicionais para cada mecanismo de banco de dados, consulte as seguintes seções:
Limitações adicionais do Aurora MySQL
As seguintes limitações adicionais se aplicam ao RDS Proxy com bancos de dados do Aurora MySQL:
O proxy do RDS não tem compatibilidade com os plug-ins de autenticação
sha256_password
ecaching_sha2_password
do MySQL. Esses plug-ins implementam hashes SHA-256 para senhas de contas de usuários.-
No momento, todos os proxies escutam na porta 3306 para o MySQL. Os proxies ainda se conectam ao banco de dados usando a porta especificada nas configurações do banco de dados.
-
Não é possível usar o proxy do RDS com bancos de dados MySQL autogerenciados em instâncias do EC2.
-
Você não pode usar o proxy do RDS com uma instância de banco de dados do RDS para MySQL que tenha o parâmetro
read_only
em seu grupo de parâmetros de banco de dados definido como1
. -
O proxy do RDS não é compatível com o modo compactado do MySQL. Por exemplo, ele não é compatível com a compactação usada pelas opções
--compress
ou-C
do comandomysql
. -
Conexões de banco de dados que processam um comando
GET DIAGNOSTIC
podem retornar informações imprecisas quando o RDS Proxy reutiliza a mesma conexão de banco de dados para executar outra consulta. Isso pode acontecer quando o RDS Proxy realiza multiplexação de conexões de banco de dados. -
Algumas funções e declarações SQL, como
SET LOCAL
, podem alterar o estado da conexão sem causar fixação. Para obter o comportamento de fixação mais atual, consulte Evitar a fixação de um RDS Proxy. -
Usar a função
ROW_COUNT()
em uma consulta com várias declarações não é aceito. -
O RDS Proxy não comporta aplicações clientes que não conseguem lidar com várias mensagens de resposta em um registro do TLS.
Importante
Para proxies associados a bancos de dados MySQL, não defina o parâmetro de configuração sql_auto_is_null
como true
ou um valor diferente de zero na consulta de inicialização. Isso pode causar um comportamento incorreto da aplicação.
Limitações adicionais do Aurora PostgreSQL
As seguintes limitações adicionais se aplicam ao RDS Proxy com bancos de dados do Aurora PostgreSQL:
O proxy do RDS não é compatível com os filtros de fixação de sessão do PostgreSQL.
-
Atualmente, todos os proxies escutam na porta 5432 para o PostgreSQL.
-
No PostgreSQL, o proxy do RDS atualmente não é compatível com o cancelamento de uma consulta de um cliente emitindo um
CancelRequest
. Esse é o caso, por exemplo, quando você cancela uma consulta de longa duração em uma sessão psql interativa usando Ctrl+C. -
Os resultados da função do PostgreSQL lastval
nem sempre são precisos. Como uma solução alternativa, use a instrução INSERT com a cláusula RETURNING
. Atualmente, o RDS Proxy não é compatível com o modo de replicação de streaming.
Importante
Para proxies existentes com bancos de dados PostgreSQL, se você modificar a autenticação do banco de dados para usar apenas SCRAM
, o proxy ficará indisponível por até 60 segundos. Para evitar o problema, faça o seguinte:
O banco de dados deve permitir tanto a autenticação
SCRAM
quanto aMD5
.Para usar somente a autenticação
SCRAM
, crie um proxy, migre o tráfego da aplicação para o novo proxy e exclua o proxy anteriormente associado ao banco de dados.