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를 통해 접속할 수 있다.
'Computer Science > Jupyter' 카테고리의 다른 글
[Jupyter] Jupyter에 관한 소소하지만 유용할 수 있는 정보 (0) | 2021.03.31 |
---|---|
[R kernel] 주피터에서 R 사용하기 (0) | 2021.03.22 |
[Jupyter] Jupyter에서 다중 커널 이용하기 (Kernel) (0) | 2021.03.05 |
[Jupyter] Python library를 설치해도 import가 되지 않을 때 (0) | 2021.02.09 |
[Jupyter] Jupyter 주요 단축키 모음 (0) | 2021.02.08 |