프리 티어 기간이 끝나서, AWS 계정을 새로 만들어야 하는 상황이 왔다.

서버를 구축한 게 1년 전의 일이라 기억이 가물했는데, 어떻게든 과거의 흔적을 더듬어서 다음 번에 다시 서버 구축할 때는 편하게 하려고 여기에 적어두기로 했다.

EC2 서버 구축은 아래의 링크를 참고했다.

 

https://yoonhoohwang.tistory.com/8

 

[AWS] EC2 Instance 로 Ubuntu 환경 구축하기

안녕하세요. 오늘은 요즘 핫한 Amazon Web Service 의EC2 서비스를 사용해보겠습니다. EC2 란? 확장식 컴퓨팅을 제공하는 것인데, 필요한 만큼 가상의 서버의 하드웨어를 확장 및 축소를 할 수 있어비용

yoonhoohwang.tistory.com

 

해당 링크에서는 우분투가 18.04 버전이지만 나는 20.04로 인스턴스를 생성했다.

또한 .bash_history 파일을 긁어와 과거의 내가 어떻게 서버를 구축했는지도 참고했다.

아래는 내역이다.

 

참고한 블로그는 아래와 같다.

https://surprisecomputer.tistory.com/46

 

[Python] Ubuntu:18.04 에서 jupyter notebook 사용하기

1. 서론 빠른 개발을 원하는 환경에서는 jupyter notebook을 사용하는 경우가 많다. 워낙 편리하기도 하고 직접 AWS 같은 서비스를 사용할 때도 콘솔로 접속하지 않아도 사용할 수 있기 때문이다. 물론

surprisecomputer.tistory.com

 

 

sudo apt-get update
sudo apt-get install python3-pip
sudo pip3 install notebook
sudo pip3 install jinja2 --upgrade && sudo pip3 install notebook --force-reinstall
python3

일단 여기까지 해주고 파이썬으로 아래 코드를 입력해, 주피터 노트북에 접속할 때 사용할 비밀번호를 입력해준다. 우분투 20.04 버전에서는 sudo 명령어를 입력해 jinja를 깔아줘야 한다. 그렇지 않으면 버전 오류가 발생한다.

# from notebook.auth import passwd
# passwd()

# 위의 값은 더 이상 작동하지 않는다.
from jupyter_server.auth import passwd
passwd()​

# 이후 발생하는 hash값 복사해두기 'argon2~'

 

파이썬에서의 입력을 마치면 파이썬을 종료하고 다시 Bash 창으로 돌아온다.

jupyter notebook --generate-config
sudo vi /home/ubuntu/.jupyter/jupyter_notebook_config.py

위 내용을 입력하면 VIM에서 jupyter_notebook_config.py 파일을 수정하게 된다.

그러면 여기서 입력해줘야 할 게 있다.

# 파일 가장 상단에 작성
c = get_config() # 환경설정 변수 생성

# 위에서 생성한 해쉬값 입력
c.ServerApp.password = u'argon2:~'

c.ServerApp.ip = '0.0.0.0' # 아이피 주소입력
# 근데 이거 0.0.0.0으로 하면 누구나 접근 가능이니 접근 막고 싶으면 IP 설정 추천한다.

c.ServerApp.notebook_dir = '/' # 주피터 노트북이 사용할 디렉토리 경로

jupyter_notebook_config.py에 있는 해당 부분의 주석(#)을 지우고 해당 정보를 입력하면 된다. 이후에 :wq를 입력하고 빠져나온다.

pip install tweepy
jupyter notebook # 이걸 했을 때 localhost binding이 아니면 됐다.
sudo nano /etc/systemd/system/jupyter.service

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

 

그리고 나서 아래의 일련의 과정을 따라하면 끝이다.

sudo systemctl daemon-reload
sudo systemctl enable jupyter
sudo systemctl start jupyter
sudo systemctl status jupyter
sudo systemctl restart jupyter

 

나는 이후 한참이나 주피터 노트북 접속이 안 된다고 해멨는데, 알고보니 주소를 잘못 입력하고 있었다. 또 내가 같은 실수 할까봐 달아놓는다...

 

curl ifconfig.me

이걸 입력해서 나오는 ip 주소에 포트 8888으로 접속하면 된다...