본문 바로가기

ETC

Ubuntu 를 Jupyter Notebook 로 접속하기

 

서버를 관리하다고면 CLI로 관리하기가 불편할 때가 있다.

특히 여러 창을 띄워야 할 때는 역시 GUI 만한 것이 없는데

이때 Jupyter Notebook을 이용하여 웹브라우저를 통해 Ubuntu에 접속하여 편하게 관리할 수 있다.

 

1. Jupyter Notebook

1.1 설치

sudo apt-get update
sudo apt-get install python3-pip
sudo pip3 install notebook

 

1.2 비밀번호 생성

출처 입력

웹 브라우저를 통해 Ubuntu에 접속하게 되었으니 지금 상태에서는 IP 만 알게 되면 누구나 접속할 수 있는 상태이다.

비밀번호를 적용시켜 아무나 접속하지 못하게 해야 한다.

python3
>>> from notebook.auth import passwd
>>> passwd()

 

위와 같이 Python3을 이용하여 패스워드의 해시값을 생성할 수 있다.

 

이렇게 얻은 해시값은 Jupyter Notebook에 적용시켜야 하니 잠시 다른 곳에 적어두자.

 

1.3 Jupyter Notebook 환경 설정 파일 설정

jupyter notebook --generate-config

 

 

위의 명령을 이용하면 한경 설정 파일 경로를 반환받는다.

 

이곳에서 위에서 만든 해시값을 적용시킬 것이다.

sudo vi /home/ubuntu/.jupyter/jupyter_notebook_config.py

c =get_config()
c.NotebookApp.password = u'패스워드 해시'
c.NotebookApp.ip = '서버ip'
c.NotebookApp.notebook_dir='/'

 

설정 파일 맨 밑에 위와 같이 추가해주자.

 

1.4 실행

sudo jupyter-notebook --allow-root

 

서버의 IP와 8888 포트로 접속하면 Jupyter Notebook 화면을 볼 수 있다.

 

 

위에서 만든 패스워드를 입력하게 되면

잘 접속이 되는 걸 볼 수 있다.

 

 

 

2. https 적용

 

2.1. 키 생성

위의 상태에서는 http 이기 때문에 중간자 공격에 매우 취약한 상태이다.

https를 적용시켜야 한다.

cd /home/ubuntu
mkdir ssl
cd ssl
sudo openssl req -x509 -nodes -days 365 
-newkey rsa:1024 -keyout "cert.key" -out "cert.pem" -batch

 

openSSL을 생성하는 모습이다.

유효기간은 365일이고

개인키는 cert.key , 공개키는 cert.pem으로 생성한다.

 

 

2.2 키 적용

다시 Jupyter Notebook 환경설정 파일로 가서

sudo vi /home/ubuntu/.jupyter/jupyter_notebook_config.py

c =get_config()
c.NotebookApp.password = u'패스워드 해시'
c.NotebookApp.ip = '서버ip'
c.NotebookApp.notebook_dir='/'
c.NotebookApp.certfile = u'/home/ubuntu/ssl/cert.pem'
c.NotebookApp.keyfile = u'/home/ubuntu/ssl/cert.key'

키를 등록시킨다.

 

2.3 실행

sudo jupyter-notebook --allow-root

 

다시 실행을 시키고 접속해보면

 

https로 접속하게 된다.

 

 

3. 백그라운드 동작

3.1 백그라운드 등록

Jupyter Notebook이 실행 중이면 아무것도 할 수 없는 상태로 있게 된다.

이 작업을 백그라운드로 이동시키고 다른 작업도 할 수 있게 해야 한다.

실행 중인 Jupyter Notebook을 종료시키고

bg
disown -h

 

 

위와 같이 백그라운드로 전환시킨다.

 

3.2 백그라운드 Jupyter Notebook 종료

백그라운드에서 동작중인 Jupyter Notebook을 종료시키고 싶다면

sudo netstat -nap | grep 8888 sudo kill -9 해당 ps

 

Kill로 종료시켜야 한다.

 

 

 

 

 

4. 시스템 서비스에 등록시키기

서버를 재부팅하더라도 Jupyter Notebook이 종료되지 않게 시스템 서비스로 등록시켜볼 것이다.

which jupyter-notebook

 

위의 명령어로 Jupyter Notebook의 실행 파일 위치를 확인하자.

 

 

 

4.1 서비스 파일 만들기

sudo vi /etc/systemd/system/jupyter.service

[Unit]
Description = Jupyter Notebook Server

[Service]
Type=simple
User=ubuntu
ExecStart=/usr/bin/sudo /usr/local/bin/jupyter-notebook --allow-root 
--config=/home/ubuntu/.jupyter/jupyter_notebook_config.py

[Install]
WantedBy=multi-user.target

 

Description 서비스의 설명란이다.

User 명령을 실행하는 User를 넣어준다.

ExecStart 어떤 명령을 수행할 것인지 넣어준다.

 /usr/bin/sudo : sudo 명령일 실행시킨다.

 /usr/local/bin/jupyter-notebook --allow-root : Jupyter Notebook 실행

 config : 환경설정 파일

 

4.2 서비스 파일 등록

sudo systemctl daemon-reload  //데몬 재로드
sudo systemctl enable jupyter //주피터 서비스를 활성화
sudo systemctl start jupyter //항상 실행상태로 만든다.
sudo systemctl status jupyter //주피터 상태 확인

 

 

 

 

'ETC' 카테고리의 다른 글

그놈의 REST 한 API  (0) 2022.09.27
HashMap 내용물 이해하기  (0) 2022.09.10
RVA to RAW 쉽게 계산하기  (0) 2022.09.04
AWS 서버 아키텍처 구축하기  (0) 2022.09.03
[C#] TDD (단위테스트) 작성하기  (0) 2020.12.07