<스프링 부트와 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 드라이버 문제같았다. 이 에러가 발생한 과정부터 살펴보자.
해당 데이터베이스 정보를 상세히 확인하면 연결&보안 탭에서 엔트포인트 주소
를 확인할 수 있다.
본인은 툴 화면 오른쪽 벽면에서 Database 탭을 발견할 수 있었다. 탭을 클릭하면 위와 같은 화면이 나온다. 저 +
아이콘을 클릭해서 연결할 Data Source 를 선택할 수 있다.
RDS를 MariaDB로 생성했었기 때문에 일단 MySQL을 선택해서 넘어갔다.
(선택한 DB 프로그램은 다음 화면에서 바꿀 수 있다)
Host
란에는 단계-1) 에서 확인했던 RDS 엔드포인트 주소를 복붙해 넣으면 된다.
User
와 Password
에는 RDS 를 생성할 때 설정했던 사용자명과 비밀번호를 차례로 입력한다.
그리고 URL
란에는 아래와 같이 주소를 입력한다.
jdbc:mysql://엔드포인트주소:3306
그리고 OK 를 누르면..
성공적으로 에러가 발생한다😇
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를 선택해도 문제가 없는가
*참고
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/