본문 바로가기
공부 기록

[AWS_DB] AWS EC2에 올린 Docker Container DB에 DB 툴로 접속하기

by 타태 2021. 12. 4.

 

2021.12.02 - [실전 공부] - [Docker] 도커 빌드 및 실행 자동화 스크립트

 

 

[Docker] 도커 빌드 및 실행 자동화 스크립트

2021.10.10 - [실전 공부/AWS&Docker&Linux] - [SERVER] 리눅스 + 도커 기반 서버 관리 시 정말 자주 사용하는 명령어 모음 [SERVER] 리눅스 + 도커 기반 서버 관리 시 정말 자주 사용하는 명령어 모음 2021.09.2..

ktae23.tistory.com

 

 

AWS에 Docker Container로 DB를 담아 사용하는 프로젝트가 있을 때 해당 DB를 DB 툴에서 접속하여 편리하게 조작하고 싶을 때 사용하는 방법을 소개한다.

 

먼저, 도커 컨테이너로 올렸을 때는 당연히 컨테이너 내부 포트와 외부 포트를 연결해줘야만 접속이 가능하다.

또한 컨테이너 생명 주기 동안만 사용 할 용도가 아니라 반 영구적으로 사용 할 목적의 DB라면 데이터를 저장 해 둘 디렉터리로 볼륨을 잡고 컨테이너를 내리고 다시 올릴 때마다 해당 데이터를 읽어 들이도록 설정해줘야 한다.

 

 이러한 기본적인 설정이 되어 있다고 가정한 상태에서 DBeaver를 사용한 예시를 보여주려 한다.

DBeaver는 다른 툴보다 제공하는 데이터베이스 종류도 많고 플러그인이 많아서 확장성 좋은 툴로 알려져 있다.

이전에는 HeidiSQL을 사용했는데, 직관적으로 가볍게 사용하기엔 하이디가 좋고 조금 더 강력한건 DBeaver인것 같다.

 

단적인 예로 DBeaver는 SQL 에디터를 여러개 열고 쿼리를 실행시킬 때 각 에디터마다 다를 DB를 연결할 수 있다.

그래서 연결 된 DB를 잘 확인하고 사용하지 않을땐 연결을 끊어주는 등 조심해야 한다.

 

[DBeaver Download]

 

DBeaver Community | Free Universal Database Tool

DBeaver Universal Database Tool Free multi-platform database tool for developers, database administrators, analysts and all people who need to work with databases. Supports all popular databases: MySQL, PostgreSQL, SQLite, Oracle, DB2, SQL Server, Sybase,

dbeaver.io

 

디비버? 디비이버? 일단 나는 디비이버라고 부르는걸로 알고 있다.

 


 

1. 컨테이너로 올라가 있는 데이터 베이스의 종류를 선택한다.

굉장히 많은 종류의 DB를 선택 할 수 있다.

 

 

2. AWS 접속을 위한 SSH를 설정한다.

AWS EC2 이미지에 접근할 수 있는 퍼블릭 IP 또는 탄력적 IP를 입력하고 비밀번호 또는 퍼블릭 키를 선택한다.

 

 

3. 컨테이너로 올라가 있는 데이터베이스에 접근하기 위한 DB 사용자 정보를 입력한다.

** 이때 중요한 점은 Server Host는 localhost여야 한다.

SSH로 AWS EC2에 접근하여 로컬에 접속한 상태에서 DB를 연결하기 때문이고,

컨테이너를 띄울 때 로컬 3306 포트와 컨테이너 내부 3306 포트를 연결해두었기 때문이다.

 

 

4. Public key retrieval is not allowed 에러 해결을 위한 설정

mysql 8.0 이후부터는 보안적인 이유로  allowPublicKeyRetrieval 설정을 해주어야 한다.

접속 jdbc url에 쿼리를 추가해주거나 DB에서 위와 같이 설정을 TRUE로 변경해주면 된다. 

jdbc:mysql://localhost:3306/test_db?useSSL=false&allowPublicKeyRetrieval=true

 

반응형

댓글