서버 운영 관리 [ Tip ]

jupyter-lab 설치 방법

주피터 노트북(Jupyter Notebook)은 python의 활용부터 머신러닝 등의 분야까지 다양한 방식으로 사용되는 프로그램으로 서버의 터미널, 코드 블록으로 구동이 가능한 ipynb, python 콘솔 등의 기능을 제공하나 기능을 사용 시 웹브라우저의 새로운 탭으로 넘어가는 불편함이 있었습니다. 이번에 소개할 주피터 랩(Jupyter lab)은 이러한 기능을 개선하여 웹브라우저의 탭 1개에서 주피터 노트북의 모든 기능을 사용할 수 있게 개선 됐으며 처음 사용하는 사용자도 손쉽게 설치가 가능한 장점이 있습니다.  

 

본 매뉴얼에 적용되는 OS : Ubuntu 20.04, Ubuntu 22.04

※ 매뉴얼의 안내 및 주의 사항
  • 일반 유저, root에서 주피터 랩의 설정 및 실행을 설명합니다.
  • localhost에서의 사용법과 원격으로 접근하는 방법에 관해 설명합니다.
  • 포트 스캐닝, 해킹 툴 접근 시도의 가능성은 "모든" 가상서버에서 발생할 수 있어 반드시 별도의 보안 설정을 진행 해야합니다.
  • 사용 전 라이선스를 확인 해주시기 바라며 본 매뉴얼을 참고 후 발생한 문제에 관해 (주)스마일서브는 책임을 지지 않습니다.

 

1) root를 통한 패키지 설치
주피터 랩과 한국어 언어 팩을 설치합니다. 만일 설치가 진행되지 않는다면 python3, python3-pip가 apt로 설치가 되어있는지 확인합니다.

pip3 install jupyterlab
pip3 install jupyterlab-language-pack-ko-KR

 

2) 주피터 랩 실행 전 설정

주피터 랩을 사용하기 전 아래의 내용을 숙지해야 합니다. 

 

주피터 랩의 패스워드를 설정하는 명령어를 실행 합니다. 이때 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 

 

3) 주피터 랩 실행

주피터 랩은 아래의 두가지 방법을 통해 내부/외부에서의 통신 가능 여부를 설정할 수 있고 Ctrl + C를 통해 종료 가능합니다. 모든 서버는 외부에서의 해킹 시도가 발생 할 수 있어 방화벽 등의 설정을 철저히 해두는 것을 권장합니다.

※ 내부에서의 사용유저로 사용 시 : jupyter-lab 
root로 사용 시 : jupyter-lab --allow-root참고사항 : Ubuntu Desktop, xrdp가 서버에 설치되어 있어야 서버 내부에서 사용가능
※ 외부에서의 사용
유저로 사용 시 : 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://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).
[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}')

 

 

4) 주피터 랩 설정 파일 수정 방법
주피터 랩의 명령어는 호스팅하는 ip의 설정이나 port를 옵션으로 기재하여 사용할 수 있지만 이런 옵션을 일일히 사용하기에는 번거롭습니다. 설정파일을 별도로 생성하여 수정하면 이후로는 jupyter-lab 명령어 만으로 접근 가능합니다.

jupyter-lab  --generate-config
유저로 사용할 경우의 경로 : /home/iwinv/.jupyter/jupyter_notebook_config.py
root로 사용할 경우의 경로 : /root/.jupyter/jupyter_notebook_config.py# 변경 전 : c.ServerApp.port = 8888 > 변경 후 : c.ServerApp.port = 9999
# 변경 전 : c.ServerApp.ip = 'localhost' > 변경 후 : c.ServerApp.ip = '10.x.x.x'

 

 5) 주피터 랩 사용

서버의 웹브라우저 또는 외부 PC로 접속하면 본래는 해시 값을 통해 로그인을 시도하나 미리 설정을 진행한 상태이기에 패스워드로 로그인을 진행할 수 있습니다.

 

 

주피터 랩을 설치할 때 한국어 언어 셋도 같이 설치했기에 "Settings" > "Language"에서 인터페이스의 설정을 한국어로 변경하면 편리한 사용이 가능합니다.

 

 

런처에는 주피터 노트북에서 있던 모든 기능이 집약되어 보여지며 콘솔과 터미널을 제외한 나머지 기능은 실행 시 파일이 생성됩니다.

 

 

주피터 랩은 1개의 페이지에서 위와 같이 4개를 동시에 띄워 볼 수 있으며 웹 브라우저의 탭 기능도 지원하기에 주피터 노트북보다 좀 더 쉽게 사용이 가능합니다.