[IntelliJ IDEA Ultimate] AWS RDS MariaDB 연결하기

garden·2022년 7월 3일
1

💥문제 발생 부분

<스프링 부트와 AWS로 혼자 구현하는  서비스> (이동욱, 2019)
클론코딩 중...

p.284 RDS 접속 정보 등록

툴 환경이 책과 달라서 헤맸다

책에서는 IntelliJ IDEA 의 Ultimate 에디션이 아닌 Community 에디션을 사용한다. 로컬에서 DB를 연결할 GUI 클라이언트로 Database plugin을 설치해서 사용하는 법을 채택하고 있다.

but 본인은 유료 에디션인 Ultimate 를 사용하고 있으므로 따로 플러그인을 깔지 않고 IntelliJ 에서 기본으로 제공되는 양질의 DB기능만으로 충분했다.

다소 차이는 있었으나, RDS 연결을 위해 필요한 접속정보 입력칸은 유사하므로 일단 시도했다.

⛔에러 메시지⛔

Failed
[08S01]
Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets fromthe server.
No appropriate protocol (protocol is disabled or cipher suites are inappropriate.)

🤦 문구를 살펴보니 db 드라이버 문제같았다. 이 에러가 발생한 과정부터 살펴보자.

실패 단계-1) AWS RDS 에서 생성한 데이터베이스의 엔트포인트 주소 확인

해당 데이터베이스 정보를 상세히 확인하면 연결&보안 탭에서 엔트포인트 주소를 확인할 수 있다.

실패 단계-2) IntelliJ IDEA Ultimate 에서 Database 기능 사용

본인은 툴 화면 오른쪽 벽면에서 Database 탭을 발견할 수 있었다. 탭을 클릭하면 위와 같은 화면이 나온다. 저 + 아이콘을 클릭해서 연결할 Data Source 를 선택할 수 있다.

RDS를 MariaDB로 생성했었기 때문에 일단 MySQL을 선택해서 넘어갔다.
(선택한 DB 프로그램은 다음 화면에서 바꿀 수 있다)

실패 단계-3) Data Source 접속정보 입력

Host 란에는 단계-1) 에서 확인했던 RDS 엔드포인트 주소를 복붙해 넣으면 된다.

UserPassword에는 RDS 를 생성할 때 설정했던 사용자명과 비밀번호를 차례로 입력한다.

그리고 URL 란에는 아래와 같이 주소를 입력한다.

jdbc:mysql://엔드포인트주소:3306

그리고 OK 를 누르면..

성공적으로 에러가 발생한다😇

🔆 접근) 문제는 Driver 선택이다

MySQL을 선택한 것이 아니라 MariaDB 로 생성했다는 사실을 기억해야한다.

Spring과 MariaDB를 연결할 때 필요한 jdbc driver 는 Connector J 이다.

MariaDB Connector J 드라이버를 사용하는 Data Source 를 생성해야 제대로 연결할 수 있다.

❗해결❗

접속정보 입력 창에서 Driver 로 선택된 파란 글씨를 클릭하면 Go to Driver 항목이 뜬다.

Drivers 탭에서 Amazon Aurora MySQL 또는 MariaDB 를 선택한 후에 Create Data Source 한다. (❓: 글 하단에 보충 설명)

다시 접속정보 입력 화면이 나타나면 다시 Host, User, Password, URL 입력란을 채우고 OK 를 클릭한다.

연결 Succeeded

Database에 해당 RDS가 잘 연결된 것을 확인할 수 있다. (까만색으로 가려놓은 것이 RDS 생성시에 설정했던 DB이름이다)

성공^^

웃으면서 쓰고 있지만 당시에는 왜? 왜??
URL도 주고 아이디 비번도 줬는데 왜 연결을 못 하냐고
머리 쥐뜯었던 사건

이 책 클론코딩하며 삽질했던 이야기는 하나 더 남아있다
to be continued...
❓ Amazon Aurora를 사용하는 게 아닌데 왜 Aurora driver를 선택해도 문제가 없는가
둘 중 뭘 선택해도 되는 이유는 Amazon Aurora 클러스터에 연결할 때 MariaDB Connector J 를 사용했기 때문이다. (캡쳐 속 Driver files 항 목 확인) 2022년 3월 업데이트 기준으로 Connector J 는 더 이상 Amazon Aurora를 지원하지 않게 되어 이전 버전을 사용하거나 AWS JDBC Driver 를 사용해야 한다고 한다. (캡쳐 속 Connector J 의 버전을 보면 2.7.3 이다. 2022-07-03 기준 가장 최신 버전의 Connector J 는 06-29에 업데이트한 3.0.6 이다.)

*참고
AWS database 블로그 글
[Using the MariaDB JDBC driver with Amazon Aurora with MySQL compatibility] https://aws.amazon.com/ko/blogs/database/using-the-mariadb-jdbc-driver-with-amazon-aurora-with-mysql-compatibility/

profile
삐약

0개의 댓글