Flask로 웹 서버를 구축하는 과정에 대해서 정리합니다.
Static IP setting
관리의 편리함을 위해 서버가 재가동 되어도 동일한 IP를 유지하도록 설정하고자 한다. 현재 사용하고 있는 것은 AWS의 가상 서버이기에 콘솔에서 변경해보자.
lightsail 콘솔에 들어가면 네트워킹이라는 섹션이 있다. 이를 클릭하면 위 사진과 같이 “고정 IP 생성”이라는 버튼을 찾을 수 있다.
“고정 IP 생성”을 클릭하면 위 사진과 같이 고정 IP를 내가 보유하고 있는 인스턴스에 설정할 수 있다. 나의 경우 이미 붙여놓은 상태라서 연결에 사용할 인스턴스가 없다고 보여진다. 인스턴스 선택하고 해당 IP의 이름을 붙여준 뒤 생성 버튼을 누르면 설정은 끝난다.
Firewall setting
그 다음으로는 웹 서버가 사용할 포트를 오픈해야 한다. AWS lightsail의 경우 기본적으로 Http와 Https 포트는 개방되어 있다. 사용하고자 하는 포트를 추가하려면 “규칙 추가”를 눌러 포트를 추가해준다.
Python setting
이 프로젝트에서 사용하는 프레임워크는 플라스크(Flask)이다. 파이썬 기반의 환경을 셋팅해보자.
먼저 파이썬 버전을 확인한다.
1 | > python3 --version |
python3이 설치되어 있다면 다음으로 파이썬 패키지 매니저인 pip를 설치한다.
1 | # 패키지 업데이트 |
Flask 웹 서버 구동하기
다음으로는 웹 서버를 구동해보자. 이를 위해 해당 서버에 소스 파일을 가져온다. 나의 경우 로컬에 있는 소스들을 tar로 묶은 다음 scp로 복사했다.
이제 웹 서버를 올리기 위해 필요한 패키지들을 설치한다.
1 | # 파이썬 컴파일러 업데이트 |
소스 파일 requirement.txt
에는 해당 웹 서버 구동에 필요한 라이브러리들이 정리되어 있다. 이를 위 코드처럼 한번에 설치할 수 있다. requirement.txt
의 내용은 아래와 같다.
1 | # requirement.txt list |
설치가 완료되었다면 아래의 명령어로 웹 서버를 실행한 후, 접속해보자.
1 | sudo python3 __init__.py run |
정상적으로 접속이 된다면 이제 백그라운드에서 웹 서버를 구동시키면 된다. 웹 서버를 구동시키는 방법은 아래와 같다.
1 | nohup sudo python3 -u __init__.py run & |
nohup을 사용하여 구동하면 웹 서버에 로그가 nohup.out에 작성된다.