Usar o Amazon RDS Proxy para o Aurora - Amazon Aurora

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.

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 Configuração de credenciais de banco de dados no AWS Secrets Manager e Configuração de políticas do AWS Identity and Access Management (IAM).

  • 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 de usw1-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.

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 e caching_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 como 1.

  • 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 comando mysql.

  • 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 Como evitar fixação.

  • 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 a MD5.

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