DB는 보통 BackEnd 서버들만 접속하면 되기 때문에 보안상 외부 접속이 안되는 Private Subnet에 생성한다. 하지만 개발 목적으로 외부 접속(DB 툴에서 DB에 접속하는 경우)을 할 때 우회해서 접속해야하는 일이 생긴다. Naver Cloud Platform의 공식 문서에서는 VPN을 사용하라고 나와있지만, 무슨 이유인지 네이버에서 제공하는 VPN 클라이언트를 다운받을 수 없었다 (NCP 측에서 피드백이 와서 다시 확인해보니 다운로드가 가능했다 🙂 이미 VPN을 삭제해서 사용할 수는 없지만... - 220807 업데이트)
그래서 PortForwarding을 이용해서 우회하는 방법을 택했다.
DB를 private subnet에 생성했기 때문에 외부(DataGrip 등)에서 바로 접속할 수 없다
ACG: cloud-mongodb-6sjw5
DB 접속 User 만들기
ACG: cloud-mongodb-6sjw5
이렇게 되어있다.ACG: cloud-mongodb-6sjw5
를 열어서 Inbound 규칙에 devstagram-master의 private ip와 DB 접속 포트인 17017를 추가# ssh -i [인증키] [username]@[외부ip]
ssh -i devstagram-master.pem moondysmell@175.45.192.198
## 접속 잘되는것 확인하면 우선 나가자
exit
# ssh -L [내 로컬 port]:[db의 private 도메인]:[db 접속할 port] -i [인증키] [devstagram-master 접속
ssh -L 17017:as6dm.vpc.mg.naverncp.com:17017 -i devstagram-master.pem moondysmell@175.45.192.198
DataGrip과 같은 DB 접속 툴에서 접속
ssh -L 17017:as6dm.vpc.mg.naverncp.com:17017 -i devstagram-master.pem moondysmell@175.45.192.198
👆 명령어 한줄로 접속해보자
vi ~/.ssh/config 한 후 다음과 같이 작성
Host devstagram
Hostname 175.45.192.198 #devstagram-master의 publicIp
User moondysmell #username
IdentityFile ~/keys/devstagram-master.pem #pem 파일 위치
LocalForward 17017 as6dm.vpc.mg.naverncp.com:17017 #LocalForward [로컬 Port] [DB의 private도메인]:[DB Port]
명령어 한줄이면 접속이 된다
ssh devstagram