AWS/etc

aws lightsail database // wait_timeout 설정.

부엉이사장 2023. 1. 12. 06:10

lightsail 자체가 너무 간략화와 쉬운 이용방법에 초점을 맞춰서

데이터베이스설정에 어려움을 겪었다.

 

나는 wait_timeout 값을 변경하고싶었는데 워크벤치에서 쿼리문을 돌리니 

1227에러가 떴었다.

 

때문에 aws lightsail 데이터베이스에 커맨드로 직접 접근하는 방법을 찾았다.

 

https://jacobowl.tistory.com/96

위 링크는 awscli를 설치하여 lightsail 데이터베이스 파라미터에 접근을 하는것까지 썼다.

 

 

이후로 파라미터 설정에 parameter name이 wait_timeout인것을 찾아보면 

이렇게 기본설정이 되어있다.

 

wait_timeout값을 워크벤치에서 찾아보니 기본값 28800인가 8시간으로 설정이 되어있었는데

이 파라미터 객체에 없어서 조금 헷갈렸다.

 

 

아래 명령어를 치자.

aws lightsail update-relational-database-parameters --relational-database-name DatabaseName --parameters "parameterName=ParameterName,parameterValue=NewParameterValue,applyMethod=ApplyMethod"

여기서 파라미터이름을 wait_timeout,

파라미터 값에 원하는 timeout값. (초단위)

apply method는 immediate로 했다.

 

 

난 30초로 설정을 했고 위 명령어를 친후 다시 파라미터 설정을 열어보자.

 

 

aws lightsail get-relational-database-parameters --relational-database-name DatabaseName

파라미터 값 키값이 새로생기면서 30초로 설정이 되었다.

 

워크벤치에서 확인을 해보면

 

 

sql 쿼리문

 

타임아웃이 잘 적용되었다.

global이 아닌 타임아웃을 봤는데 여전히 28800초라서 작동이 안되나 했었는데

실제로 커넥션을 하나 생성하고 30초를 기다리니 sleep세션이 정리되더라.

 

 

 

 

++추가

이거 뻘짓이었음.. 

문제점은 서버가 db에 접근할때 커넥션수가 max까지 생성되어서 

max connection에 도달하면 db접근에서 too many connection에러가 뜨면서

먹통이되는게 문제였는데...

 

난 이미 커넥션풀을 사용하고 있었고 커넥션풀을 사용하면 wait timeout을 수정하는건

정말 유저가 많아서 커넥션이 오링나는경우가 아니면 필요가 없었다.

 

그러나 나는 왜 계속 커넥션 수가 불어나서 직접 db의 wait timeout을 조절해야 했을까?

그 이유는

 

get connetion함수 then에서 또 get connection을 해서였다..

어쩐지 동작은 하는데 커넥션이 졸라많이뜨더라..

 

암튼 수정하니 정상작동하였다.

 

그래도 하나 배운셈..!

 

 

'AWS > etc' 카테고리의 다른 글

filezilla와 aws(light sail) 인스턴스 연결  (0) 2023.03.06
aws awscli 설치 / lightsail db 파라미터 접근  (0) 2023.01.12
aws 강의 시작/ 1,2,3강  (2) 2022.11.21
aws lightsail/ mysql db 연결  (0) 2022.11.07
tlqkf  (0) 2022.11.06