-
[RDS MariaDB] Error: Too many connections공부/AWS 2024. 9. 16. 15:44
회사 업무를 진행하던 중 dbeaver로 개발 DB에 접근 후 데이터를 가져오려는 시도 하려고 했더니, Too many connections라는 문구와 함께 접근이 되지 않았습니다.
또한, 해당 에러를 보고서 개발 서버를 확인했더니 실제 로그에도 Too many connections라는 에러를 확인할 수 있었습니다.
해당 에러를 해결하기 위해서 구글링을 하였고, 해당 방법으로 해결을 하여 공유하려고 합니다.
1. 1차적으로 DB의 Connections 수를 확인
- RDS에서 해당 DB 선택 후 카테고리에서 구성 선택 후 DB 인스턴스 파라미터 그룹 선택


- 보통 RDS를 생성할 때 Defaut 값으로 설정이 돼 있을 것입니다.
- 저의 경우 LEAST({DBInstanceClassMemory/25165760},12000) 값으로 설정된 상태였습니다.
- 이는 DB 인스턴스의 메모리를 기반으로 DB Connection의 숫자를 지정합니다. ( 저의 경우 42개의 커넥션을 허용합니다.)

2. DB Connections의 수를 증가시켜줍니다.
- 정확한 원인은 파악되지 않았지만, DB의 Connections수가 29로 제한이 됐고, 제가 사용가능한 Max Connections 수 보다 낮은 Connection 수를 사용하고 있었습니다.
- 자신이 사용하는 DB 스펙의 Max Connection 수를 확인할 수 있는 사이트입니다. ( AWS RDS Max Connection Limit )
- 상단에 편집을 선택하고 max_connections를 입력하여 원하는 값으로 변경합니다.
- 위 사이트에서 확인한 Max 수를 다 입력하시는 것보다는 적은 값을 입력하시는 것이 좋다고 생각합니다. 리소스를 최대로 사용하지 않는 부분이라고 생각합니다. ( 스프링부트 관련 글이지만 DB Connecitons 관련 유의사항 글 )
3. Timeout 설정 변경하기- Connections의 숫자만 증가하게 되는 경우 동일한 문제가 발생할 수 있습니다. DB와의 연결을 확인하고, 대기하는 시간 등을 설정하여 Connection 수를 정상적으로 관리할 수 있도록 해야 합니다.- wait_timeout 변경 -
클라이언트가 데이터베이스에 연결된 후, 쿼리를 실행하지 않거나 데이터를 요청하지 않는 경우 그 연결은 유휴 상태로 간주됩니다.
이 유휴 상태가 wait_timeout에 설정된 시간 동안 지속되면, 데이터베이스는 이 연결을 자동으로 종료합니다.- 요약: 한번 Connection이 된 후 다음 요청이 오기까지 연결을 유지하는 대기 시간
- 기본 설정은 28800초(8시간)로 설정돼 있습니다. - 해당 시간을 28800 -> 300으로 변경해 주었습니다.- RDS Timeout을 설정하는 부분이 다양하며, 해당 블로그에서 정리해 주셨기 때문에 후에 필요한 부분이 있다면 참고하면 좋을 거 같다.
특정 문제나 궁금한 점을 검색하며 찾아보고 작성한 글입니다. 혹시라도 부정확한 정보를 전달드릴 수 있습니다. 틀린 부분이 있으면 댓글을 남겨주세요.
Ref.
https://velog.io/@gkrry2723/AWS-RDS-too-many-connections-error-%ED%95%B4%EA%B2%B0%EB%B2%95
AWS RDS "too many connections" error 해결법
서버 개발을 하다 보면, 데이터베이스 측에서 라고 뜨며 서버가 제대로 실행되지 않는 경우가 생긴다.이럴 때 두 가지 해결법이 있다.두가지 모두 aws rds의 파라미터 그룹에서 값 조정을 통해 문
velog.io
https://velog.io/@ky0_hw/RDS-MySQL-Too-many-connections-%ED%95%B4%EA%B2%B0
[RDS MySQL] Too many connections 해결
rds의 too many connections 해결
velog.io
https://sysadminxpert.com/aws-rds-max-connections-limit/
AWS RDS Max Connections Limit As Per Instance Type | AWS
In this blog, we listed AWS RDS Max Connections Limit as per DB Instance Type. Too many DB connections error because of the max DB connection limit exceeded.
sysadminxpert.com
https://cofls6581.tistory.com/267
[커넥션 풀] 스프링부트 DB connection pool 설정 통해 서버 성능 향상 시키기 및 유의 사항 aka. HikariCP
진행 중인 프로젝트에서 서버 성능을 향상 시키기위해 커넥션 풀을 늘리는 작업을 진행했다. 관련해 공부한 내용을 정리해봤다. 서버 성능을 향상시킬 때 중요한 지표는 처리량과 응답시간이다
cofls6581.tistory.com
https://myinfrabox.tistory.com/192
[MySQL] Timeout 종류
MySQL에는 여러가지 Timeout 종류가 있습니다. 세션에서, 서버에서 혹은 접속시도중이나 기타 여러가지 상황에서의 Timout값이 존재합니다. 각 파라미터마다 특성이 있는데 이 관계를 잘 이해하고 설
myinfrabox.tistory.com
'공부 > AWS' 카테고리의 다른 글
NestJS + Bitbucket pipelines + EC2 + CodeDeploy (CI/CD) - 1 (0) 2025.01.14 AWS Session Manager 생성 (0) 2025.01.09 EC2 CPU 상승 알림 (SNS + Lambda + CloudWatch) (0) 2024.07.28 [Route53] Route 53에 도메인 등록 과정 및 도메인 취소 요청 (0) 2023.05.28 [CloudWatch] django log를 Cloudwatch에 기록하는 방법 (0) 2023.05.28