Load To Technical Architect
[Network] SSH Tunneling 본문
네트워크를 분리 할 때 외부에서 접근 불가능한 망을 사설망(Private Network) 이라고 한다.
이 사설망에 일반적으로 Database나 사내 그룹웨어 등이 배치될 수 있다.
만약 내 PC에서 사설망에 존재하는 리소스에 접근하려면 내 PC가 사설망에 존재해야한다.
외부에서 사설망에 접근해야 한다면 VPN을 사용하여 사설망에 접근 할 수 있다.
하지만 VPN은 기본적으로 VPN 장비 값, 유지보수 비용 등이 발생한다.
VPN을 사용하지않고 사설망의 리소스에 접근하는 방법으로 SSH Tunneling이 있다.
- SSH Tunneling 예시 -

위의 그림은 AWS EC2를 Bastion Server로 활용하여 외부에서 AWS VPC의 Private Subnet에 존재하는 AWS RDS에 접근하는 것을 간단하게 그린것이다.
- SSH Tunneling 방법 -
위의 AWS 환경을 예로 외부에서 사설망에 있는 DB에 접근하는 방법을 알아보자
필자는 간단한 서버 접근 프로그램 Putty를 사용했다.



위의 그림을 한 줄로 설명하면 아래와 같다.
'내 PC의 2222 포트로 접속하면 123.123.123.123:3306로 연결 됨'
※ Local Port로 Well-Known Port(1~1024)는 사용하지말것
위의 그림대로 작업하고 DB Tool (Dbeaver, Mysql Workbench 등..)을 연 다음 아래 내용을 입력하고 연결을 시도해보자
사설망에 있는 DB에 접속 될 것이다.
- IP : 127.0.0.1
- Port : 지정한 Source port
- Database명
- 계정 정보
※ 이 글은 AWS 환경 구성에 대한 글이 아니므로 Security Group과 같은 설정등은 이미 끝나있다고 가정하고 내용을 뺐습니다.