Uso do Amazon RDS Proxy - Amazon Relational Database Service

Uso do Amazon RDS Proxy

Com o Amazon RDS Proxy, você pode permitir que suas aplicações agrupem e compartilhem conexões de banco de dados para melhorar sua capacidade de escala. O RDS Proxy 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.

nota

O RDS Proxy é totalmente compatível com MySQL e PostgreSQL. É possível habilitar o RDS Proxy para a maioria dos aplicativos sem alterações de código.

Com o RDS Proxy, é possível lidar com picos imprevisíveis no tráfego do banco de dados que, de outra forma, poderiam causar problemas devido a conexões com excesso de assinaturas ou à criação rápida de novas conexões. O RDS Proxy estabelece um grupo de conexões de banco de dados e reutiliza conexões nesse grupo, sem sobrecarregar a memória e a CPU com a abertura de uma nova conexão de banco de dados todas as vezes. Para proteger o banco de dados contra o excesso de comprometimento, é possível controlar o número de conexões de banco de dados criadas.

O RDS Proxy enfileira ou limita conexões de aplicativos que não podem ser atendidas imediatamente do grupo de conexões. Embora as latências possam aumentar, seu aplicativo 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 RDS Proxy rejeitará as conexões de aplicativos (ou seja, grandes quantidades de carga). Ao mesmo tempo, ele mantém uma performance previsível para a carga que pode ser atendida 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 RDS Proxy pode lidar com parte desse trabalho em nome do banco de dados.

Mecanismos com suporte e disponibilidade de regiões do RDS Proxy

O RDS Proxy oferece suporte às seguintes versões de mecanismos de banco de dados:

  • RDS for MySQL – MySQL 5.6, 5.7 e 8.0

  • RDS for PostgreSQL – versão 10.10 e versões secundárias superiores, versão 11.5 e versões secundárias superiores e versão 12.5 e versões secundárias superiores

O RDS Proxy está disponível nas seguintes regiões da AWS:

  • Leste dos EUA (Ohio)

  • US East (N. Virginia)

  • US West (N. California)

  • US West (Oregon)

  • Africa (Cape Town)

  • Asia Pacific (Hong Kong)

  • Asia Pacific (Mumbai)

  • Asia Pacific (Osaka)

  • Asia Pacific (Seoul)

  • Asia Pacific (Singapore)

  • Asia Pacific (Sydney)

  • Asia Pacific (Tokyo)

  • Canada (Central)

  • Europe (Frankfurt)

  • Europe (Ireland)

  • Europa (Londres)

  • Europe (Milan)

  • Europe (Paris)

  • Europe (Stockholm)

  • Middle East (Bahrain)

  • South America (São Paulo)

Cotas e limitações do RDS Proxy

As seguintes limitações aplicam-se ao RDS Proxy:

  • Você pode ter até 20 proxies para cada ID de conta de AWS. Se a aplicação exigir mais proxies, você poderá solicitar proxies adicionais abrindo um tíquete com a organização do 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.

  • Você pode criar, visualizar, modificar e excluir até 20 endpoints para cada proxy. Esses são endpoints além do endpoint padrão que é criado automaticamente para cada proxy.

  • 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 do dimensionamento de leitura do Aurora. Para obter mais informações, consulte Visão geral dos endpoints de proxy.

    Para instâncias de banco de dados RDS em configurações de replicação, você pode associar um proxy somente à instância de banco de dados do gravador, não a uma réplica de leitura.

  • Você não pode usar o RDS Proxy com clusters do Aurora Serverless.

  • Atualmente, não há suporte para o uso do RDS Proxy com clusters do Aurora que fazem parte de um banco de dados global Aurora.

  • O RDS Proxy 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 em um host local, não poderá se conectar ao RDS Proxy, a menos que você configure redes dedicadas. Esse é o caso porque seu host local está fora da VPC do proxy.

    nota

    Para clusters de banco de dados do 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 obter mais informações, consulte Acesso aos bancos de dados do Aurora e do RDS entre VPCs.

  • Não é possível usar o RDS Proxy com uma VPC cuja locação está definida como dedicated.

  • Se você usar o RDS Proxy com uma instância de banco de dados do RDS ou com um cluster de banco de dados do Aurora com a autenticação do IAM habilitada, todos os usuários que se conectam por meio de um proxy deverão ser autenticados por nomes de usuário e senhas. Consulte Configuração de políticas do AWS Identity and Access Management (IAM) para obter detalhes sobre o suporte do IAM no RDS Proxy.

  • Não é possível usar o RDS Proxy com DNS personalizado.

  • O RDS Proxy está disponível para as famílias de mecanismos MySQL e PostgreSQL.

  • Cada proxy pode ser associado a um único cluster ou instância de banco de dados de destino. No entanto, é possível associar vários proxies ao mesmo cluster ou instância de banco de dados.

As seguintes limitações do RDS Proxy aplicam-se ao MySQL:

  • O RDS Proxy não tem compatibilidade com os plugins de autenticação sha256_password e caching_sha2_password do MySQL. Esses plugins 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 RDS Proxy com bancos de dados MySQL autogerenciados em instâncias do EC2.

  • Você não pode usar o RDS Proxy com uma instância de banco de dados RDS for MySQL que tenha o parâmetro read_only em seu grupo de parâmetros de banco de dados definido como 1.

  • Os proxies não são compatíveis com o modo compactado do MySQL. Por exemplo, eles não são compatíveis com a compactação usada pelas opções --compress ou -C do comando mysql.

  • Algumas funções e instruções SQL 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.

As seguintes limitações do RDS Proxy aplicam-se ao PostgreSQL:

  • Atualmente, todos os proxies escutam na porta 5432 para o PostgreSQL.

  • No PostgreSQL, o RDS Proxy atualmente não oferece suporte ao 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.

  • O RDS Proxy não multiplexa conexões quando os drivers da aplicação cliente usam o protocolo de consulta estendida PostgreSQL.