본문 바로가기
AWS

EC2 - 타임아웃 오류 해결방법

by 지식을 쌓는 개구리 2024. 7. 24.

문제인식

=> 현재 프로젝트인 llm프로젝트에서 고용량의 pdf을 데이터 전처리 진행해 db에 저장하는 기능이 있어 개발을 완료하고

EC2에 배포 후 진행을 하니 이런 오류가 난다.

분명 로컬 환경에서는 정상 작동되는데 오류가 나서 확인해 보니 타임아웃 때문이었다.

 

gunicorn, nginx에서 기본 시간초과 기준은 30초였기에.. 테스트를 해보니 4분 정도 걸리는 작업이라 30초가 지나니까 딱 저렇게 멈춰버리는 것을 확인했다.

=> 문제 해결은 너무나도 간단하다! gunicorn, nginx에 설정만 하나 추가해주면 된다!

 

해결방법

1. sudo vi /etc/nginx/conf.d/{본인 프로젝트 명}.conf -> nginx설정


server {
    listen 80;
    server_name 본인ip;

    client_max_body_size 100M;

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Url-Scheme $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $http_host;

        proxy_pass http://unix:/run/gunicorn.sock;

        proxy_connect_timeout 300s;
        proxy_read_timeout 300s;
        proxy_send_timeout 300s;
    }

    location /static/ {
        autoindex on;
        alias /home/ubuntu/MARU_EGG_LLM/static/;
    }

=> 이렇게 timeout관련 설정을 작성해주고

 

2. sudo vi /etc/systemd/system/gunicorn.service -> gunicorn설정

=> gunicorn도 timeout설정을 다음과 같이 추가해 주자

 

3. 재실행

sudo systemctl restart nginx

sudo systemctl daemon-reload

sudo systemctl restart gunicorn

=> 이렇게 차례대로 재실행을 마치면?

 

결과

=> 성공적으로 실행된 것을 알 수 있다!