서버

SSH 터널링을 통해 다른서버를 프로세스를 활용하기(feat. BullMQ)

for2gles 2022. 11. 5. 16:27
반응형

현재 사이드 프로젝트를 진행을 하는데 백그라운드 Job 서버가 있다.

해당 서버에 Redis와 개발중인 node 서버가 존재하고, BullMQ를 활용하여 백그라운드 작업들을 관리하고 있다.

 

BullMQ에 어떤 Queue들이 존재하고, 어떤 Job들이 Processing중인지 확인하기위해 내가 사용하고있는 써드파티 모듈이 있는데, 바로 Bull-Board 이다.

 

Bull board 예시화면 / 출처 Bull-board 깃허브(https://github.com/felixmosh/bull-board)

 

논점이 흐려진 것 같은데

아무튼 백그라운드 서버는 SSH를 제외한 모든 포트를 외부에 오픈시킬 계획이 전혀 없다.

이 때 어떻게 내 컴퓨터에서 해당 페이지를 볼 수 있을까.

 


SSH 터널링

내가 현재 사용하는 방법은 SSH 터널링을 통해 확인하는것이다.

 

단순하게 예를 들자면 SSH연결을 하고, 내 컴퓨터의 3001 포트를 서버의 3000포트로 포워딩시키는것이다.

그러면 http://localhost:3001/bull-board 로 접속을 하면, 백그라운드 서버에서의 http://localhost:3000/bull-board 로 접속이 되는것이다.

 

 

사용방법

~/.zshrc 에 아래를 추가하면 된다.

alias {COMMAND}='ssh -L {MY_PORT}:localhost:${SERVER_PORT} -o "ServerAliveInterval 60" -o "ServerAliveCountMax 120" user@ip'

를 입력하고 저장한 뒤 터미널을 재시작 하거나 source ~/.zshrc 를 통해 zshrc를 적용시키고 ${COMMAND}를 입력하면 터널링이 된 것이다.

 

예를 들면

alias TUNNEL_MY_SERVER='ssh -L 3000:localhost:3000 -o "ServerAliveInterval 60" -o "ServerAliveCountMax 120" ubuntu@123.123.123'

를 저장한 후 터미널을 재시작 하고

$ TUNNEL_MY_SERVER

를 실행한 후, http://localhost:3000/something 을 한다면 해당 서버의 3000포트로 실행되고있는 서버의 /something 라우터를 요청할 수 있는 것 이다.

반응형