SSH 터널링으로 프라이빗 RDS에 MySQL Workbench 연결하기

2025. 6. 18. 02:36·SPRING/HOW-TO

이번 글에서는 퍼블릭 액세스를 차단한 Private RDS를 MySQL Workbench와 연결하는 방법에 대해 소개하겠습니다. AWS 지식 센터 글을 참고했습니다.

 

본격적으로 연결 방법을 설명하기 전에, 왜 MySQL Workbench를 사용하게 되었는지, 그리고 RDS는 프라이빗으로 설정한 이유에 대해 먼저 짚고 넘어가고자 합니다. 

 

🍒MySQL Workbench를 사용하는 이유

프로젝트의 관계형 데이터 베이스로 MySQL을 사용하고 있으며 AWS의 RDS를 통해 관리하고 있습니다. 데이터 베이스를 시각적으로 확인하고 관리하기 위한 툴을 살펴보던 중 MySQL Workbench를 알게 되었습니다. 

 

MySQL Workbench는 데이터베이스 설계자, 개발자, DBA를 위한 통합 비주얼 도구입니다. MySQL Workbench는 서버 구성, 사용자 관리, 백업 등을 위한 데이터 모델링, SQL 개발, 그리고 포괄적인 관리 도구를 제공합니다.

즉 데이터 베이스 관리를 직관적이고 쉽게 해주는 시각화 도구라고 할 수 있습니다. 

 

RDS와 MySQL Workbench를 연결하는 방법에 대한 블로그 글이 많지만 대부분은 퍼블릭 액세스가 허용된 RDS 인스턴스를 전제로 설명하고 있었습니다.

 

🍒RDS의 퍼블릭 액세스를 차단하는 이유

AWS 비용 때문이었습니다.

프리티어를 사용 중임에도 불구하고 추가 비용이 청구되고 있었습니다.

 

청구 내역을 확인한 결과, 퍼블릭 IP 주소 사용으로 인해 발생한 요금이었습니다. 그러나 EC2 인스턴스는 단 한 대만 가동 중이었고 퍼블릭 IP 주소도 하나만 할당한 상태였습니다. 

 

결론적으로 또 하나의 퍼블릭 IP 주소는 RDS 인스턴스에 자동으로 할당된 것이었습니다. RDS의 퍼블릭 액세스를 허용한 경우 자동으로 퍼블릭 IP 주소가 할당되며, 이로 인해 총 2개의 퍼블릭 IP 주소를 사용하면서 비용이 청구되고 있었던 것입니다.

 

이후 RDS의 퍼블릭 액세스를 비활성화하였고, 현재는 더 이상 비용이 청구되지 않고 있습니다. 

 

🍒프라이빗 RDS와 MySQL Workbench 연결하기

`SSH 터널링` 방식을 이용합니다. 

 

SSH 터널링은 호화된 SSH 연결을 통해 임의의 네트워킹 데이터를 전송하는 방법입니다. SSH 프로토콜을 사용해 로컬과 원격 서버 사이에 암호화된 통신 경로(터널)를 만들고 이 터널을 통해 외부에서 직접 접근할 수 없는 내부 리소스에 안전하게 접근할 수 있도록 우회 통로를 제공합니다. 

 

MySQL Workbench를 통해서 RDS에 직접 연결하는 것처럼 보이지만, 실제로는 EC2 인스턴스에 SSH로 연결을 하고 해당 EC2 내부에서 RDS에 접근하는 방식입니다. 

 

MySQL Workbench에 접속한 첫 화면입니다. 상단의 `Database`를 클릭합니다. 

 

`Manage Connections`를 클릭합니다. 

 

`New`를 눌러 새롭게 연결을 생성해줍니다. 

 

‼️`Standard TCP/IP over SSH`‼️를 클릭합니다

 

그리고 본격적으로 정보를 기입해줍니다. 해당 정보를 확인하는 방법은 아래에서 자세히 살펴보겠습니다. 

  • SSH Hostname : EC2 인스턴스의 퍼블릭 IP 주소를 입력합니다. 
  • SSH Username : EC2 인스턴스에 연결할 기본 SSH 사용자 이름을 입력합니다. 
  • SSH Password : 생략합니다.
  • SSH Key File : 파일 시스템에서 연결하는 데 사용된 .pem 파일을 선택합니다.
  • MySQL Hostname : 데이터베이스 엔드포인트를 입력합니다. 
  • MySQL Server Port : 데이터베이스에 연결하는 데 사용하는 포트 번호를 입력합니다. 
  • Username : 데이터 베이스에 연결하는 데 사용하는 사용자 이름을 입력합니다. 
  • Password : 설정한 데이터베이스 암호를 입력합니다. 
  • Default Schema: 생략합니다.

 

🔎AWS 사이트에서 해당 정보 확인하기

SSH Hostname

AWS EC2 > 인스턴스 > 해당 인스턴스 클릭 후 `연결` 클릭

퍼블릭 IPv4 주소입니다. 

SSH Username

`연결`을 클릭한 뒤 `EC2 인스턴스 연결`을 선택합니다. 사용자 이름입니다. 이 창에서도 퍼블릭 IPv4 주소를 확인할 수 있습니다. 

 

SSH Key File

시작 시 할당된 키 페어입니다. 이건 처음 EC2 인스턴스를 생성했을 때만 확인할 수 있는 파일이라서, 기존에 저장해두었다면 해당 파일을 그대로 업로드 하면 됩니다. 

 

만약 해당 파일이 없다면 링크로 이동하여 `키 페어 생성`을 통해 새롭게 생성하세요. 

이때 프라이빗 키 파일 형식은 `.pem`입니다. 

 

MySQL Hostname과 MySQL Server Port

Aurora and RDS > 데이터베이 > 해당 데이터 베이스 클릭 후 `연결 및 보안` 확인

엔드포인트와 포트를 확인할 수 있습니다.

 

Username

`구성`을 클릭합니다.

마스터 사용자 이름을 확인할 수 있습니다

 

Password

마스터 사용자 이름 바로 아래에 마스터 암호가 있으나 별표(*)처리 되어 있습니다. 기억이 나지 않는 경우 새롭게 설정할 수 있습니다. `수정`을 선택합니다. 

 

`Test Connection`을 클릭합니다.

 

 

✅연결 확인

생성한 Connection 선택해서 클릭합니다. 

 

성공적으로 접속했습니다🎉

'SPRING > HOW-TO' 카테고리의 다른 글

HeadObject로 S3 객체 존재 여부 확인하기 (SDK 2)  (2) 2025.09.30
Presigned URL로 S3 이미지 업로드 및 삭제 기능 구현하기 (SDK 2)  (5) 2025.06.22
Presigned URL로 S3 프라이빗 버킷 이미지 조회하기 (SDK v2)  (2) 2025.06.15
'SPRING/HOW-TO' 카테고리의 다른 글
  • HeadObject로 S3 객체 존재 여부 확인하기 (SDK 2)
  • Presigned URL로 S3 이미지 업로드 및 삭제 기능 구현하기 (SDK 2)
  • Presigned URL로 S3 프라이빗 버킷 이미지 조회하기 (SDK v2)
seo-cherry
seo-cherry
devyeonee911 님의 블로그 입니다.
  • seo-cherry
    Emergency
    seo-cherry
  • 전체
    오늘
    어제
    • 분류 전체보기 (11)
      • SPRING (7)
        • TIL (3)
        • HOW-TO (4)
      • CI-CD (1)
      • REVIEW (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
seo-cherry
SSH 터널링으로 프라이빗 RDS에 MySQL Workbench 연결하기
상단으로

티스토리툴바