서버를 관리하다고면 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 |