본문 바로가기

aws

[error] aws rds too many connections

aws rds를 사용하면서 프로젝트를 하는 도중, too many connections라는 에러를 발견하게 되었다.

전체적인 에러는 아래와 같다.

java.sql.SQLNonTransientConnectionException: Too many connections
at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.get(ExceptionMapper.java:234) ~[mariadb-java-client-2.3.0.jar:na]
at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.getException(ExceptionMapper.java:165) ~[mariadb-java-client-2.3.0.jar:na]
at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1199) ~[mariadb-java-client-2.3.0.jar:na]

 

에러 내용대로 RDS 크기에 비해 너무 많은 connection이 맺어져있어서 문제가 발생한 것이다.

 

이럴 때 connection을 할 수 있는 수를 늘리는 것보다 connection timeout을 하는 시간을 줄이는 게 합리적이다.

 

1. RDS에 접속한다.

 

2. 사용하는 데이터베이스를 클릭하여 구성 탭을 확인한다.

 

3. 구성 탭에 인스턴스 정보가 나와있는 것을 볼 수 있는데 해당 부분에서 파라미터 그룹을 수정해줄 것이다.

* 파라미터 그룹이 커넥션 수, 타임아웃 시간 등의 기본 정보들을 다룰 수 있는 그룹이다.

만약에, 해당 파라미터 그룹을 눌러서 이미 연결되어있는 다른 데이터베이스가 있다면 새로운 파라미터 그룹으로 연결한 다음에 새로운 파라미터 그룹으로 연결하는 것이 좋다.

왜냐하면 파라미터 그룹을 수정하는 순간, 그 파라미터 그룹에 연관된 모든 데이터베이스의 정보가 반영되어 수정되기 때문이다.

 

4. timeout이라고 검색한다.

 

5. wait_timeout을 수정해주면 된다.

28800이 기본 값이고, 8시간을 의미한다.

180으로 줄이고, 작은 프로젝트라면 최소 10까지 줄여도 무관하다.

 

6. 해결 끝!

SMALL

'aws' 카테고리의 다른 글

AWS S3 이미지 깨지는 현상  (0) 2023.08.11