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.

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.

Criação de um endpoint de proxy

Para criar um endpoint de proxy
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação, escolha Proxies.

  3. Clique no nome do proxy para o qual você deseja criar um novo endpoint.

    A página de detalhes desse proxy é exibida.

  4. Na seção Proxy endpoints (Endpoints do proxy), escolha Create proxy endpoint (Criar endpoint proxy).

    A janela Create proxy endpoint (Criar endpoint proxy) aparece.

  5. em Proxy endpoint name (Nome do endpoint de proxy), insira um nome descritivo de sua escolha.

  6. Em Target role (Função de destino), escolha se deseja criar o endpoint como leitura/gravação ou somente leitura.

    As conexões que usam endpoints de leitura/gravação podem executar qualquer tipo de operação: declarações DDL (linguagem de definição de dados), declarações DML (linguagem de manipulação de dados) e consultas. Esses endpoints sempre se conectam à instância principal do cluster do Aurora. Você pode usar endpoints de leitura/gravação para operações gerais de banco de dados quando você usa apenas um único endpoint em sua aplicação. Você também pode usar endpoints de leitura/gravação para operações administrativas, aplicações de processamento de transações on-line (OLTP) e trabalhos de extração de transformação de carga (ETL).

    As conexões que usam um endpoint somente leitura só podem executar consultas. Quando há várias instâncias de leitor no cluster do Aurora, o proxy do RDS pode usar uma instância de leitor diferente para cada conexão com o endpoint. Dessa forma, uma aplicação com uso intensivo de consultas pode tirar proveito da capacidade de clustering do Aurora. Você pode acrescentar mais capacidade de consulta ao cluster adicionando mais instâncias de banco de dados de leitor. Essas conexões somente leitura não impõem nenhuma sobrecarga na instância primária do cluster. Dessa forma, suas consultas de relatórios e análises não retardam as operações de gravação de suas aplicações OLTP. O RDS Proxy pode usar uma das instâncias de leitor para cada conexão com o endpoint. Dessa forma, uma aplicação com uso intensivo de consultas pode tirar proveito da capacidade de clustering do Aurora. Essas conexões somente leitura não impõem nenhuma sobrecarga na instância primária do cluster. Dessa forma, suas consultas de relatórios e análises não retardam as operações de gravação de suas aplicações OLTP.

  7. Em Nuvem privada virtual (VPC), selecione o padrão para acessar o endpoint das mesmas instâncias do EC2 ou outros recursos que normalmente são usados para acessar o proxy ou o banco de dados associado. Para configurar o acesso entre VPC para esse proxy, selecione uma VPC diferente da padrão. Para obter mais informações sobre acesso entre VPCs, consulte Acesso aos bancos de dados do Aurora e do RDS entre VPCs.

  8. Em Subnets (Sub-redes), o proxy do RDS preenche as mesmas sub-redes que o proxy associado por padrão. Para restringir o acesso ao endpoint para que apenas uma parte do intervalo de endereços da VPC possa se conectar a ele, remova uma ou mais sub-redes.

  9. Em VPC grupo de segurança (Grupo de segurança da VPC), você pode selecionar um grupo de segurança existente ou criar outro. O proxy do RDS preenche os mesmos grupos de segurança que o proxy associado por padrão. Se as regras de entrada e saída para o proxy forem apropriadas para esse endpoint, deixe a escolha padrão.

    Se você optar por criar um novo grupo de segurança, especifique um nome para o grupo de segurança nessa página. Depois, edite as configurações do grupo de segurança no console do EC2.

  10. Escolha Create proxy endpoint (Criar endpoint de proxy).

Para criar um endpoint de proxy, use o comando da AWS CLI create-db-proxy-endpoint.

Inclua os seguintes parâmetros necessários:

  • --db-proxy-name value

  • --db-proxy-endpoint-name value

  • --vpc-subnet-ids list_of_ids. Separe os IDs de sub-rede com espaços. Você não especifica o ID da própria VPC.

Você também pode incluir os seguintes parâmetros opcionais:

  • --target-role { READ_WRITE | READ_ONLY }. Por padrão, esse parâmetro é READ_WRITE. O valor só tem um efeito sobre os clusters do Aurora provisionados que contêm uma ou mais instâncias de banco de dados do leitor. Quando o proxy está associado a um cluster de banco de dados multi-AZ que contém apenas uma instância de banco de dados de gravador, não é possível especificar READ_ONLY. Para ter mais informações sobre o uso pretendido de endpoints somente leitura com clusters de banco de dados multi-AZ, consulte Endpoints de leitor para clusters de banco de dados Multi-AZ.

  • --vpc-security-group-ids value. Separe os IDs do grupo de segurança com espaços. Se você omitir esse parâmetro, o proxy do RDS usará o grupo de segurança padrão para a VPC. O proxy do RDS determina a VPC com base nos IDs de sub-rede que você especificar para o parâmetro --vpc-subnet-ids.

exemplo

O exemplo a seguir cria um endpoint de proxy chamado my-endpoint.

Para Linux, macOS ou Unix:

aws rds create-db-proxy-endpoint \ --db-proxy-name my-proxy \ --db-proxy-endpoint-name my-endpoint \ --vpc-subnet-ids subnet_id subnet_id subnet_id ... \ --target-role READ_ONLY \ --vpc-security-group-ids security_group_id ]

Para Windows:

aws rds create-db-proxy-endpoint ^ --db-proxy-name my-proxy ^ --db-proxy-endpoint-name my-endpoint ^ --vpc-subnet-ids subnet_id_1 subnet_id_2 subnet_id_3 ... ^ --target-role READ_ONLY ^ --vpc-security-group-ids security_group_id

Para criar um endpoint de proxy, use a ação da API do RDS CreateDBProxyEndpoint.

Visualização dos endpoints de proxy

Para visualizar os detalhes de um endpoint de proxy
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação, escolha Proxies.

  3. Na lista, escolha o proxy cujo endpoint você deseja visualizar. Clique no nome do proxy para visualizar sua página de detalhes.

  4. Na seção Proxy endpoints (Endpoints de proxy), escolha o endpoint que você deseja visualizar. Clique no nome dele para ver a página de detalhes.

  5. Examine os parâmetros cujos valores lhe interessam. Você pode verificar propriedades como as seguintes:

    • Se o endpoint é leitura/gravação ou somente leitura.

    • O endereço do endpoint que você usa em uma string de conexão de banco de dados.

    • A VPC, as sub-redes e os grupos de segurança associados a um endpoint.

Para visualizar um ou mais endpoints de proxy, use o comando da AWS CLI describe-db-proxy-endpoints.

Você pode incluir os seguintes parâmetros opcionais:

  • --db-proxy-endpoint-name

  • --db-proxy-name

O exemplo a seguir descreve o endpoint de proxy my-endpoint.

exemplo

Para Linux, macOS ou Unix:

aws rds describe-db-proxy-endpoints \ --db-proxy-endpoint-name my-endpoint

Para Windows:

aws rds describe-db-proxy-endpoints ^ --db-proxy-endpoint-name my-endpoint

Para descrever um ou mais endpoints de proxy, use a operação da API do RDS DescribeDBProxyEndpoints.

Modificação de um endpoint de proxy

Para modificar um ou mais endpoints de proxy
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação, escolha Proxies.

  3. Na lista, escolha o proxy cujo endpoint você deseja modificar. Clique no nome do proxy para visualizar

  4. Em Proxy endpoints (Endpoints de proxy), escolha o endpoint que você deseja modificar. Você pode selecioná-lo na lista ou clicar no nome dele para visualizar a página de detalhes.

  5. Na página de detalhes do proxy, na seção Proxy endpoints (Endpoints de proxy), escolha Edit (Editar). Ou na página de detalhes do endpoint de proxy, em Ações, selecione Editar.

  6. Altere os valores dos parâmetros que você deseja modificar.

  7. Escolha Save changes (Salvar alterações).

Para modificar um endpoint de proxy, use o comando da AWS CLI modify-db-proxy-endpoint com os seguintes parâmetros obrigatórios:

  • --db-proxy-endpoint-name

Especifique alterações nas propriedades do endpoint usando um ou mais dos seguintes parâmetros:

  • --new-db-proxy-endpoint-name

  • --vpc-security-group-ids. Separe os IDs do grupo de segurança com espaços.

O exemplo a seguir renomeia o endpoint de proxy my-endpoint para new-endpoint-name.

exemplo

Para Linux, macOS ou Unix:

aws rds modify-db-proxy-endpoint \ --db-proxy-endpoint-name my-endpoint \ --new-db-proxy-endpoint-name new-endpoint-name

Para Windows:

aws rds modify-db-proxy-endpoint ^ --db-proxy-endpoint-name my-endpoint ^ --new-db-proxy-endpoint-name new-endpoint-name

Para modificar um endpoint de proxy, use a operação da API do RDS ModifyDBProxyEndpoint.

Exclusão de um endpoint de proxy

Você pode excluir um endpoint para o proxy usando o console, conforme descrito a seguir.

nota

Não é possível excluir o endpoint de proxy padrão que o RDS Proxy cria automaticamente para cada proxy.

Quando você exclui um proxy, o proxy do RDS exclui automaticamente todos os endpoints associados.

Para excluir um endpoint de proxy usando o AWS Management Console
  1. No painel de navegação, escolha Proxies.

  2. Na lista, escolha o proxy cujo endpoint você deseja endpoint. Clique no nome do proxy para visualizar sua página de detalhes.

  3. Em Proxy endpoints (Endpoints de proxy), escolha o endpoint que você deseja excluir. Você pode selecionar um ou mais endpoints na lista ou clicar no nome de um único endpoint para visualizar a página de detalhes.

  4. Na página de detalhes do proxy, na seção Proxy endpoints (Endpoints de proxy), escolha Delete (Excluir). Ou na página de detalhes do endpoint de proxy, em Ações, selecione Excluir.

Para excluir um endpoint de proxy, execute o comando delete-db-proxy-endpoint com os seguintes parâmetros obrigatórios:

  • --db-proxy-endpoint-name

O comando a seguir exclui o endpoint de proxy chamado my-endpoint.

Para Linux, macOS ou Unix:

aws rds delete-db-proxy-endpoint \ --db-proxy-endpoint-name my-endpoint

Para Windows:

aws rds delete-db-proxy-endpoint ^ --db-proxy-endpoint-name my-endpoint

Para excluir um endpoint deproxy com a API do RDS, execute a operação DeleteDBProxyEndpoint. Especifique o nome do endpoint de proxy para o parâmetro DBProxyEndpointName.

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.