Ir para o conteúdo

Como faço para monitorar os grupos de conexões do Amazon RDS Proxy e otimizar as conexões do banco de dados?

6 minuto de leitura
0

Quero monitorar os grupos de conexão de proxy do Amazon Relational Database Services (Amazon RDS) e otimizar minhas conexões de banco de dados.

Resolução

Monitorar as métricas do RDS Proxy e do banco de dados de RDS de destino

Conclua as etapas a seguir:

  1. Abra o console do Amazon CloudWatch.
  2. No painel de navegação, escolha Métricas e, em seguida, Todas as métricas.
  3. Na guia Procurar, escolha RDS e, em seguida, Métricas por proxy.
  4. Pesquise as seguintes métricas:
    ClientConnections para o número de conexões de entrada da aplicação.
    MaxDatabaseConnectionsAllowed para o número máximo de conexões de banco de dados que o RDS Proxy permite.
    DatabaseConnections para o número atual de conexões que o RDS Proxy estabelece com o banco de dados de destino.
  5. Na guia Procurar, escolha RDS e, em seguida, DBInstanceIdentifier.
  6. Pesquise a métrica DatabaseConnections para obter o número total de conexões que o RDS Proxy estabelece com o banco de dados de destino e todas as outras conexões com o banco de dados de destino.

É uma prática recomendada analisar essas métricas com uma granularidade de 1 minuto e usar a estatística Sum para obter mais detalhes sobre os padrões de uso da conexão.

Analisar eventos de log do RDS Proxy

Modifique o RDS Proxy para ativar o Registro em log avançado para que seja possível obter detalhes avançados, como as conexões que estão abrindo ou fechando. Também é possível obter detalhes de operações internas, como fixação e empréstimo.

Observação: o registro em log avançado é desativado automaticamente após 24 horas.

Para analisar os eventos de log do RDS Proxy, conclua as seguintes etapas:

  1. Abra o console do CloudWatch.
  2. No painel de navegação, clique em Logs e, depois, selecione Grupos de logs.
  3. Selecione o grupo de logs do seu proxy /aws/rds/proxy/.
  4. Na guia Fluxos de logs, selecione o fluxo de log para ver os eventos de log.

Executar consultas do CloudWatch Logs Insights para detectar anomalias

Para acessar o editor de consultas no CloudWatch Logs Insights, conclua as seguintes etapas:

  1. Abra o console do CloudWatch.
  2. No painel de navegação, selecione Logs e, depois, clique em Logs Insights.

Use o editor de consultas para executar as consultas a seguir. Em cada consulta, substitua prx-000##### pelo ID do proxy.

Para consultar erros ou avisos, execute a seguinte consulta:

fields @timestamp, @message  
| sort @timestamp asc  
| filter @logStream like 'prx-000#####'  
| filter @message like / ERROR: / or @message like / WARN: /

Para determinar por que a conexão do cliente foi encerrada, execute a seguinte consulta:

fields @message  
| sort @timestamp asc  
| filter @logStream like 'prx-000#####'  
| filter @message like /The client connection closed/ and @message like /CUSTOMER/  
| parse 'Reason: *' as reason  
| stats count() as reasonCount by reason  
| sort by reasonCount desc  
| limit 20

Para determinar por que a conexão com o banco de dados foi fechada, execute a seguinte consulta:

fields @message  
| sort @timestamp asc  
| filter @logStream like 'prx-000xxxxx'  
| filter @message like /The database connection closed/ and @message like /CUSTOMER/  
| parse 'Reason: *' as reason  
| stats count() as reasonCount by reason  
| sort by reasonCount desc  
| limit 20

Modificar as configurações de conexão do RDS Proxy

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

MaxConnectionsPercent

Se seu banco de dados atingiu a configuração máxima de conexão, você receberá a seguinte mensagem de erro:

"The database connection closed. Reason: The pool reached the maximum connection setting, and a connection with different properties was required."

Para resolver esse problema, monitore as métricas do CloudWatch DatabaseConnections e MaxDatabaseConnectionsAllowed. Se DatabaseConnections estiver atingindo MaxDatabaseConnectionsAllowed, limite o tráfego de entrada. Ou execute o comando modify-db-proxy-target-group da AWS CLI ou a operação da API ModifyDBProxyTargetGroup para aumentar a configuração MaxConnectionsPercent. Defina MaxConnectionsPercent em, pelo menos, 30% acima do seu uso máximo monitorado recente.

MaxIdleConnectionsPercent

Se houver muitas conexões inativas no grupo, você receberá a seguinte mensagem:

"The database connection closed. Reason: There were too many idle connections in the connection pool. A new slot in the connection pool is now available."

Para resolver esse problema, monitore as métricas do CloudWatch ClientConnections e DatabaseConnections. Se ClientConnections for continuamente menor que DatabaseConnections, haverá conexões ociosas com seu banco de dados de destino. Por padrão, a configuração MaxIdleConnectionsPercent é 50% do valor de MaxConnectionsPercent. Para modificar MaxIdleConnectionsPercent, execute o comando modify-db-proxy-target-group da AWS CLI ou a operação da API ModifyDBProxyTargetGroup. Mantenha aberta uma alta porcentagem de conexões de banco de dados ociosas. Use valores mais baixos para workloads consistentes para evitar o uso inativo de recursos.

IdleClientTimeout

Se seu banco de dados exceder o tempo limite de inatividade da conexão do cliente, você receberá a seguinte mensagem:

"The client connection closed. Reason: The idle timeout was exceeded."

Para remover conexões inativas, reduza IdleClientTimeout. Se seu workload estabelecer conexões frequentes com o proxy, aumente IdleClientTimeout para que você não precise estabelecer conexões. Para modificar IdleClientTimeout, execute o comando modify-db-proxy da AWS CLI ou a operação da API ModifyDBProxy.

ConnectionBorrowTimeout

Se você receber um erro de tempo limite, o RDS Proxy não poderá estabelecer uma conexão com o banco de dados.

Para definir a configuração ConnectionBorrowTimeout como um valor menor que o valor do tempo limite de conexão, execute o comando modify-db-proxy-target-group da AWS CLI ou a operação da API ModifyDBProxyTargetGroup.

Encerrar manualmente as conexões abertas

Se uma conexão de banco de dados ficar inativa por mais de 24 horas, você receberá a seguinte mensagem de erro:

"The database connection closed. Reason: The idle connection exceeded the maximum connection duration."

Não é possível modificar a duração máxima de uma conexão de banco de dados ociosa no RDS Proxy. Em vez disso, é uma prática recomendada encerrar manualmente as conexões que a aplicação não precisa reutilizar.

Informações relacionadas

Conceitos e terminologia do RDS Proxy

Monitorar métricas do proxy do RDS com o Amazon CloudWatch