Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Heroku H12 Request timeout 문제 #6

Open
kimdg1105 opened this issue Jan 17, 2021 · 1 comment
Open

Heroku H12 Request timeout 문제 #6

kimdg1105 opened this issue Jan 17, 2021 · 1 comment
Assignees
Labels
bug Something isn't working

Comments

@kimdg1105
Copy link
Member

kimdg1105 commented Jan 17, 2021

개요

어제 테스트로 Bletcher-mix 레포지토리를 헤로쿠에 빌드 및 배포하였고 이후, 정상적으로 두 이미지가 배포 서버에서 합성 및 Cloudinary 업로드 되는 것을 확인하였다.
이 때 테스트한 샘플 이미지는 단순 바탕화면 조각 캡처로, 결과는 별다른 이미지 변화 없이 크기만 바뀌었다.

16008605071727279231490 -> 16105465071612699715644
문제는 이미지를 바꿔서 테스트 했을 때 나타났다.

문제점

로컬 환경에서 blecher-mix Django 서버를 실행하고 위 그림으로 테스트하는 경우, 다음과 같이 문제 없이 합성이 진행되었고 저장소에 업로드되는 것을 확인할 수 있었다.

스크린샷 2021-01-17 오후 4 32 41

하지만, 배포된 'bletcher-mix.herokuapp.com'에 동일한 요청을 보낼 시 에러가 나타났다.
스크린샷 2021-01-17 오후 9 18 53

  • H12 Error
    https://devcenter.heroku.com/articles/error-codes#h12-request-timeout
    : 이 에러의 경우, HTTP request를 수행하는데 30초 이상 걸릴 시 발생한다고 한다. 요청 및 작업 수행에 이상이 없더라도 response 시간이 30초를 넘는다면 무조건 이 에러를 리턴하며, 로그 창 확인 결과, 헤로쿠 프로세스(Worker)는 나머지 일을 마저 수행하는 것을 확인하였다. (즉, Node로는 status 500이 가지만, 기다리면 cloudinary에 합성 이미지만 올라가는 현상)

  • R14 Error
    https://devcenter.heroku.com/articles/error-codes#r14-memory-quota-exceeded
    : 메모리 사용량 초과 에러다. 단순 해결법은 헤로쿠를 업그레이드 하는 것. 아니라면, Gunicorn 설정을 통해 worker 수를 줄여야 한다고 한다.

해결 방안

이를 해결하는 방법으로는 다음과 같은 예시가 있었다.

스크린샷 2021-01-17 오후 9 44 18

위 방법은 HTTP request 이후, 합성하는 프로세스를 백그라운드 워커에게 맡기는 방식인 것 같다. 이를 구현하는 방법으로는 'Celery'가 대표적인 것 같았다.

또한, 이를 사용하기 위해서는 Redis나 RabbitMQ와 같은 작업을 할당할 '브로커' 설정이 필요하다.
작업해야 할 것이 생각보다 많아서 계획을 잘 짜고 시작해야 할 것 같다.

( + 거의 10년 전 사례지만 현재 우리의 문제와 비슷해서 참고) : https://spoqa.github.io/2012/05/29/distribute-task-with-celery.html

@kimdg1105 kimdg1105 added the bug Something isn't working label Jan 17, 2021
@kimdg1105 kimdg1105 self-assigned this Jan 17, 2021
@Seogeurim
Copy link
Member

문제 상황을 정확히 담아준 이슈 감사합니다 -!!!
우리의 서비스에 적합한 새로운 클라우드 서비스를 찾아보거나, 위 자료들을 참고하여 celery를 공부해봐야 할 것 같습니다!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants