본문 바로가기

파이썬

프로젝트 서버에 올리기(1)

✅서버에 올리기 전에 필요한 설치 프로그램

      filezilla : 나중에 서버 컴퓨터에 내가 가지고 있는 컴퓨터를 원격으로 줄 수 있는 프로그램

      가비아 : 도메인 구매 사이트 

 


벌써 내움배움단 5주차 마지막을 향하고 있다.  😀    ( 그 사이에 버킷리스트프로그램도 만들어봤다..ㅎ)

오늘 주제는 이때까지 만들어 놓은 프로젝트를 서버(컴퓨터)에 올려서 다른 사람들도 주소를 통해서 접근이 가능하게 한다.

 

그럴려면 항상 컴퓨터가 켜져있어야하는데 사실상 불가능하므로 AWS클라우드를 사용해서 항상 켜 놓을 수 있는 컴퓨터를 구입해 서버로 사용하도록 했다.(EC2,elastic compute cloud : 아마존에서 제공하는 클라우드 컴퓨팅 서비스)

 

컴퓨터의 설정을 리눅스 ubuntu를 설치한다.

 -리눅스는 명령어를 통해 OS를 조작한다.

 

(1)AWS EC2에 접속하기

  윈도우를 쓰고 있기 때문에 ssh가 없으므로 git bash 프로그램을 이용한다.

 

ssh  -i  (key파일 drag하기)  ubuntu@(AWS에 적힌 내 IP주소)

※key파일은 ubuntu server를 구매하면서 다운받아진 파일이다.

 

❗만약 git bash를 종료할때 는 exit명령어를 입력하여 ssh접속을 먼저 끊어야한다!

 

👇 많이 쓰는 명령어들

ls: 내 위치의 모든 파일을 보여준다.

pwd: 내 위치(폴더의 경로)를 알려준다.

mkdir: 내 위치 아래에 폴더를 하나 만든다.

cd [갈 곳]: 나를 [갈 곳] 폴더로 이동시킨다.

cd .. : 나를 상위 폴더로 이동시킨다.

cp -r [복사할 것] [붙여넣기 할 것]: 복사 붙여넣기

rm -rf [지울 것]: 지우기

sudo [실행 할 명령어]: 명령어를 관리자 권한으로 실행한다.
sudo su: 관리가 권한으로 들어간다. (나올때는 exit으로 나옴)

 

(2)서버 세팅하기

 

  ① 파일질라를 실행해준다.

빨간색 동그라미 누르기!

왼쪽 위 표시해놓은 부분을 누르면 이렇게 창이 뜨는데 

'새 사이트' 와 프로토콜은 이미지처럼 설정해주면 된다. 호스트는 내 EC2서버의 ip를 넣어주면 된다.

 

포트는 정해진 것이므로 22로 해준다,   키 파일위치와 사용자를 다 넣어준다.

▷ 이렇게 까지 하면 오른쪽에 내가 서버 컴퓨터로 원격으로 파일을 올릴 수 있는 창이 생긴다.

 

나온 창에 팬명록이 있는 파일중에 templates,static,app.py 이 3가지 폴더를 넣어준다.

 

# python3 -> python               //python3명령어를 python으로 사용할 수 있게 하는 명령어
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10

# pip3 -> pip    //pip3명령어를 pip로 사용할 수 있게 하는 명령어 
sudo apt-get update
sudo apt-get install -y python3-pip
sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1

# port forwarding       //80포트로 들어오는 요청을 5000포트로 넘겨주는 명령어
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000

#nohup                 //강제종료하기
ps -ef | grep 'python app.py' | awk '{print $2}' | xargs kill

 

②이어서 Flask서버 실행

 

파일 세 개가 잘 들어와있는게 보인다.

그렇지만 app.py를 실행하려고 보니까 flask가 없다는 말이 뜬다

그래서 실행 할 패키지들을 설치 해주어야한다.

 

pip install flask dnspython pymongo      //내가 인터프리터에 패키지를 깔았던것을 명령어로 한 것

 

그리고 다시 python app.py를 실행하고 나면 아직 작동을 하지 않는다❗❓

③AWS에서 5000포트 열어주기

  -AWS들어가서 '보안' 목록으로 들어가서 보안그룹 클릭!

  - 그리고 보안그룹 클릭!

  -오른쪽 대각선 밑에 위치한 '인바운드 규칙편집' 클릭!

  -규칙추가 클릭!

  -

80을 넣은 이유는 밑에서 설명

  - 그러고나서 다시 주소를 쳐서 확인해보면 팬명록이 잘 나오는 것을 확인 할 수 있다....!

 

80으로 받아서 5000으로 연결해주기 위함

 

5000을 굳이 주소에 적지않아도 들어가는 이유

 

(명령어를 적어논 코드블럭에

세번째 위치한 port forwarding코드를 넣는 이유)