Ubuntu Server - Anaconda Jupyter Notebook 원격

2020. 5. 21. 22:32Programming/Virtual Machine

 

 

 

딥러닝 공부를 하는데 있어 colab, kaggle 등의 노트북을 사용할 수도 있지만 가벼운 노트북에서 나만의 공간을 가지고 공부를 진행하기 위해 GCP의 ubuntu server를 이용한 Anaconda jupyter notebook을 원격으로 윈도우에서 작성할 수 있는 방법을 메모합니다.

 

 

1. VM Instance 생성

2. 방화벽 규칙을 정하고 외부 네트워크를 할당

3. 서버를 실행하여 아나콘다와 각종 라이브러리를 설치

4. 주피터 노트북 원격 설정

 

- vim 편집기를 사용

 

 

 

 

 

기본 설정 파일 생성


jupyter-notebook --generate-config

 

 

 

원격 연결 시 접속에 사용할 비밀번호 생성 (ipython 이용)


1. ipython 입력

ipython

 

2. 패스워드 생성

from notebook.auth import sequrity
security.passwd()

- Enter password와 Verify password 를 입력하면 out으로 'sha:...' 형식의 해쉬값을 받을 수 있음

 

 

 

 

설정 파일 수정하기 (vim 사용)


1. 디렉토리 이동

cd ~/.jupyter

 

2. 설정파일 열기

vim jupyter_notebook_config.py

 

디렉토리를 이동하지 않고 설정파일 열기

cd ~/.jupyter/jupyter_notebook_config.py

 

3. 설정파일 수정하기

 - 1) 맨 위에 입력 (본인은 맨 위에 입력)

 - 2) [esc -> /검색어] 를 통해 주석(#)을 풀고 작성해도 상관 없음

c = get_config()

c.NotebookApp.password = 'sha:~~~~' # 아까 받은 패스워드 해시값 입력
c.NotebookApp.open_browser = False
c.NotebookApp.notebook_dir = '' # 원하는 디렉토리 입력
c.NotebookApp.ip = '*'
c.NotebookApp.port = 8888 # 사용할 포트번호 입력 (기본포트면 입력 안해도 됨)

 - 다른 블로그에는 [c.JupyterApp.config_file_name = 'jupyter_notebook_config.py'] 를 입력하는데 나는 입력하지 않아도 잘 되서 그냥 안씀

 

 

4. 저장하고 나가기

[esc -> :wq! -> enter]

 

 

 

 

포트 허용(방화벽)


- 포트 번호는 자신의 포트 번호 입력

sudo ufw allow 8888

 

 

 

 

주피터 노트북 원격 연결


 - 아무거나 사용

jupyter-notebook
jupyter notebook

 

 

 

 

alias 를 사용하여 간편하게 실행


1) 현재 로그인한 계정에만 적용 시 사용

/home/계정명/.bashrc

 

 

3) 어디에 작성했는지 잊어버릴 수도 있으므로 문서 가장 아래에서 작업하는게 좋음

vim ~/.bashrc

 

 

 

1. alias 설정 내용 조회

alias

 

2. alias 등록

# 홈 디렉토리에서 등록
vim /home/계정명/.bashrc

# 루트 디렉토리
vim ~/.bashrc


# ex)
alias dir='ls -al'
alias jupy='jupyter notebook --port=8888'

 

3. 적용

source ~/.bashrc

 

4. alias 해제 (선택)

# 특정 alias
unalias [alias]

#모든 alias
unalias -a

 

 

 

Jupyter Notebook 다른 작업 수행 or 종료


1. Jupyter 노트북을 실행하고 다른 작업 하기

 - ctrl + z

 

1-1. 종료하기 (fuser)

 - fuser 사용법: info fuser

 - 8888 포트를 강제로 죽일 경우: fuser -k 8888/tcp

 

1-2 종료하기 (kill)

 - 해당 프로세스 아이디 가져오기: netstat -tnlp|grep 8888

 - 해당 프로세스 죽이기: kill -9 [아이디]

 

 

<수정>

1. import notebook auth import security -> import notebook.auth import security

'Programming > Virtual Machine' 카테고리의 다른 글

Virtual Machine의 이해  (0) 2018.08.17