[TIL] RDS 연결 시의 DB Name에 대해 알게 된 점
by 달쿨개요
대학 3학년 겨울방학 때 백엔드 담당으로 참여했던 토이 프로젝트에 대해, 당시에 개강 전까지 구현을 마치고 바로 서버를 닫았는데 그러다 보니 시연 영상 등의 자료가 아무것도 남지 않았었다. 그래서 이번에 팀원분들과 상의해 다시 서버를 열게 되었고 그 서버 연결을 담당하게 되었다.
오류
EC2, RDS, S3를 생성해서 프로젝트에 연결하고 헬스 체크를 위한 간단한 API 요청까지 확인 후 배포를 완료했다. 그런데 DB에 접근하는 요청을 보내면 오류 메시지가 반환되었다. 왜 그런지 확인하기 위해 로그를 확인하니 SQLException: No database selected 라는 DB 연결 오류를 발견했다.
해당 오류는 위처럼 엔드포인트 뒤에 DB 명을 입력해야 하는데 하지 않아 발생한 오류였고 이를 해결하기 위해 RDS 생성 시에 작성한 인스턴스 명을 적었다. 당연히 그게 DB 명이라고 생각한 것이다. 그런데 아예 실행조차 되지 않게 되었다. 왜 DB 명이 잘못된 것인지 찾아보았다.
원인
RDS 생성 시에 인스턴스 이름을 설정하면 똑같이 DB 이름이 설정된다고 착각했는데 알고 보니 생성 시에 DB 이름을 입력하지 않으면 아예 이름이 설정되지 않았다.
RDS 구성을 확인하면 인스턴스 ID만 있고 DB 이름은 없는 것을 확인할 수 있었다. 알아보니 자동으로 이름으로 설정되는 엔진도 있지만 MySQL을 사용할 경우는 꼭 세팅을 해줘야 한다고 한다.
해결
해당 DB를 이름만 수정하는 것을 시도했으나 수정 기능을 찾지 못해 결국 기존 DB를 삭제하고 새로 생성했다.
생성할 때 DB 이름을 작성하면 이름이 제대로 설정되는 것을 확인할 수 있다. 해당 DB 이름으로 다시 설정을 입력하니 DB 접근이 필요한 요청도 제대로 응답이 이루어지는 것을 확인할 수 있었다.
느낀 점
배포한 다음에 오류를 발견하고, 오류를 수정하고 다시 빌드하고 배포하는 과정을 거쳐서 시간이 꽤 걸리게 되었는데 처음부터 DB 명을 잘 설정했더라면 빨리 끝낼 수 있었을 일이라서 아쉬웠다. 그래도 한번 경험 했으니 다음부터는 잊지 않을 것 같다. 사실 클라우드 수업 때 등 개인적으로 사용한 경험 이외에 협업 프로젝트에서 서버 연결을 맡아본 적이 없었는데 해보니 그동안 맡아주신 팀원분들께 다시 한번 고마움을 느꼈다. 아무튼 좋은 경험이였다!
'TIL' 카테고리의 다른 글
[TIL] 스레드와 스레드 안전성 (0) | 2024.11.26 |
---|---|
[TIL] S3 사진 외부에서 접근 안되는 문제 해결 (0) | 2024.11.25 |
[TIL] 자바 Garbage Collection 가비지 컬렉션 이해 (0) | 2024.11.21 |
[TIL] Spring Cloud 개념과 주요 기능 (0) | 2024.11.20 |
[TIL] JPA의 기본 키 생성 전략 (0) | 2024.11.19 |
블로그의 정보
note
달쿨