AWS에 Flask를 활용한 python 서버구축하기(가장 쉬운방법)

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 upgrade

step2 : 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/

 

Share

3 Comments

  1. CDK

    응답

    Flask 초보라서 여기저기서 찾아봤는데, 여기 글이 가장 잘 정리되어 있네요! 좋은 글 감사합니다.

Leave Comment

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다