Computer Science/Jupyter

[Jupyter] 서버 환경에서 주피터 (Jupyter lab) 실행 및 연결

2021. 2. 8. 14:49

Jupyter는 코드 문서화에 굉장히 유용하고, 원격으로 서버에 접속할 때 사용할 수 있는 프로그램이다.

서버에서 Jupyter를 실행하여 이를 통해 그 서버에 원격으로 접속할 수 있는 방법을 포스팅하고자 한다.

Protocol

1. (선택사항) conda 가상 환경을 서버에 생성 후 가상 환경 활성화한다.

conda create -n 가상환경_이름 python=3.7
conda activate 가상환경_이름

가상환경 내에서 Jupyter를 실행하고자 한다면 1번 단계를 진행하면 되고, 가상환경 없이 Jupyter를 실행하려면 생략해도 된다. 전자의 경우 Jupyter를 실행할 때마다 가상환경을 활성화한 후 실행해야하는 번거로움이 있는데, 가상환경 없이 Jupyter를 실행한 후 Kernel을 통해 가상환경 내 패키지를 이용할 수도 있다. Kernel을 만드는 방법은 아래 포스팅 참조.

2021.03.05 - [Computer Science/Jupyter] - [Jupyter] Jupyter에서 다중 커널 이용하기 (Kernel)

 

2. Jupyter 설치한다.

conda install jupyter
conda install -c conda-forge jupyterlab

이미 서버 환경에 Jupyter가 설치되었다면 생략 가능하다. 하지만 가상환경을 1번 단계에서 만들었다면 기존 Jupyter가 아니라 가상환경 내에서 앞으로 이용할 Jupyter가 필요하므로 이를 설치해야 한다.

 

3. 접속 비밀번호를 생성한다.

>> ipython # Ipython 프롬프트 열기.

In [1]: from notebook.auth import passwd
In [2]: passwd()
Out[2]: '암호화된 비밀번호’
In [3]: exit

 

4. Jupyter 환경 설정하기

jupyter notebook --generate-config # Config 파일 생성 
vi .jupyter/jupyter_notebook_config.py # 편집기로 열어서 편집
외부 접속 허용하기 (Line: 48) c.NotebookApp.allow_origin = '*'
허용 ip 설정 (Line: 207) c.NotebookApp.ip = '허용_ip'
작업 경로 설정 (Line: 269) c.NotebookApp.notebook_dir = u'/home/user'
시작 시 브라우저 실행 여부 (Line: 275, 서버로 실행할 때 서버PC에서 주피터 노트북 창이 새로 열리지 않는다) c.NotebookApp.open_browser = False
비밀번호 설정 (Line: 284) c.NotebookApp.password = u‘복사한 암호화된 비밀번호’
포트 설정 (Line: 295) c.NotebookApp.port = 사용할 포트번호 4자리

 

(참고) vi에서 줄번호를 표시하려면 명령모드(esc)에서 :set number 입력 후 enter를 누르면 된다.

(참고2) 서버 IP는 hostname -I로 확인할 수 있다.

 

위 표를 참조하여 jupyter_notebook_config.py를 수정한 후 저장한다.

 

6. 서버 포트를 열어준다.

firewalld
firewall-cmd --zone=public --add-port=포트번호/tcp --permanent
firewall-cmd --reload

 

7. 서버에서 Jupyter 실행

jupyter lab

(참고) conda 가상환경 내에서 실행하기 위해서는 먼저 가상환경을 활성화 한 후 위 명령어를 실행해야 한다 (conda activate 가상환경_이름).

 

(참고2) 백그라운드 실행 및 종료

더보기

백그라운드 실행

nohup jupyter notebook &

 

백그라운드 종료

ps -ef |grep 사용자명
kill -9 pid

 

8. 서버 외부에서 접속

http://서버IP:포트번호/

Chrome에서 위 주소로 들어간 후, 비밀번호를 입력하면 외부에서 서버로 Jupyter를 통해 접속할 수 있다.

728x90
반응형