[Jupyter] Notebook 원격에서 작업하기

2023. 4. 15. 18:38Developers 공간 [Shorts]/Software Basic

728x90
반응형
<분류>
A. 수단
- OS/Platform/Tool : Linux, Kubernetes(k8s), Docker, AWS
- Package Manager : node.js, yarn, brew, 
- Compiler/Transpillar : React, Nvcc, gcc/g++, Babel, Flutter

- Module Bundler  : React, Webpack, Parcel

B. 언어
- C/C++, python, Javacsript, Typescript, Go-Lang, CUDA, Dart, HTML/CSS

C. 라이브러리 및 프레임워크 및 SDK
- OpenCV, OpenCL, FastAPI, PyTorch, Tensorflow, Nsight

 


1. What? (현상)

보통 Local에서 EDA(Exploratory Data Analysis,탐색적 데이터 분석)를 통해 작업하는 경우 Jupyter를 활용해 문서화하며 작업하기도 하지만, 서버에 원격으로 접속해 작업하는 경우 GUI를 통해 작업하기 힘들기 때문에 jupyter를 활용해 웹으로 접속해 작업하기도 합니다.

 

이 글은 원격에서 Jupyter를 띄워 작업하는 내용을 정리합니다.

 

먼저 환경은 아래와 같다고 가정합니다. Router로 Client와 Server를 연결해 놓았으며, Router를 통해서 접근하는 상황입니다. 아래의 Port forwarding의 경우 외부 IP로 Window Client가 아닌 다른 곳에서 접근하고 싶은 경우를 이용해 적어두었습니다.

[jupyter 실행 환경]

참고로 Jupyter 설치는 아래와 같습니다.

pip3 install jupyter

2. Why? (원인)

  • X

3. How? (해결책)

  1. 서버에서 아래와 같은 명령어로 실행해 줍니다.
    • 중요한 것은 ip를 열어주는 것입니다. 아래에서는 0.0.0.0이라는 아이피로 notebook을 열어주었습니다.
    • 0.0.0.0 아이피는 보통 "모든 IP'를 의미합니다.
  2. Window 환경 Client에서 접근하는 경우, 웹페이지에 192.168.0.10:8888 로 접근해 줍니다.
  3. 외부 환경 Client에서 접근하는 경우, 웹페이지에 123.456.789.012:portA로 접근해 줍니다.
jupyter notebook --ip 0.0.0.0
더보기

-----------------------------------------------------------------------------------------------------

<Docker를 사용해 연결하는 경우>

 아래 그림과 같이 Docker를 활용해 한번 더 연결해주는 방법도 있습니다.

아래와 같은 명령어를 통해서 docker를 만들어 주고, 내부에서 jupyter notebook를 위와 비슷하게 실행해줍니다.

 

이때는 위와 같은 웹페이지로 접근할수있는데..

즉, Window 환경 Client에서 접근하는 경우, 웹페이지에 192.168.0.10:portB로 접근해 줍니다.
외부 환경 Client에서 접근하는 경우, 웹페이지에 123.456.789.012:portA로 접근해 줍니다.

[Jupyter를 활용해
docker run -d -it --name remote_jupyter -p {portB}:8888 --privileged --mount type=bind,source=/home/LOCAL/PATH,target=/root python
docker start remote_jupyter
docker exec -it remote_jupyter /bin/bash
jupyter notebook --ip 0.0.0.0 --allow-root

-----------------------------------------------------------------------------------------------------

 


 

728x90
반응형