slow API가 생겼다.
일반적으로 비동기로 처리하는 맞겠지만, 기존의 기능이 데이터 양이 늘어남에 따라 정상적으로 수행되지 않았기 때문에, 클라이언트의 업무 공백을 최소화하기 위해 서버의 timeout 시간을 조정하고자 한다. 근데 왠걸 이게 잘 안되네?
참고삼아 현재 서버 스택은 Client-> ELB-> EC2-> docker-> Nginx-> uwsgi-> flask이다.
두 개의 문서(Nginx 가이드 문서 / Nginx 가이드 문서-uwsgi)를 살펴보며 서버의 설정값을 변경해보았다.
location @app {
include uwsgi_params;
uwsgi_pass unix:///tmp/uwsgi.sock;
send_timeout 300;
uwsgi_connect_timeout 300s;
uwsgi_read_timeout 300s;
uwsgi_send_timeout 300s;
}
하지만 위 설정으로 바꿔서, docker를 아무리 재시작해도 API는 정상적으로 처리되지 못했고, 불현듯 설마 우리의 똑똑한 AWS께서 처리하고 있는거 아냐라고 찾아보니 AWS의 ELB 께서 timeout 설정값을 가지고 계셨다.
이것도 FIXME 코드이다.