시간이 없기에 무지성으로 에러를 수정하는 방향으로 가겠습니다. 원인은 대략적으로만 파악합니다.
마주한 에러들
- 데이터 베이스 방언 미설정으로 인한 예외
- AWS RDS를 이용했을 때 Time out 에러가 나는 경우
- application.properties 가 gitignore 대상인 경우
데이터 베이스 방언 미설정으로 인한 예외
예외가 터진 곳으로 가보자. DialectFactoryImpl 100줄
예외 메시지를 보면 대략적으로 hibernate.dialect을 설정하지 않았다는 소리같다.
application.properties 에 아래 코드를 추가하자.
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
시간이 지나고 MySQL이 버전업이 되면 변경될 수 있으니 참고하면 좋을 것 같습니다.
AWS RDS를 이용했을 때 Time out 에러가 나는 경우

소켓이 타임 아웃날 수 있는 경우는 많겠지만 예외를 추측하면 대략적으로 DB를 연결하는데 타임아웃이 발생했다는 것 같다.
인프런 - 서버 배포 오류 Q&A 의 답변과 링크들을 확인하면 해결책을 찾을 수 있다.
해결책, AWS RDS 해당 인스턴스에 들어가서 인바운드 규칙에 두 가지 규칙을 추가하면 된다.
RDS에서 모든 접근을 허용해서 해결했다. 현업에서는 타겟을 해준다고 합니다.
인바운드/아웃바운드란?
인바운드와 아웃바운드는 트래픽이 네트워크간에 이동하는 방향을 말합니다.
인바운드란 내 서버로 들어오는 트래픽에 대한 포트
아웃바운드란 내 서버가 호출할 때 나가는 포트
다시 말해 위와 같이 인바운드 규칙을 허용하면 어떤 곳에서라도 내 서버에 들어오는 트래픽을 다 허용하겠다는 의미입니다.
application.properties 가 gitignore 대상인 경우
원격 repo에 application.properties가 없는 상황인데요. 그래서 배포 시 오류가 발생하는데 이 문제를 해결하는 방법 중 하나는 setting - Secrets and variables 를 활용하는 방법입니다.
1. New repository secret 클릭
2. Name/Secret 설정
Name은 자유롭게 구성하자. PROPERTIES 등 application.properties에 알맞는 Name을 설정하면 된다.
Secret에는 아래와 같이 application.properties 파일에 들어있는 내용을 담으면 된다.
3. 이후 github action 배포 실행 시 수행되는 스크립트를 수정해야합니다.
'항해99' 카테고리의 다른 글
항해99 44일차 TIL1 - AWS EB에서 관리하는 EC2 로그 보기 (0) | 2023.01.29 |
---|---|
항해99 43일차 TIL1 - GitHub Action - EB 배포 오류 수정기2 (0) | 2023.01.28 |
항해99 설 연휴 스터디 - AWS ELB 구축하기 (0) | 2023.01.24 |
"항해99 41일차 TIL1 - DBeaver 원격 DB 연결하기" (0) | 2023.01.24 |
항해99 설 연휴 TIL - 설 연휴 스터디 계획 - 스프링 시큐리티와 CI/CD를 배워볼래요. (0) | 2023.01.22 |