[Jupyter Notebook]: 외부에서의 Webpage 접근 방법

[ 본 게시글의 작성 계기 ]
- 필자가 속해 있는 직장에서는 직원 복지 차원에서(?), 인공지능 등의 활용 연구를 위한, GPU 서버를 공용으로 이용할 수 있도록 제공하고 있었음
- 그리고 JupyterHub(Jupyter Notebook)와 함께 제공되고 있어 나름 편리하게 이용하고 있었는데, 어느 날 불행히도 JupyterHub(Jupyter Notebook) 서비스 종료 예정 소식을 접하게 되었음
- 하지만, ‘하늘이 무너져도 솟아날 구멍은 있다!’ 라는 지혜로운 옛 선조들의 말이 있듯이 기존 JupyterHub를 거치지 않더라도 외부에서 직장 공용 GPU 서버를 Jupyter Notebook을 이용하여 활용할 수 있는 방법이 있어 본 게시글을 작성하게 되었음(feat. ssh, and check_ports.j)
[ SSH 또는 Xshell을 이용한 서버 접속 ]
- 먼저, SSH, 또는 Xshell 등 원격지(본 게시글의 경우 직장 공용 GPU 서버 주소)에 접속하기 위한 네트워크 프로토콜을 이용하여 원격지 주소에 접속함
- 아래와 같은 명령어를 이용할 수도 있음
- ssh 사용자아이디@XXX.XXX.XXX.XXX(ip주소)
[ 사용 가능한 포트(port) 번호 확인 ]
- 서버에 로그인 후 터미널에서 다음 명령어를 실행
- check_ports.j
- 이 명령어를 실행하면 사용 가능한 포트 번호가 나옴

[ 서버에서 Jupyter Notebook 실행하기 ]
- 명령어를 입력해 Jupyter Notebook을 실행
- 아래에서 [8881]은 예시이며, check_ports.j 과정에서 확인된 포트번호를 적어야 함
- jupyter notebook --no-browser --port=8881
- 처음 실행하면 화면에 아래와 같이 접속 가능한 URL이 표시됨
- http://localhost:8881/?token=abcd1234efgh5678
- 위 주소를 복사하여 인터넷 브라우저(예: 엣지, 크롬 등) 주소창에 붙여넣기 후 엔터(접속)
- 위 주소에서 [token=abcd1234efgh5678]은 예시이며, 해당 부분은 복사해서 메모장에 잘 저장해 둘 필요가 있음
[ 기타: 터널링 과정 ]
- SSH 또는 Xshell의 터널링 기능을 이용해 내 컴퓨터의 웹브라우저에서 GPU 서버의 Jupyter Notebook에 접속하도록 연결해줘야 할 수도 있음
- [파일] → [속성] → [연결] → [SSH] → [터널링]
- 터널링 창에서 아래와 같이 설정을 추가함
- 유형: 로컬(발신)
- 소스 호스트: (빈칸 그대로 둠)
- 소스 포트: 아까 확인했던 포트 번호(예: 8881)
- 대상 호스트: localhost
- 대상 포트: 아까 확인했던 포트 번호(예: 8881)
- 확인 클릭하여 저장한 뒤, Xshell을 통해 다시 서버에 접속 후 이용
- 끝.
※ 본 게시글은 관리자의 학습과 복습을 위한 것으로, 독자의 의견 제시, 피드백 등 보다 올바른 정보를 통해 언제든지 업데이트될 수 있음
[자료 출처]
○ 없음
○ 이미지
- 사용자 작업 환경 캡쳐