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초로 설정이 되었다.
워크벤치에서 확인을 해보면
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 |