본문 바로가기
개발팁

인터넷 서버 배포 방법 - AWS EC2 (Django, Flask)

by 몸에배인매너 2021. 12. 16.

 

1. aws의 EC2 > 인스턴스에서 인스턴스 시작 클릭 > Ubuntu Server 20.04 선택 > 새 키 페어 생성 후 다운받아 놓고 시작

 

2. aws 인스턴스에서 보안탭안의 보안 그룹 선택 > 인바운드(inbound) 규칙 편집

포트를 열어준다.

 

서버를 열고 난 다음엔,

GitHub에서 서버로 바로 실행시켜주는 방법과

로컬환경에서 직접 파일을 업로드 하는 방법두가지가 있다.


GitHub에서 서버실행 (feat.Django)


3. aws 인스턴스 페이지에서 인스턴스 선택 > 연결

인스턴스(가상컴퓨터) 우분투에 직접 접속된다.

 

4. Python과 git 설치 후 GitHub와 연결

sudo apt-get update     #Python3, Git 설치

git clone (github repository 주소)     #GitHub 소스코드 ec2에 넣기

 

5. 프로젝트 세팅 후 서버실행

cd (프로젝트 폴더명)     #프로젝트 폴더안으로 이동

sudo apt-get install python3-pip -y     #파이썬 패키지 다운

pip3 install django django-taggit django-taggit-templatetags2     #장고 패키지 설치

python3 manage.py makemigrations
python3 manage.py migrate

python3 manage.py runserver 0.0.0.0:8000     #서버실행

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8000    #포트번호 없애기

 

6. nohub(서버 항시 실행)설정

nohup python3 manage.py runserver 0.0.0.0:8000 &     #nohub 실행

ps -ef | grep -i 'manage.py runserver'     #서버 실행 목록

서버를 종료할 땐 첫줄에 나오는 숫자를 종료시키면 된다.

kill 20212     #nohub 끄기

 


로컬환경에서 서버실행 (feat.Flask)


3. 먼저 내가 구매한 가상컴퓨터에 접속해야한다.

Git Bash를 실행하고 aws의 키페어 파일과 내 aws의 인스턴스(가상컴퓨터)의 주소를 붙여넣기 한다.

그런다음 yes or no 에서 yes입력하면 접속완료.

 

@ 폴더 만들기: mkdir (폴더이름)

@ 파일 확인: ls

@ 폴더 들어가기: cd (폴더이름)

@ 상위폴더로: cd ..

@EC2 한방에 세팅하기     #파이썬 패키지 설치

# python3 -> python     3을 생략
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10

# pip3 -> pip     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

 

4. FileZilla로 서버에 파일을 업로드

사이트 관리자에서 아래와 같이 설정하고, 내 aws의 인스턴스(가상컴퓨터)의 주소와 키페어 파일을 삽입

그리고 파일을 끌어다 넣어준다.

 

5. 터미널에서 넣어준 파일을 실행

python app.py     #서버 실행

pip install flask     #flask 설치
pip install pymongo     #pymongo 설치
pip install dnspython     #dnspython 설치

 

6. nohub(서버 항시 실행)설정

Ctrl+C     #서버 닫기

nohup python app.py &     #서버 상시 실행
ps -ef | grep 'python app.py' | awk '{print $2}' | xargs kill     #상시실행 서버 강제 종료

 


7. 가비아 등등의 도메인 서버사이트에서 DNS설정해서  내 인스턴스 주소(숫자만)를 넣어준다.

 

'개발팁' 카테고리의 다른 글

Gitignore  (0) 2021.12.31
MongoDB  (0) 2021.12.17
Flask 서버구동 기초 원리  (0) 2021.12.15
파이썬 라이브러리  (0) 2021.12.15
1. 파이썬 문법 1회차  (0) 2021.12.14

댓글