Configurar conexões de banco de dados compartilhadas
O Amazon RDS Proxy é um proxy de banco de dados totalmente gerenciado e altamente disponível para o Amazon Relational Database Service (Amazon RDS), que torna os aplicativos mais escaláveis, mais resistentes a falhas do banco de dados e mais seguros.
Muitos aplicativos, incluindo aqueles criados em arquiteturas modernas sem servidor que usam o AWS Lambda, podem ter um grande número de conexões abertas com o servidor de banco de dados e podem abrir e fechar conexões de banco de dados a uma taxa alta, esgotando a memória do banco de dados e os recursos computacionais. O Amazon RDS Proxy permite que aplicativos agrupem e compartilhem conexões estabelecidas com o banco de dados, melhorando a eficiência e a escalabilidade do aplicativo. Com o RDS Proxy, os tempos de failover dos bancos de dados Aurora e RDS são reduzidos em até 66% e as credenciais, a autenticação e o acesso ao banco de dados podem ser gerenciados por meio da integração com o AWS Secrets Manager e o AWS Identity and Access Management (IAM).
O Amazon RDS Proxy pode ser habilitado para a maioria dos aplicativos sem alteração de código e não é preciso provisionar nem gerenciar nenhuma infraestrutura adicional. A definição de preço é simples e previsível: você paga por vCPU da instância do banco de dados para a qual o proxy está habilitado. O Amazon RDS Proxy oferece suporte ao Amazon RDS for MySQL e Amazon Aurora com compatibilidade com o MySQL.
Neste tutorial, você aprende como criar um Amazon RDS Proxy e conectá-lo a um banco de dados MySQL existente do Amazon RDS. Você usa o cliente MySQL em uma instância do Amazon EC2 para fazer uma conexão com o banco de dados MySQL do RDS através do RDS Proxy. Esses conceitos também podem ser aplicados à arquitetura sem servidor com o Amazon RDS.
Pré-requisitos
O Amazon RDS Proxy exige que você tenha um conjunto de recursos de rede, como:
- Um Amazon Virtual Private Cloud (Amazon VPC),
- duas ou mais sub-redes em diferentes zonas de disponibilidade,
- um banco de dados Amazon RDS e instâncias do Amazon EC2 na mesma VPC, e
- um gateway da Internet
Se você conectou-se com êxito às instâncias existentes do banco de dados MySQL do RDS, já possui os recursos de rede necessários configurados. Este tutorial requer que sua conta seja configurada com uma instância do EC2 e uma instância do RDS MySQL na mesma VPC. Se você não tiver essas instâncias configuradas, poderá seguir as instruções do RDS e EC2 para provisionar as instâncias na VPC padrão.
Sobre este tutorial | |
---|---|
Tempo | 10 minutos |
Custo | Menos de 1 USD |
Caso de uso | Bancos de dados |
Produtos | Amazon RDS, AWS Secrets Manager |
Público | Administradores de banco de dados, Desenvolvedores |
Nível | Intermediário |
Data da última atualização | 16 de março de 2020 |
Etapa 1: verificar grupos de segurança e conectividade do banco de dados
Para esta etapa, verifique as regras de entrada e saída de seus grupos de segurança e depois verifique a conectividade de uma instância do EC2 atual para uma instância existente do banco de dados do RDS.
1.1 – Abra o painel do Amazon VPC e faça login com as credenciais da sua conta da AWS. Se você não possui uma conta da AWS, crie uma nova conta da AWS para começar.
Você já tem uma conta? Faça login em sua conta
1.3 – No painel de navegação esquerdo, selecione Grupos de segurança.
Este tutorial usa dois grupos de segurança da VPC:
- EC2-sg: Este grupo de segurança está conectado à instância do EC2 e permite apenas a conexão SSH de entrada para a instância do EC2 e qualquer conectividade de saída.
- RDS-sg: Este grupo de segurança está conectado à instância do RDS e permite apenas a conexão TCP na porta 3306 da instância do EC2 (mostrada como EC2-sg) e qualquer conectividade de saída.
1.6 – Navegue até o console do RDS, escolha Bancos de dados e, em seguida, escolha sua instância existente do RDS MySQL DB. Na guia Conectividade e segurança, anote o Endpoint da instância.
1.7 – Navegue até o console do EC2, escolha Instâncias em execução e depois escolha a instância do EC2 na qual deseja testar a conectividade com a instância do RDS DB. Escolha Conectar-se.
1.9 – Na ILC da instância do EC2, teste a conectividade com a instância do RDS DB usando o seguinte comando:
mysql -h <RDS DB endpoint> -P 3306 -u <username> -p
Quando solicitado, insira sua senha e pressione Enter.
A ILC retorna uma mensagem mostrando que você se conectou com êxito à instância do RDS DB. Se você não conseguir conectar-se da instância do EC2 à instância do RDS, verifique se as duas estão na mesma VPC e se os grupos de segurança estão configurados corretamente.
Etapa 2: armazenar credenciais de banco de dados no AWS Secrets Manager
Para esta etapa, armazene suas credenciais de banco de dados no AWS Secrets Manager Cada conta de usuário do banco de dados que o proxy acessa requer um segredo correspondente no AWS Secrets Manager. O Amazon RDS Proxy usa esses segredos para manter um grupo de conexões com o banco de dados.
2.1 – Navegue até a seção Secrets Manager do Console de Gerenciamento da AWS e escolha Armazenar um novo segredo.
2.2 – Na caixa Selecionar tipo de segredo, escolha Credenciais de banco de dados RDS. Digite o nome de usuário e a senha usados na criação do banco de dados.
2.3 – Selecione a DefaultEncryptionKey e, em seguida, escolha o banco de dados RDS correspondente para o que o segredo acesse. Escolha Avançar.
2.4 – Na seção Nome e descrição do segredo, especifique um nome e uma descrição para o segredo, a fim de encontrá-lo depois mais facilmente. Escolha Avançar.
2.5 – O AWS Secrets Manager permite que você configure a mudança automática dos segredos. Essa é uma maneira fácil e inteligente de aumentar a segurança do aplicativo. Para obter mais informações, consulte Mudança de segredos no AWS Secrets Manager.
A configuração da mudança de segredos está fora do assunto deste tutorial. Por isso, você deve selecionar a opção Desabilitar mudança automática e, em seguida, Avançar.
Etapa 3: criar política e função do IAM
Nesta etapa, você cria a função e a política do AWS Identity and Access Management (IAM) que permitem ao RDS Proxy acessar os segredos que você criou no AWS Secrets Manager.
3.1 – Acesse o Painel do IAM no Console de Gerenciamento da AWS. No painel de navegação do painel do IAM, escolha Funções, e, em seguida, Criar função.
3.5 – Adicione a nova instrução de política a seguir, substituindo o valor secreto do ARN pelo exemplo listado abaixo. Escolha Revisar política.
(Esta declaração de política é descrita em Configurando políticas do AWS Identity and Access Management (IAM) no Guia do usuário do Amazon RDS).
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"secretsmanager:GetRandomPassword",
"secretsmanager:CreateSecret",
"secretsmanager:ListSecrets"
],
"Resource": "*"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "secretsmanager:*",
"Resource": [
"your_secret_ARN"
]
}
]
}
3.9 – Pule a seção de marcação e escolha Próximo: revisão.
Etapa 4: criar um RDS Proxy
Nesta etapa, você cria um RDS Proxy e configura o proxy para o grupo de segurança verificado na Etapa 1, o segredo criado na Etapa 2 e a função criada na Etapa 3.
4.1 – Acessar o console do RDS. No painel de navegação do RDS, escolha Proxies e, em seguida, Criar proxy.
4.3 – Na seção Configuração do grupo-alvo, para Banco de Dados, escolha a instância do RDS MySQL DB a ser associada a este Proxy RDS. (Esta instância do banco de dados RDS é a mesma instância com a qual você verificou a conectividade na Etapa 1). Para o Número máximo de conexões do grupo de conexões, mantenha o valor padrão 100.
4.4 – Na seção Conectividade, faça o seguinte:
- Em Segredo do Secrets Manager, escolha o segredo que você criou na Etapa 2.
- Em função do IAM, escolha a função que você criou na Etapa 3.
- Para a Autenticação IAM, mantenha a configuração padrão de Desativado. (Este tutorial usa credenciais de banco de dados para se conectar ao RDS Proxy, para que a autenticação do IAM não seja usada).
- Para Sub-redes, escolha no mínimo duas sub-redes em diferentes zonas de disponibilidade.
- Expanda a Configuração de conectividade adicional e, para o Grupo de segurança da VPC, escolha o grupo de segurança RDS-sg existente.
4.5 – Na seção Configuração avançada, mantenha a seleção padrão para Registro aprimorado. Marque a caixa de seleção contrato de serviço e escolha Criar proxy.

4.6 – Aguarde o status do proxy mudar de Criando para Disponível e, depois, selecione o proxy.

4.7 – Na seção Configurações do proxy, anote o Endpoint do proxy e confirme se todos os outros parâmetros estão corretos.

Etapa 5: conectar-se ao RDS DB através do RDS Proxy
Nesta etapa, você se conecta à instância do RDS DB a partir da sua instância do EC2. No entanto, em vez de conectar-se diretamente, a instância do EC2 conecta-se à instância do RDS DB através do seu Proxy RDS.
5.1 – Acessar o console do EC2. No painel de navegação do EC2, escolha Executando instâncias e depois selecione a instância do EC2 da qual você testou a conectividade na Etapa 1. Escolha Conectar-se.
5.3 – Na ILC da instância do EC2, use o seguinte comando para conectar-se à instância do RDS através do endpoint do RDS Proxy:
mysql -h <proxy endpoint> -P 3306 -u <username> -p
Quando solicitado, insira sua senha e pressione Enter.
A ILC retorna uma mensagem mostrando que você se conectou com êxito à instância do RDS DB através do endpoint do RDS Proxy.
Etapa 6: monitorar a conexão do Proxy RDS
Nesta etapa, use o Amazon CloudWatch para monitorar métricas de proxy, como conexões de clientes e bancos de dados.
6.1 – Acesse o CloudWatch console. No painel de navegação do CloudWatch, escolha Métricas e, em seguida, RDS, Métricas por proxy.
6.3 – Na lista de métricas, escolha ClientConnections e DatabaseConnections. Para a opção de exibição, escolha Número.
A métrica ClientConnections mostra o número atual de conexões do cliente com o RDS Proxy relatadas a cada minuto. A métrica DatabaseConnections mostra o número atual de conexões de banco de dados do RDS Proxy relatadas a cada minuto. Para detalhes sobre todas as métricas, consulte Monitoramento do RDS Proxy.
O gráfico resultante mostra que há uma conexão de cliente (EC2 para RDS Proxy) e uma conexão de banco de dados (RDS Proxy para a instância RDS DB). Esses dados confirmam a conexão feita na Etapa 5.
Etapa 7: limpeza
Nas próximas etapas, limpamos os recursos que criamos neste tutorial.
Excluir RDS Proxy
7.1 – Navegue até o console RDS e, no painel esquerdo, escolha Proxies.
7.2 – Escolha o proxy do tutorial.
7.3 – Selecione Ações e Excluir.
7.4 – Na caixa de diálogo, digite Exclua-me e selecione Excluir.
O status do proxy é alterado para Excluindo. Quando concluído, o proxy é removido da lista.
Excluir segredo
7.5 – Acesse o Console do Secrets Manager.
7.6 – Escolha o segredo do tutorial.
7.7 – Selecione Ações e depois Excluir segredo.
7.8 – Por questões de segurança, o Secrets Manager requer um período de espera até o segredo ser permanentemente excluído. Use o período padrão de 30 dias e escolha Programar exclusão.
Excluir política e função do IAM
7.9 – Acesse o console do IAM e, no painel de navegação, escolha Funções.
7.10 – Procure tutorial-role e marque a caixa de seleção ao lado da função.
7.11 – Na parte superior da página, escolha Excluir função.
7.12 – Na caixa de diálogo de confirmação, selecione Sim, excluir.
7.12 – No painel de navegação, selecione Políticas.
7.13 – Procure tutorial-policy e marque a caixa de seleção ao lado da política.
7.14 – Escolha Ações de política e depois Excluir.
7.15 – Confirme que deseja excluir a política e escolha Excluir.
Exclua outros recursos
Se você criou uma nova instância do EC2, nova instância do RDS e grupos de segurança correspondentes para este tutorial, exclua esses recursos também.
Parabéns
Você criou um Amazon RDS Proxy para agrupar e compartilhar conexões de banco de dados, monitorou as métricas de proxy e verificou a atividade de conexão do proxy.
Próximas etapas recomendadas
Saiba mais sobre os recursos do Amazon RDS
Saiba mais sobre os recursos do Amazon RDS no Guia do usuário do Amazon RDS.
Melhores práticas com o Amazon RDS
Saiba sobre as melhores práticas gerais e opções para trabalhar com o Amazon RDS.
Saiba mais sobre o Amazon RDS Proxy
Se você quiser saber mais, leia a postagem do blog Usando o Amazon RDS Proxy com o AWS Lambda e consulte Gerenciando conexões com o Amazon RDS Proxy.