SSH 터널링
SSH 터널링은 SSH(Secure Shell) 프로토콜을 사용하여 두 네트워크 간의 안전한 연결 통로를 만드는 기능이다. 이를 통해 사용자는 원격 서버에 직접 연결하지 않고도 네트워크 리소스에 접근할 수 있다.
이런 SSH 터널링 기술을 활용하여 특정 시스템에 SSH 연결관계를 형성한 시스템을 매개로 접근할 수 있다.
서비스 구조

- RDS는 보안적인 이유로 무분별한 요청, 직접적인 접근을 허용해선 안된다.
- RDS가 EC2에서의 요청만 허용하도록 VPC를 구성, 외부로부터의 요청은 EC2가 처리하는 구조
- 이런 구조에서 SSH 터널링을 활용하여 RDS에 접근할 수 있다.
SSH 터널링 설정
- 새로운 데이터 소스 추가 → SSH/SSL → SSH Configuration 선택
- 이하 화면에서 설정해야 될 값들은 다음과 같다.
- Host : 터널링을 위한 EC2 IP
- Username : EC2 사용자 이름, ex) ubuntu
- Authentication type : 인증 방식, 필자는 key pair로 설정, 로컬에 존재하는 키 페어 경로 설정
Test Connection 시 정상 연결 되면 잘 구성된 것

3. 이제 RDS와 관련된 정보(Host - RDS 엔드포인트, 접속 사용자 이름 ,패스워드)를 설정해주면 된다. 이렇게만 하면 정상 접속되는 줄 알았으나..


- AWS RDS 클러스터는 장애 조치 기능을 제공하는데 SSH 터널링을 통해 연결 시 이 기능이 제대로 동작하지 않을 수 있다고 한다.
- 메시지에 나온 대로 Advanced 메뉴로 들어가
enableClusterAwareFailover=FALSE 로 설정하면 SSH 터널링을 정상 수행할 수 있다.
참고