Jupyter-lab 설치 방법

주피터 노트북(Jupyter Notebook)은 python의 활용부터 머신러닝 등의 분야까지 다양한 방식으로 사용되는 프로그램으로
서버의 터미널, 코드 블록으로 구동이 가능한 ipynb, python 콘솔 등의 기능을 제공하나 기능을 사용 시 웹브라우저의 새로운 탭으로 넘어가는 불편함이 있었습니다.
이번에 소개할 주피터 랩(Jupyter lab)은 이러한 기능을 개선하여 웹브라우저의 탭 1개에서 주피터 노트북의 모든 기능을 사용할 수 있게 개선 됐으며
처음 사용하는 사용자도 손쉽게 설치가 가능한 장점이 있습니다.
가이드 사전 안내
서버 환경
- OS : Ubuntu 20.04, Ubuntu 22.04
안내 사항
- 일반 유저, root에서 주피터 랩의 설정 및 실행을 설명합니다.
- localhost에서의 사용법과 원격으로 접근하는 방법에 관해 설명합니다.
주의 사항
- 포트 스 캐닝, 해킹 툴 접근 시도의 가능성은 "모든" 가상서버에서 발생할 수 있어 반드시 별도의 보안 설정을 진행 해야합니다.
- 사용 전 라이선스를 확인 해주시기 바라며 본 매뉴얼을 참고 후 발생한 문제에 관해 (주)스마일서브는 책임을 지지 않습니다.
설치 방법
root를 통한 패키지 설치
주피터 랩과 한국어 언어 팩을 설치합니다. 만일 설치가 진행되지 않는다면 python3, python3-pip가 apt로 설치가 되어있는지 확인합니다.
pip3 install jupyterlab
pip3 install jupyterlab-language-pack-ko-KR
주피터 랩 실행 전 설정
- 주피터 랩은 기본적으로 내부에서의 접속을 지원하며 Ubuntu Desktop, Xrdp 등을 설치 한 뒤 접속하여 사용이 가능하다.
- 외부에서의 접속도 지원되며 기능 중 터미널의 경우 권한 탈취시 발생할 수 있는 문제로 root 계정의 사용은 권장되지 않는다.
- 방화벽(TCP 8888) 포트는 서버 및 ELCAP 웹방화벽에서 특정 IP만 접속이 가능하도록 설정해야 하며 명령어 사용 권한 등을 체크해야 한다.
주피터 랩의 패스워드를 설정하는 명령어를 실행 합니다.
이때 jupyter_server_config.json 파일을 통해 패스워드의 해시 값이 설정됩니다.
jupyter server password
Enter password:
Verify password:
유저에서 명령어를 사용했을 경우의 경로 : [JupyterPasswordApp] Wrote hashed password to /home/iwinv/.jupyter/jupyter_server_config.json
root에서 명령어를 사용했을 경우의 경로 : [JupyterPasswordApp] Wrote hashed password to /root/.jupyter/jupyter_server_config.json
주피터 랩 실행
주피터 랩은 아래의 두가지 방법을 통해 내부/외부에서의 통신 가능 여부를 설정할 수 있고 Ctrl + C를 통해 종료 가능합니다.
모든 서버는 외부에서의 해킹 시도가 발생 할 수 있어 방화벽 등의 설정을 철저히 해두는 것을 권장합니다.
※ 내부에서의 사용유저로 사용 시 : jupyter-lab
root로 사용 시 : jupyter-lab --allow-root
참고사항 : Ubuntu Desktop, xrdp가 서버에 설치되어 있어야 서버 내부에서 사용가능
[I ServerApp] Jupyter Server 2.12.5 is running at:
[I ServerApp] http://localhost:8888/lab
[I ServerApp] http://127.0.0.1:8888/lab
[I ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
※ 외부에서의 사용
유저로 사용 시 : jupyter-lab --ip 10.x.x.x
root로 사용 시 : jupyter-lab --ip 10.x.x.x --allow-root추가 옵션 : --port 9999 (임의의 포트 수정 가능)
[I ServerApp] Jupyter Server 2.12.5 is running at:
[I ServerApp] http://10.x.x.x:8888/lab
[I ServerApp] http://127.0.0.1:8888/lab
[I ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
주피터 랩은 서비스 패키지가 제공되지 않아 기본적으로는 터미널에서 실행해야 합니다.
"> jupyter.log 2>&1 &"는 주피터 랩이 실행될 시에 발생되는 메세지를 로그파일로 저장하고 터미널의 백그라운드에서 실행될 수 있도록 합니다.
jupyter-lab --ip 10.x.x.x > jupyter.log 2>&1 &
백그라운드에서 주피터 랩이 작동할 때 종료하고자 할 경우 아래의 명령어를 사용합니다.
kill -9 $(ps -ef |grep -i "jupyter-lab" |grep -i "bin" |awk '{print $2}')