Stack Building
[flask] AWS에서 flask를 활용한 파이썬 서버 구축 본문
1. AWS 시작하기
-
Amazon EC2 : https://aws.amazon.com/ko/ec2/?hp=tile&so-exp=below
-
본 예제에서의 설치버전 : Ubuntu Server 16.04 LTS (HVM), SSD Volume Type – ami-f293459c
– 첫 가입시 무료로 이용할 수 있는 인스턴스 입니다.
-
port 설정안내
– python에서 별도의 포트를 설정하지 않으면 기본으로 5000번 포트를 사용한다.
– AWS에서 보안영역에서 5000번 포트를 개방하도록 설정이 필요하다.
– 위치 : Console > NETWORK & SECURITY > Security Groups
– 해당 인스턴스 선택 후 아래와 같이 설정해준다.
2. Python 서버 설정
step1 : 서버설정 전 준비사항# 기설치된 서비스 업데이트 및 업그레이드 실시 ubuntu@ip-172-31-12-42:/$ sudo apt-get update ubuntu@ip-172-31-12-42:/$ sudo apt-get upgradestep2 : python 설치
-
버전확인을 통해 기설치 여부 확인(ASW에서 동일한 인스턴스를 만들었다면 이미 python3.5.2 설치됨)
-
만약 설치가 안되어 있다면
#python3 설치 ubuntu@ip-172-31-12-42:/$ sudo apt-get install python3.5
step3 : 도구 설치
-
pip은 각종 파이썬 라이브러리의 설치를 도와주는 도구로 꼭 설치해야 한다.
-
virtualenv라는 도구를 이용해서 다양한 파이썬 환경이 있을 때 원하는 버전의 환경으로 설정해준다. 여기서는 python3를 사용하는 환경으로 설정한다.
#python pip 설치 ubuntu@ip-172-31-12-42:/$ sudo apt-get install python3-pip ubuntu@ip-172-31-12-42:/$ sudo apt-get install virtualenv
step4 : 파이썬3 사용환경 구축
-
설치된 virtualenv를 사용해서 가상환경을 꾸며준다.
#가상환경 설정하기 ubuntu@ip-172-31-12-42:~$ virtualevn yonggari #가상환경을 위와 같이 설정하면, yonggari라는 디렉토리가 생성됩니다. #해당 디렉토리로 이동해서 가상환경을 실행 ubuntu@ip-172-31-12-42:~/yonggari$ source ./bin/activate #가상환경으로 실행되면 commandline이 다음과 같이 변경됩니다. (yonggari) ubuntu@ip-172-31-12-42:~/yonggari$ #flask 라이브러리 설치 (yonggari) ubuntu@ip-172-31-12-42:~/yonggari$ pip install flask step5 : 소스작성 및 실행
-
원하시는 편집기로 run.py라는 파일을 생성해서 코드를 작성합니다.
(yonggari) ubuntu@ip-172-31-12-42:~/yonggari$ sudo nano run.py #저장 : ctrl+o #나가기 : ctrl+x
-
run.py 코드 작성
from flask import Flask app=Flask(__name__) @app.route('/') def hello(): return 'Welcome to Yonggari lab' if __name__=='__main__': app.run(host='0.0.0.0', port=5000, debug=True)
-
실행하기
(yonggari) ubuntu@ip-172-31-12-42:~/yonggari$ python run.py
-
aws에서 생성한 instance에 public DNS에 5000번 포트로 접속
ex) http://ec2-52-****.compute.amazonaws.com:5000/
'웹' 카테고리의 다른 글
[flask] json 사용하기 (0) | 2019.08.23 |
---|---|
[redux] 미들웨어 (0) | 2019.04.15 |
[react] 컴포넌트 (0) | 2019.04.13 |
[react] 예제 코드 분석 (0) | 2019.04.13 |
[react-redux] 리덕스 기초 (0) | 2019.04.13 |