Como trabalhar com endpoints do proxy do Amazon RDS - Amazon Relational Database Service

Como trabalhar com endpoints do proxy do Amazon RDS

A seguir, você aprenderá sobre endpoints para proxy do RDS e como usá-los. Ao usar endpoints de proxy, é possível utilizar os seguintes recursos:

  • Você pode usar vários endpoints com um proxy para monitorar e solucionar problemas de conexões de diferentes aplicações de forma independente.

  • Você pode usar um endpoint entre VPCs para permitir o acesso a bancos de dados em uma VPC a partir de recursos, como as instâncias do Amazon EC2 em uma VPC diferente.

Visão geral dos endpoints de proxy

Trabalhar com endpoints de proxy do RDS envolve os mesmos tipos de procedimentos usados com cluster de bancos de dados Aurora, endpoints de leitor e endpoints de instâncias RDS. Se você não tem familiaridade com os endpoints do RDS, encontre mais informações em Conexão a uma instância de banco de dados executando o mecanismo de banco de dados do MySQL e Conectar a uma instância de banco de dados executando o mecanismo de banco de dados do PostgreSQL.

Para um endpoint de proxy criado, você também pode associar o endpoint a uma Virtual Private Cloud (VPC) diferente daquela que o próprio proxy usa. Ao fazer isso, você pode se conectar ao proxy de uma VPC diferente, por exemplo, uma VPC usada por uma aplicação diferente dentro de sua organização.

Para obter informações sobre limites associados aos endpoints de proxy, consulte Limitações de endpoints de proxy.

Nos logs do RDS Proxy, cada entrada é prefixada com o nome do endpoint de proxy associado. Esse nome pode ser o que você especificou para um endpoint definido pelo usuário. Ou pode ser o nome especial default para o endpoint padrão de um proxy que realiza solicitações de leitura/gravação.

Cada endpoint de proxy tem seu próprio conjunto de métricas do CloudWatch. Você pode monitorar as métricas de todos os endpoints de um proxy. Você também pode monitorar métricas de um endpoint específico ou para todos os endpoints de leitura/gravação ou somente leitura de um proxy. Para obter mais informações, consulte Monitorar métricas do proxy do RDS com o Amazon CloudWatch.

Um endpoint de proxy usa o mesmo mecanismo de autenticação que o proxy associado. O proxy do RDS configura automaticamente permissões e autorizações para o endpoint definido pelo usuário, consistentes com as propriedades do proxy associado.

Limitações de endpoints de proxy

Os endpoints do RDS Proxy têm as seguintes limitações:

  • Cada proxy tem um endpoint padrão que você pode modificar, mas não criar ou excluir.

  • O número máximo de endpoints definidos pelo usuário para um proxy é 20. Assim, um proxy pode ter até 21 endpoints: o endpoint padrão e mais 20 que você cria.

  • Quando você associa endpoints adicionais a um proxy, o proxy do RDS determina automaticamente quais instâncias de banco de dados em seu cluster usar para cada endpoint. Você não pode escolher instâncias específicas da mesma maneira que escolhe endpoints personalizados do Aurora.

Endpoints de proxy para cluster de banco de dados Multi-AZ

Por padrão, o endpoint ao qual você se conecta quando usa o proxy do RDS com um cluster do Aurora tem capacidade de leitura/gravação. Como resultado, esse endpoint envia todas as solicitações à instância do gravador do cluster. Todas essas conexões são consideradas no valor max_connections da instância do gravador. Se o seu proxy estiver associado a um cluster de banco de dados do , você pode criar endpoints adicionais de leitura/gravação ou somente leitura para esse proxy.

Você pode usar um endpoint somente leitura com seu proxy para consultas somente leitura. Você faz isso da mesma forma que usa o endpoint do leitor para um cluster provisionado do Aurora. Fazer isso ajuda você a aproveitar o dimensionamento de leitura de um cluster do com uma ou mais instâncias de banco de dados do leitor. Você pode executar mais consultas simultâneas e fazer mais conexões simultâneas usando um endpoint somente leitura e adicionando mais instâncias de banco de dados do leitor ao cluster do , conforme necessário. Esses endpoints de leitor ajudam a melhorar a escalabilidade de leitura de suas aplicações com uso intensivo de consultas. Os endpoints de leitor também ajudam a melhorar a disponibilidade de suas conexões, se uma instância de banco de dados do leitor no cluster ficar indisponível.

Endpoints de leitor para clusters de banco de dados Multi-AZ

Com o RDS Proxy, você pode criar e usar endpoints de leitor. No entanto, esses endpoints funcionam apenas para proxies associados a clusters de banco de dados do . Se você usa a CLI ou a API do RDS, pode ver o atributo TargetRole com um valor READ_ONLY. É possível aproveitar esses proxies alterando o destino de um proxy de uma instância de banco de dados do RDS para um cluster de banco de dados multi-AZ.

Você pode criar e se conectar a endpoints somente leitura chamados endpoints de leitor quando usa o proxy do RDS com clusters do Aurora.

Como os endpoints de leitor ajudam a disponibilidade das aplicações

Em alguns casos, uma ou mais instâncias de leitor no cluster podem ficar indisponíveis. Nesses casos, as conexões que usam um endpoint leitor de um proxy de banco de dados podem se recuperar mais rapidamente do que aquelas que usam o endpoint leitor do Aurora. O proxy do RDS roteia conexões somente para as instâncias de leitor disponíveis no cluster. Não há um atraso causado pelo cache de DNS quando uma instância fica indisponível.

Se a conexão for multiplexada, o proxy do RDS direciona as consultas subsequentes para uma instância de banco de dados de leitor diferente, sem qualquer interrupção na aplicação. Se uma instância do leitor estiver em um estado indisponível, todas as conexões do cliente com esse endpoint da instância serão fechadas.

Se a conexão estiver fixada, a próxima consulta na conexão retornará um erro. Porém, a aplicação pode se reconectar imediatamente ao mesmo endpoint de proxy. O proxy do RDS roteia a conexão para uma instância de banco de dados de leitor diferente que esteja no estado available. Quando você se reconecta manualmente, o proxy do RDS não verifica o atraso de replicação entre as instâncias antigas e novas do leitor.

Se o seu cluster de banco de dados Multi-AZ não tiver nenhuma instância de leitor disponível, o RDS Proxy tentará se conectar a um endpoint de leitor quando ele estiver disponível. Se nenhuma instância de leitor ficar disponível dentro do tempo limite de empréstimo da conexão, a tentativa de conexão falhará. Se uma instância de leitor ficar disponível, a tentativa de conexão será bem-sucedida.

Como os endpoints de leitor contribuem para a escalabilidade da consulta

Os endpoints de leitor para um proxy ajudam no dimensionamento da consulta do das seguintes maneiras:

  • Onde for prático, o proxy do RDS usa a mesma instância de banco de dados de leitor para todos os problemas de consultas usando uma conexão de endpoint de leitor específica. Dessa forma, um conjunto de consultas relacionadas nas mesmas tabelas pode aproveitar o cache, a otimização do plano e assim por diante em uma instância de banco de dados específica.

  • Se uma instância de banco de dados de leitor ficar indisponível, o efeito sobre a aplicação dependerá se a sessão for multiplexada ou fixada. Se a sessão for multiplexada, o proxy do RDS roteia todas as consultas subsequentes para uma instância de banco de dados de leitor diferente sem qualquer ação de sua parte. Se a sessão estiver fixada, a aplicação receberá um erro e deverá se reconectar. Você pode se reconectar ao endpoint de leitor imediatamente e o proxy do RDS roteará a conexão para uma instância de banco de dados de leitor disponível. Para obter mais informações sobre multiplexação e fixação para sessões de proxy, consulte Visão geral dos conceitos do RDS Proxy.

Acesso aos bancos de dados do Aurora e do RDS entre VPCs

Por padrão, os componentes da pilha de tecnologia do RDS e do Aurora estão todos na mesma Amazon VPC. Por exemplo, suponha que uma aplicação em execução em uma instância do Amazon EC2 se conecta a uma instância de banco de dados do Amazon RDS ou cluster de banco de dados doAurora. Nesse caso, o servidor da aplicação e o banco de dados devem estar dentro da mesma VPC.

Com o RDS Proxy, é possível configurar o acesso a uma instância de banco de dados do Amazon RDS em uma VPC a partir de recursos em outra VPC, como instâncias do EC2. Por exemplo, sua organização pode ter várias aplicações que acessam os mesmos recursos de banco de dados. Cada aplicação pode estar em sua própria VPC.

Para habilitar o acesso entre VPCs, crie um novo endpoint para o proxy. O proxy em si reside na mesma VPC que o cluster de bancos de dados Aurora ou instância do RDS. No entanto, o endpoint entre VPCs reside na outra VPC, juntamente com os outros recursos, como as instâncias do EC2. O endpoint entre VPC está associado a sub-redes e grupos de segurança da mesma VPC que o EC2 e outros recursos. Essas associações permitem que você se conecte ao endpoint a partir das aplicações que, de outra forma, não podem acessar o banco de dados devido às restrições da VPC.

As etapas a seguir explicam como criar e acessar um endpoint entre VPCs com o RDS Proxy:

  1. Crie duas VPCs ou escolha duas VPCs para as quais você já usa para trabalhar com o Aurora e o RDS. Cada VPC deve ter os próprios recursos de rede associados, como um gateway da Internet, tabelas de roteamento, sub-redes e grupos de segurança. Se você tiver apenas uma VPC, consulte Conceitos básicos do Amazon RDS para ver as etapas de configuração de outra VPC, a fim de usar o RDS com êxito. Também é possível examinar a VPC existente no console do Amazon EC2 para ver quais tipos de recursos podem ser conectados.

  2. Crie um proxy de banco de dados associado ao cluster de bancos de dados Aurora ou instância do RDS aos quais você deseja se conectar. Siga o procedimento em Criar um RDS Proxy.

  3. Na página Details (Detalhes) do seu proxy no console do RDS, na seção Proxy endpoints (Endpoints de proxy), escolha Create endpoint (Criar endpoint). Siga o procedimento em Criação de um endpoint de proxy.

  4. Escolha se deseja criar o endpoint entre VPCs como leitura/gravação ou somente leitura.

  5. Em vez de aceitar o padrão da mesma VPC que o cluster de bancos de dados Aurora ou instância do RDS, escolha uma VPC diferente. Essa VPC deve estar na mesma região da AWS que a VPC, onde o proxy reside.

  6. Agora, em vez de aceitar os padrões para sub-redes e grupos de segurança da mesma VPC que o cluster de bancos de dados Aurora ou instância do RDS, faça novas seleções. Faça-as com base nas sub-redes e grupos de segurança da VPC que você escolheu.

  7. Você não precisa alterar nenhuma das configurações para os segredos do Secrets Manager. As mesmas credenciais funcionam para todos os endpoints de proxy, independentemente da VPC em que cada endpoint esteja.

  8. Aguarde até que o novo endpoint alcance o estado Available (Disponível).

  9. Anote o nome completo do endpoint. Esse é o valor que termina em Region_name.rds.amazonaws.com, que você fornece como parte da string de conexão para sua aplicação de banco de dados.

  10. Acesse o novo endpoint por meio de um recurso na mesma VPC que o endpoint. Uma maneira simples de testar esse processo é criar uma nova instância do EC2 nessa VPC. Depois, faça login na instância do EC2 e execute os comandos mysql ou psql para se conectar usando o valor do endpoint na string de conexão.