AWS 파이토치 서버 만들기

1 minute read

1. AWS 프리티어 계정으로 EC2 생성

Elastic Block Store -> 볼륨 -> 작업 -> 볼륨 수정

25 GB로 수정

2. SSH키를 사용하여 터미널 접속

lsblk

sudo growpart /dev/xvda 1

lsblk

sudo resize2fs /dev/xvda1

df -h

3. Jupyter Notebook 설치



sudo apt-get update


# Python package 설치
sudo apt-get install python3-pip

# Jupyter notebook을 설치
sudo pip3 install notebook

# Notebook에 비밀번호를 설정
python3

from notebook.auth import passwd
passwd(algorithm='sha1')



# sha1:dsfjqowjfpo   <- hash값 가지고 있기
exit()

# Jupyter 환경설정
jupyter notebook --generate-config


# vim으로 환경설정 파일 수정
vim /home/ubuntu/.jupyter/jupyter_notebook_config.py

# a누르고 파일 제일 하단에 다음 추가 후 esc -> :wq!
c = get_config()
c.NotebookApp.password = u'{아까 설정했던 hash}'
c.NotebookApp.ip = '{현재 ec2  ip}'
c.NotebookApp.notebook_dir = '/' 




# jupyter notebook root권한으로 실행
sudo jupyter notebook --allow-root


# ec2 인스턴스의 인바운드 규칙 편집
8888 추가 하여 포트열기

# 퍼블릭 ip4주소로 접속
ip:8888

# jupyter notebook이 항상 돌아가도록 설정
ctrl-z
bg
disown -h





## 인증서 적용(https)
# 8888포트로 돌아가고 있는 process를 확인
sudo netstat -nap | grep 8888


#kill 명령어로 종료
sudo kill -9 19827

cd /home/ubuntu
pwd
mkdir ssl
cd ssl

# 인증서 유효기간은 365일 
# rsa 알고리즘을 적용한 key
# 개인키(private key)는 cert.key 
# 공개키(public key)는 cert.pem 

sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout "cert.key" -out "cert.pem" -batch



# jupyter notebook 환경설정 파일을 다시 열어서 수정
vim /home/ubuntu/.jupyter/jupyter_notebook_config.py


c.NotebookApp.certfile = u'/home/ubuntu/ssl/cert.pem'
c.NotebookApp.keyfile = u'/home/ubuntu/ssl/cert.key' (  작은따음표  )


# 다시 jupyter notebook을 실행
sudo jupyter-notebook --allow-root




## 서버가 종료된 후 재부팅 되어서도 jupyter notebook 관련 명령어들이 자동으로 실행될 수 있도록, 서버시스템으로 등록
ctrl-c

# jupyter-notebook 실행파일의 위치 검색
which jupyter-notebook


# 서비스 파일을 작성
sudo vim /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



# jupyter-notebook을 실행
sudo systemctl daemon-reload


# jupyter를 사용가능한 모드로 생성
sudo systemctl enable jupyter

# jupyter를 이제 항상 실행상태 만듬
sudo systemctl start jupyter

# 확인
sudo systemctl status jupyter


# 사파리에서 퍼블릭 IPv4로 접속

4. 도커 컨테이너 설치


sudo apt install software-properties-common

curl -fsSl https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" (  큰따옴표 )

sudo apt update

apt-cache policy docker-ce

sudo apt install docker-ce

sudo docker pull hello-world

sudo docker run hello-world



5. 파이토치 서버


git clone https://github.com/YimsuSon/Torchdocker2.git

cd Torchdocker2/

sudo docker build -t test6 .

sudo docker run -d -it -p 0.0.0.0:5000:5000/tcp test11

Tags:

Categories:

Updated:

Leave a comment