Application.xml의 속성을 통해 AWS RDS 와 연동

msung99·2022년 11월 10일
0
post-thumbnail

Applicationl.xml 설정정보

RDS에 접근하기 위해 Dao에서 쿼리문을 작성했고 정보를 가져오려고 했으나, 계속해서 아래와 같이 데이터베이스 연결에 실패했다는 Response가 확인되었습니다. (ps. 아래 Response 구문은 제 서비스에서 작성한 임의의 쿼리문에 대한 Response 입니다.)

{
  "isSuccess" : false,
  "code" : 4000,
  "message" : "데이터베이스 연결에 실패했습니다"
}

RDS 가 아닌, EC2의 내부 스키마와 연동했었다?

문제는 Application.xml 에 있었습니다. url 에 RDS 의 앤드포인트를 넣는것이 아니라, EC2의 IP 주소를 기입했습니다.

저는 RDS 와 EC2 에서 생성한 데이터베이스의 개념을 혼동해서, 둘이 동일한 것으로 착각하고 있었습니다. RDS 로 생성한 데이터베이스의 엔드포인트를 Application.xml 의 속성정보로 넣어줘야하지만, 이전에 생성한 EC2 인스턴스의 IP 주소를 속성으로 부여해서, 해당 EC2의 인스턴스에 존재하는 내부 스키마와 연동한 것입니다.

1) EC2에서 생성한 내부 스키마의 데이터베이스와 연동하는 경우

아래와 같이 Applicaion.xml 에 url 속성을 기입해주시면 됩니다.

참고로 EC2의 DB 와 연동하실 분들은 인바운드 규칙을 하나 추가해주셔야합니다. MySQL 에 대한 포트번호를 3306 번으로 꼭 열어주시길 바랍니다.

  • Application.properties 로 속성을 부여하는 경우는 아래와 같은 형식으로 기입해주시면 됩니다.
spring.datasource.url=jdbc:mysql://ip주소:3306/내부DB 스키마명
spring.datasource.username=이름(아이디)
spring.datasource.password=비밀번호
spring.jpa.hibernate.ddl-auto=update

2) RDS 와 연동하고 싶은 경우

RDS 에 연동할 경우는 ip주소에 들어갈곳에 RDS 의 엔드포인트를 대신해서 넣어주시면 됩니다.

  • Application.properties 로 속성을 부여하는 경우는 아래와 같은 형식으로 기입해주시면 됩니다.
spring.datasource.url=jdbc:mysql://엔드포인트:3306/내부DB 스키마명
spring.datasource.username=이름(아이디)
spring.datasource.password=비밀번호
spring.jpa.hibernate.ddl-auto=update

결과적으로 아래와 같이 성공적인 Response 를 응답 받을 수 있게 되었습니다.

profile
https://haon.blog

0개의 댓글