[Mac] 개발서버 구축기 (7) - Jupyter Server

[Mac] 개발서버 구축기 (7) - Jupyter Server

Mac Studio를 구입한 가장 큰 이유가 머신러닝 성능때문이다. 머신러닝의 경우 대부분 Jupyter를 통해 작업을 하기 때문에 Jupyter Server를 설치해 두면 언제 어디서나 작업이 가능해 진다.

#01. Jupyter 설치

Jupyter를 설치할 때 pip 명령어를 사용하면 백그라운드 서비스 등록 및 관리 방법이 다른 서비스들과 달라지기 때문에 관리의 일관성을 위해 Homebrew를 사용해 설치했다.

$ brew install jupyterlab

#02. Jupyter 서버 설정

[1] 비밀번호 설정

(1) 비밀번호 생성

아래 명령으로 비밀번호를 생성한다.

$ jupyter lab password
출력결과

아래와 같이 비밀번호를 두 번 입력받는다. 그 후 비밀번호가 기입된 파일의 경로가 표시된다.

Enter password: ****
Verify password: ****
[JupyterPasswordApp] Wrote hashed password to /Users/leekh/.jupyter/jupyter_server_config.json

(2) 비밀번호 확인

생성된 파일을 열어 비밀번호를 확인한다. 입력한 값이 암호화 되어 있다.

이 값을 설정파일에 기입해야 한다.

$ cat ~/.jupyter/jupyter_server_config.json
출력결과

hashed_password의 값을 따옴표 없이 복사한다.

{
  "IdentityProvider": {
    "hashed_password": "생성된 비밀번호"
  }
}

[2] Jupyter 설정

(1) 설정파일 생성

아래 명령으로 설정 파일을 생성한다.

$ jupyter lab --generate-config
출력결과

아래와 같이 생성된 설정파일의 위치가 출력된다.

Writing default config to: /Users/leekh/.jupyter/jupyter_lab_config.py

(2) 설정파일 수정

vi 에디터로 설정파일을 편집한다.

$ vi ~/.jupyter/jupyter_lab_config.py

파일을 열면 맨 위에 c = get_config()라는 구문이 있다.

이 구문 아래에 다음과 같이 추가한다.

이 파일은 설정을 변경하고자 하는 사항에 대한 예시들만 들어 있기 때문에 모든 내용이 주석처리되어 있다.

상세 옵션을 설정할 경우 주석으로 기입된 내용을 잘 읽어보고 값을 입력하면 된다.

# 외부에서 Jupyter로 접속할 때 사용할 IP주소 지정 (미지정시 Local만 가능함)
c.ServerApp.ip = "*"

# Jupyter 가동시 브라우저가 자동으로 열리지 않도록 설정
c.ServerApp.open_browser = False

# 비밀번호 설정
c.ServerApp.password = "복사한값 적용"

# 포트번호 지정 (기본값=8888)
c.ServerApp.port = 9903

# 기본 디렉토리 지정(사용자의 홈디렉토리 이하 경로. 해당 폴더가 생성되어 있어야 함)
c.ServerApp.root_dir = "/Users/leekh/workspace-notebook"

# 비밀번호(앞서 생성한 값)
c.NotebookApp.password='argon2:$argon2id$v=19$m=10240,t=10,p=8$eosovHV4oK+YoLZYRIFmjA$FKRzhvliPfzNWUVd43ylG8e41itMgVBFiHZey0r0phQ'

위 옵션에서 c.ServerApp.notebook_dir을 지정하지 않으면 jupyter는 사용자 홈 디렉토리에 접속하게 된다.

[3] SSL 인증서 경로 설정

HTTPS 접속을 설정할 경우 ~/.jupyter/jupyter_lab_config.py 파일에 다음과 같이 SSL 인증서 파일의 경로를 지정해 준다.

c.ServerApp.keyfile = "/Users/leekh/.ssl/live/home.hossam.kr/privkey.pem"
c.ServerApp.certfile = "/Users/leekh/.ssl/live/home.hossam.kr/fullchain.pem"

#03. 서비스 가동 및 중지

# 시작 스크립트
$ brew services start jupyterlab

# 종료 스크립트
$ brew services stop jupyterlab
호쌤(이광호)'s Picture

About 호쌤(이광호)

메가스터디IT아카데미에서 Java, Spring, Python, Frontend 등을 강의하는 IT 전문 강사이자 프리렌서 개발자 입니다.
https://www.youtube.com/@hossam-codingclub

Seoul, Korea http://www.hossam.kr