제목
AI 영상 생성 API, 동기로 짰다가 3일 만에 갈아엎은 이야기
본문
크리에이터용 영상 생성 툴 만들고 있습니다. 처음엔 단순하게 봤어요. 요청 받으면 모델 호출하고 결과 리턴. REST 하나면 끝날 줄 알았습니다.
문제는 렌더링이 40초~3분씩 걸린다는 거였죠. ALB 타임아웃 60초에서 먼저 끊기고, 늘려놨더니 이번엔 워커 스레드가 다 물려서 헬스체크까지 실패하더군요. 동시 요청 20개에 서버가 누웠습니다.
결국 요청 접수 / 처리 / 결과 조회를 완전히 분리했습니다. 접수는 job_id만 즉시 반환, 실제 작업은 큐(SQS)에 넣고 워커가 소비, 프론트는 폴링 대신 SSE로 상태 push. 여기서 또 한 번 삽질한 게 멱등성이었어요. 워커가 죽고 재시도되면 같은 영상이 두 번 생성되면서