터널링(Tunneling)이란
데이터 스트림을 인터넷상에서 가상의 파이프를 통해 전달시키는 기술로 컴퓨터 네트워크에서 터널링 프로토콜을 사용하면 네트워크 사용자는 기본 네트워크가 직접 제공하지 않는 네트워크 서비스에 접근하거나 제공할 수 있습니다.
puTTY와 DBeaver 두가지로 터널링진행하겠습니다.
1. puTTY
PuTTY은 개발자들에게 매우 유용한 기능을 포함한 무료 및 오픈 소스 Windows 프로그램입니다. 이 도구는 중요한 정보를 안전하게 전송하기 위해 여러 네트워크 프로토콜을 지원합니다.
HyperTerminal Private Edition HTPE 또는 SecureCRT와 유사한 기능을 제공하는 PuTTY는 사용자의 요구에 따라 사용자 정의할 수 있는 명령 줄 인터페이스를 제공합니다.

PuTTY를 실행합니다.
Session-Host Name에 AWS상의 EC2의 퍼블릭 IPv4 주소를 복사하여 입력합니다.
Port는 표준 SSH 포트인 22로 설정합니다.

Connection-SSH-Auth-Credention
Private key에 기존 별도로 저장해 둔 EC2의 키페어를 불러오면 됩니다.
(단. ppk파일이어야 합니다.)


Connection-SSH-Tunneis
Source port에 사용하지 않는 로컬 포드 번호를 입력합니다. (예 : 3306)
Destination에 RDS의 엔드포인트에 : 로컬포트 추가 입력 후 Add버튼을 누릅니다. (예: 엔트포트:3306)

완료 후 위와 같은 화면이 띄어지게 되면 user명을 입력합니다.

위와 같이 나오게 되면 터널링 완료입니다.
2. DBeaver
DBeaver는 SQL 클라이언트이자 데이터베이스 관리 도구입니다. 관계형 데이터베이스의 경우 JDBC API를 사용하여 JDBC 드라이버를 통해 데이터베이스와 통신합니다. 그 밖의 데이터베이스(NoSQL)의 경우 사유 데이터베이스 드라이버를 사용합니다. 자동 완성과 구문 강조를 지원하는 편집기를 제공합니다. 이클립스 플러그인 구조 기반의 플러그인 아키텍처를 제공함으로써 애플리케이션 동작 중 상당수를 수정하여 데이터베이스에 특화된 기능이나 데이터베이스에 독립적인 기능들을 제공할 수 있게 합니다. 이것은 자바로 작성된 데스크톱 애플리케이션이며 이클립스 플랫폼에 기반을 둡니다.

DBeaver를 설치합니다.

new database connection 버튼 클립합니다.
AWS의 RDS생성 시 MySOL로 생성하였기 때문에 동일한 MySOL 선택 후 넥스트 버튼 클릭합니다.


Main 화면에서 Sever Host에 RDS의 엔드포인트를 Port에는 로컬 포드 번호를 입력합니다.
Usename과 Password도 RDS 생성 시 작성했던 내용을 동일하게 기제 하면 됩니다.

SSH화면으로 이동후 Use SSH Tunnel 버튼 클릭하면 화면이 활성화됩니다.
Host/IP 에 퍼블릭 IPv4 주소 port에는 표준 SSH 포트인 22로 설정합니다.
User Name 에는 EC2-user를 입력합니다.


Authentication Method에서 public key로 변경 후 public key에 파일 찾기 버튼 생성되면
기존 RDS 생성 시 별도 저장해 둔. pem파일을 불러온 후 finish 버튼 클릭합니다.

위와 같이 DBeaver도 터널링이 완료되어 어디서든 RDS에 접속 가능합니다.