Ubuntu 서버에서 Python 코드를 클라이언트(예: 로컬 PC)에서 실행할 수 있도록 Jupyter Notebook을 서버에서 실행하고, 클라이언트에서 접속할 수 있게 설정하는 방법
우분투 서버에는 주피터노트북이 기본 환경에 설치되지 않음. 가상환경을 만들고 설치해야하며, 이때 Gamma가 사용가능하기 위해서는 같은 가상환경에 Gamma도 설치할 것을 권장한다고 함.
# 시스템 패키지 목록 업데이트 및 업그레이드
sudo apt update
sudo apt upgrade -y
# pip 및 파이썬 관련 패키지 설치
sudo apt install python3-pip -y # Python 3용 pip 설치
sudo apt install python-is-python3 -y # python 명령어를 python3로 연결
sudo apt install python3-venv -y
# 가상환경 생성
python3 -m venv ~/jupyter-env
# 가상환경 활성화
source ~/jupyter-env/bin/activate
# 프롬프트가 바뀌었다면 가상환경이 활성화된 것입니다. 예: (jupyter-env) user@host:~$
# 가상환경에 Jupyter Notebook 설치
pip install --upgrade pip
pip install notebook
Jupyter 설정 파일 생성 (이미 했다면 생략 가능)
jupyter notebook --generate-config
설정 파일(~/.jupyter/jupyter_notebook_config.py) 수정 또는 추가
# nano ~/.jupyter/jupyter_notebook_config.py
c.ServerApp.ip = '0.0.0.0' # 모든 IP에서 접속 허용
c.ServerApp.port = 8888 # 필요 시 다른 포트 사용 가능
c.ServerApp.open_browser = False
# 안전을 위해 비밀번호 설정 필수. 비밀번호가 바로 들어가는게 아니고 아래에서 생성된 해시를 입력
c.ServerApp.password = 'argon2:$argon2id$v=19$m=10240,t=10,p=8$c1y/c0NXd7Di0JeVQc/kxg$e0mF8+bgkQ+lcD0oFBms/jmRqv9LDsDIP3udgievabU'
비밀번호 해시 생성
python3 -c "from jupyter_server.auth import passwd; print(passwd())"
서버 방화벽이나 클라우드 보안 그룹에서 포트 8888 열기
jupyter notebook 실행
# 5. Jupyter Notebook 실행
jupyter notebook
# 혹은 백그라운드 실행:
nohup jupyter notebook > jupyter.log 2>&1 &
# [1] 4595
# 중단방법
# kill 4595