정말 오랜만에 프로젝트를 시작하게 되어서 AWS를 들어가게 되었다.(라고 하지만 부트캠프 이후로 첫 프로젝트....)
2년 전 일이라서 구글링을 열심히 해서 도움을 받았기 때문에 나도 최신버전으로 업데이트를 위해 정리를 해본다.
해당 프로젝트는
을 사용하고 있습니다!
바로 생성부터 들어가도록 하겠습니다.
AWS에서 RDS를 찾아서 들어와 주세요.
저는 프리티어를 위해 새로운 계정을 만들었습니다.
DB는 MySQL을 선택!!
만들기 전에 확인 했지만 다 만들고 나면 마지막 생성 직전에 한 번 더 알려주긴 합니다. 해당 내용을 제대로 숙지해서 요금이 갑작스럽게 지불되는 것을 방지합시다!!
식별자, 사용자 이름, 암호 등 자신에게 맞게 설정해 주세요.
앞의 주의사항을 확인하고 구성을 db.t3.micro로 합시다! (t2나 t4g 도 가능합니다.)
또한 마찬가지로 범용 SSD와 20GiB를 확인!
DB를 생성하는 현재는 EC2를 생성하지 않았기에 연결 안 함을 선택.
DB에 접근을 위해 퍼블릭 액세스도 "예"를 선택합니다.
보안 그룹은 새로 만들었는데요. 해당 DB에 접근할 수 있게 만들어 주는 설정 그룹이라고 생각하시면 될 것 같습니다. 해당 내용은 뒷부분에 나옵니다!
이름은 편하신대로 설정해 주시고 넘어가면 됩니다.
마지막으로 추가 구성이 있는데 여기서 초기 데이터베이스 이름을 설정하고 넘어가면 됩니다.
이 내용을 마지막으로 DB 생성은 마무리가 됩니다! 하지만 설정이 조금 더 남아있죠...
생성된 DB를 클릭하면 아래와 같은 화면이 나오는데요.
여기서 빨간 밑줄이 그어져있는 곳을 클릭해서 보안그룹으로 이동합니다.
이렇게 보안 그룹으로 이동 후 보안 그룹 ID를 클릭해 주세용.
이제 여기서 인바운드 규칙 편집을 클릭!
그러면 이제 인바운드 규칙을 생성하는 화면으로 넘어가는데
사진에는 잘려 있는데... anywhere ip4 인가 하는 녀석을 클릭하고 0.0.0.0/0 을 설정하면 DB의 엔드포인트, 포트, 앞서 설정한 마스터 사용자 이름, 마스터 암호를 가지고 DB에 접근할 수 있습니다!!
바로 yaml 파일을 살펴 보도록 하죠.
spring:
datasource:
url: jdbc:mysql://{엔드포인트}:{포트}/{초기 데이터베이스 이름}?serverTimezone=Asia/Seoul&characterEncoding=UTF-8
username: {마스터 사용자 이름}
password: {마스터 암호}
AWS 화면과 이름을 동일하게 세팅해 두었습니다. 해당 위치에 본인의 데이터를 넣어주면 깔끔!
그리고 dependency 도 추가해줘야겠죠
// runtimeOnly 'com.h2database:h2'
implementation 'com.mysql:mysql-connector-j'
기존에 사용하던 h2 를 주석처리 하고 mysql 의존관계를 추가했습니다.
runtimeOnly로 넣어줘도 되지만 저는 그냥 implementation 으로 했습니다. (maven Repository에서 복사해와서 바꾸기 귀찮아서 그런거 아닙니다)
maven repository 에서 mysql을 검색하면 위처럼 두개가 나오는데 Connector Java 는 이제 사용하지 않고 Connector/J를 사용하는 것 같습니다. (Relocated가 되어 있죠)
그리고 처음에 아무생각 없이 Connector Java 를 사용했는데 에러가 나서 찾아보니 Spring Boot 버전이 올라서 안 맞는것 같더라구요..!! 3.x 버전을 사용하시면 Connector/J 를 사용해 주세요!
이렇게 하면 모든 세팅은 끝나게 됩니다. DB 연결은 생각보다 쉬웠네요.
다들 과금 조심하시고.. 즐겁게 개발하세요!!
다음엔.. 배포 과정을 정리... 해 볼 수 있으면 좋겠네요 ㅎㅎ