일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- keras
- 지능형
- 안드로이드
- Python
- Linux
- RapidCheck
- Machine Learning
- 고급C
- Android
- tensorflow
- Video
- sw
- php
- MySQL
- 가상환경
- 데이터
- 디버그모드
- tracking
- detection
- Raspberry
- C언어
- FLASK
- 라즈베리파이
- 영상분석
- 정리
- IMAGE
- Deep Learning
- Object Detection
- 서버
- 머신러닝
- Today
- Total
건프의 소소한 개발이야기
[AWS-Flask 사용법] Flask 로 원격지 서버 구축 및 개발하기 - (3) 본문
안녕하세요, 건프입니다.
이번에는
로컬(내 컴퓨터) 에서 Flask 환경 설정하기
-> AWS에서 nginx 설치하기
-> AWS에서 nginx 설정하기
-> AWS에서 uwsgi 에 해당하는 gunicorn 설치 및 사용법
-> AWS에서 Flask 배포하기, supervisor 이용
-> 로컬에서 git push & AWS 에서 적용 코드 git pull 받고 서버 재시동하는 방법
에서, supervisor 프로그램으로 SSH 터미널을 닫아도, gunicorn 이 꺼지지 않고, nginx 와 함께, 메모리에 올라가있고, 연동되어 있도록 만들어 봅니다.
1. supervisor 설치
> sudo apt-get update
> sudo apt-get install -y supervisor
2. Create a configuration file
> sudo vim /etc/supervisor/conf.d/flask_settings.conf
add :
[program:flask_settings] command = << A 자리>>gunicorn <<A-1>>:<<A-2>> -b localhost:8000 directory = << B 자리>>
user = <<C 자리>>
A 자리 : 본인의 가상환경에서 which gunicorn 명령어를 쳤을때 나오는 절대주소를 써주셔야 합니다.
A-1 : 파일명
A-2 : app 명
B 자리 : 본인이 클론한 프로젝트의 pwd
C 자리 : 본인의 username
예 :
저기 중간에 보이는 --reload 는 그냥 뻘짓이니까 안쓰셔도 됩니다..ㅠ
3. Activate supervisor
> sudo pkill gunicorn
현재 켜져있는 gunicorn 을 스탑한다.
> sudo supervisorctl reread
> sudo supervisorctl update
> sudo supervisorctl start flask_settings
이렇게 하고 터미널을 종료해도
서버가 작동한다!!
4. 코드 업데이트
서버에 올려놓고, 로컬에서 추가 작업을 한뒤에, 다시 서버에 업로드할때,
그냥 로컬에서 git push 하고
원격에서 git pull 만 받는다고 코드가 업데이트 되지 않는다.
supervisor 가 gunicorn 을 메모리에 올려놓고 감사하고 있기 때문에, 아무래도 캐시되어 관리되는 것 같다.
따라서 reload 필요한데,
새로운 코드를 업로드하고
다음 명령어를 입력하면 된다.
> sudo supervisorctl restart flask_settings
이렇게 하면, nginx 서버 자체를 재구동 시키거나, 아마존 인스턴스를 재 가동 시킬 필요가 전혀 없이, 새 버전 코드를 서버에 올릴 수 있다. ㅎㅎ
(이것 찾느라 고생 많이 했습니다.. ㅠㅠ)
도움이 되었으면 좋겠습니다.
고맙습니다 :)
' 개발 이야기 > AWS-Flask 이야기' 카테고리의 다른 글
[Flask - WebSocket] 웹소켓으로 실시간 채팅 통신 구현하기 (0) | 2016.09.11 |
---|---|
[AWS-Flask 사용법] Flask 로 원격지 서버 구축 및 개발하기 - (2) (1) | 2016.07.15 |
[AWS-Flask 사용법] Flask 로 원격지 서버 구축 및 개발하기 - (1) (5) | 2016.07.15 |
[AWS-Ubuntu] 인스턴스 만들기 (0) | 2016.06.19 |