[AWS] SSH Tunneling을 이용하여 Private Subnet에 위치한 RDS 접근하기

꼬마요리사레미·2024년 4월 2일

AWS

목록 보기
1/10

✨ SSH Tunneling

현재 RDS가 Private Subnet에 위치하기 때문에 VPC 외부에서 직접 엑세스 하는 것이 불가능하다. 하지만 관리자는 테스트를 위해 접근해야 할 상황이 빈번하게 일어나는데, 이는 SSH 터널링을 통해서 해결할 수 있다.

SSH 터널링은 SSH 클라이언트에서 SSH 서버로의 연결을 통해 터널을 생성하고, 해당 터널을 통해 데이터를 전송하는 기법이다. SSH 터널을 통해 전송되는 데이터는 암호화 되어 전송되기 때문에 안전성을 어느정도 보장할 수 있다.

여기서 SSH 클라이언트의 구성은 Host, User, Key Pair로 이루어져 있다.

Public Subnet에 위치한 EC2 인스턴스로 요청을 보내면, 3306 포트로 포워딩 시켜서 RDS 인스턴스로 도달하게 만드는 것이다. 이 때 EC2 인스턴스의 인바운드 규칙에 SSH 포트에 해당하는 22번을 열어둬야 요청이 허용된다.

✨ SSH Tunneling 구성

1. EC2 보안 그룹 설정 및 키 페어 생성

EC2 보안 그룹 설정 시 인바운드 규칙을 다음과 같이 설정한다. 이렇게 함으로써 EC2 인스턴스는 SSH 클라이언트의 요청을 허용할 수 있다.

EC2 인스턴스에 접근하기 위한 키 페어를 생성해준다.

2. EC2 인스턴스 생성


위에서 생성한 키페어를 지정해준다.

1, RDS 인스턴스가 존재하는 VPC 내의 Public Subnet에 EC2 인스턴스가 위치할 수 있도록 VPC와 서브넷을 설정해준다.
2. 퍼블릭 IP 자동 할당은 활성화를 시켜준다. 추후 SSH 클라이언트 요청 시 Host 정보로 활용될 것이다.
3. 보안 그룹은 위에서 설정한 보안 그룹으로 지정해준다.

3. RDS 보안 그룹 수정


외부에서 접근 시 SSH Tunneling을 통해서 들어오는 요청만 허용할 수 있도록 보안 그룹의 인바운드 규칙을 편집해준다.

✨ 데이터베이스 툴에서 접속하기

1. IntelliJ DB Connection


데이터베이스 연결을 위한 정보를 입력해준다.

1. Host는 EC2 인스턴스 생성 후 할당된 퍼블릭 IP 주소를 입력해준다.
2. User는 리눅스 기준 ec2-user을 입력해준다.
3. Auth type을 Key Pair로 변경해주고 Key file에 키 페어 생성시 발급 되었던 .pem 파일을 불러와준다.

이후 우측 하단에 있는 Test Connection 버튼을 클릭하면 연결 성공에 해당하는 메시지를 확인할 수 있다.

2. MySQL Workbench DB Connection

0개의 댓글