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