카테고리 없음

EC2 인스턴스에서 Supervisor를 사용하여 Python 앱 실행

알세지 2024. 5. 26. 01:07

EC2 인스턴스에서 Supervisor를 사용하여 Python 앱 실행

1. Supervisor 설치

Amazon Linux의 경우:

sudo yum install python3-setuptools -y
sudo easy_install supervisor

Ubuntu의 경우:

sudo apt-get update
sudo apt-get install supervisor -y

2. Supervisor 설정 파일 생성 및 편집

sudo nano /etc/supervisord.conf

설정 파일 내용:

[unix_http_server]
file=/tmp/supervisor.sock

[inet_http_server]
port=*:9001

[supervisord]
logfile=/tmp/supervisord.log
logfile_maxbytes=50MB
logfile_backups=10
loglevel=info
pidfile=/tmp/supervisord.pid
nodaemon=false
minfds=1024
minprocs=200

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///tmp/supervisor.sock

[program:myapp]
command=/home/ubuntu/input-test/input-test/venv/bin/python /home/ubuntu/input-test/input-test/app.py
autostart=true
autorestart=true
stderr_logfile=/var/log/myapp.err.log
stdout_logfile=/var/log/myapp.out.log
user=ubuntu

3. Supervisor 데몬 시작 및 설정 적용

sudo supervisord -c /etc/supervisord.conf
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start myapp
sudo supervisorctl status

4. 로그 파일 확인

tail -f /var/log/myapp.out.log
tail -f /var/log/myapp.err.log

5. Flask 설치

source /home/ubuntu/input-test/input-test/venv/bin/activate
pip install flask

6. EC2 인스턴스 재부팅 시 자동 시작 설정

sudo systemctl enable supervisord
sudo systemctl status supervisord