Univ Admissions
추천전형

PuTTY로 WordPress 서버를 점프호스트 삼아 MySQL 접속하기

안녕하세요! 이전 포스팅에서 우리는 OCI에 WordPress 서버를 구축했었죠. 오늘은 이 WordPress 서버를 점프호스트(Jump Host)로 활용하여 프라이빗 서브넷에 있는 MySQL 서버에 접속하는 방법을 알아보겠습니다.

왜 점프호스트를 사용하나요?

프라이빗 서브넷의 MySQL에 접근하기 위한 방법은 여러 가지가 있습니다. 이전에 살펴본 Bastion 서비스도 좋은 방법이지만, 이미 퍼블릭 서브넷에 WordPress 서버가 있다면 이를 활용하는 것도 효율적인 방법입니다.
장점:
1.
추가 비용 없음 (기존 서버 활용)
2.
간단한 설정
3.
안정적인 접근 방식
4.
세션 시간 제한 없음

필요한 준비물

1.
PuTTY (없다면 여기서 다운로드)
2.
WordPress 서버 정보:
공인 IP 주소
SSH 키 파일
3.
MySQL 서버 정보:
프라이빗 IP 주소
데이터베이스 접속 정보

단계별 설정 방법

1. PuTTY 세션 생성

1.
PuTTY 실행
2.
Session 설정:
Host Name: WordPress 서버의 공인 IP
Port: 22
Connection type: SSH

2. SSH 키 설정

1.
Connection > SSH > Auth > Credentials로 이동
2.
Private key file for authentication에서 WordPress 서버 접속용 프라이빗 키 선택
PPK 형식이 아니라면 PuTTYgen으로 변환 필요

3. 터널링 설정

1.
Connection > SSH > Tunnels로 이동
2.
다음 정보 입력:
Source port: 3306 (로컬에서 사용할 포트)
Destination: MySQL_프라이빗_IP:3306
예: 10.0.2.162:3306
3.
Add 버튼 클릭

4. 세션 저장

1.
Session 메뉴로 돌아가기
2.
Saved Sessions에 적절한 이름 입력 (예: WordPress-MySQL-Tunnel)
3.
Save 버튼 클릭

5. MySQL 연결

터널링된 세션이 열린 상태에서 MySQL 클라이언트로 접속:
mysql -h 127.0.0.1 -P 3306 -u admin -p
Shell
복사

보안 고려사항

1.
SSH 키 관리
프라이빗 키는 안전한 위치에 보관
키 파일 권한 설정 확인
2.
방화벽 설정
WordPress 서버의 보안그룹에서 SSH(22) 포트는 필요한 IP에서만 접속 가능하도록 설정
MySQL 서버의 보안그룹에서 3306 포트는 WordPress 서버의 프라이빗 IP에서만 접속 가능하도록 설정
3.
접속 모니터링
SSH 접속 로그 정기적 검토
비정상 접근 시도 모니터링

운영 팁

1.
세션 관리
사용하지 않는 세션은 바로 종료
자동 재연결 설정 활용 (Connection > SSH > Keepalives)
2.
문제 해결
연결 실패 시 먼저 WordPress 서버 SSH 직접 접속 테스트
MySQL 서버 리스닝 포트 확인: netstat -an | grep 3306
보안그룹 설정 확인

결론

기존 WordPress 서버를 활용함으로써 추가 비용 없이 안전한 데이터베이스 관리가 가능해집니다.
특히 개발 환경에서 데이터베이스를 자주 관리해야 하는 경우, 이 방법을 추천드립니다. Bastion 서비스와 달리 세션 시간 제한이 없어 장시간 작업에도 적합하죠.
다음 포스팅에서는 이 터널링을 활용한 데이터베이스 백업 자동화 방법에 대해 다뤄보도록 하겠습니다!
#MySQL #PuTTY #SSH #Tunneling #Database #OCI #WordPress
궁금하신 점이나 추가 의견이 있으시다면 댓글로 남겨주세요!