ECS에서 idleTimeoutSeconds 설정하는 법

0

안녕하세요

EB에서 ECS로 플랫폼 이전을 했는데, 기존에는 발생하지 않던 408 timeout 오류가 발생합니다.

파일을 받아 S3로 저장하는 서비스를 하는 Node 16, Expressjs로 되어있는 간단한 서버입니다. 클라이언트의 네트워크가 느려 10분 이상 업로드가 지속되는 일이 많은데, 이 과정에서 timeout이 발생합니다

EB에 ALB를 붙여놨을 때는 발생하지 않았는데, ECS로 이전하고 똑같이 ALB를 붙여놓으니 5분 언저리에서 408 timeout 에러가 발생합니다

https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TimeoutConfiguration.html The idleTimeout default for HTTP/HTTP2/GRPC is 5 minutes.

이 문서에 나온대로 5분 뒤에 끊기는 것으로 보이는데, 해당 설정을 어디서 해야 하는지 궁금합니다.

ECS 콘솔이나 Task Definition에서는 추가할 수 없는 것으로 보입니다.

EB는 nginx가 붙어있어서 가능한 것으로 추측해서 ECS에 nginx container를 추가해서 proxy로 붙여봤지만 마찬가지로 같은 오류가 발생합니다.

1개 답변
0
수락된 답변

안녕하세요.

아래의 커맨드로 설정 가능한것으로 보이니[1] 한번 시험해 보시는것도 좋을것 같습니다.

 aws ecs update-service \
         --cluster <cluster-name> \
         --service <service-name> \
         --load-balancer.idleTimeout <idle-timeout-seconds>

[1] https://docs.aws.amazon.com/cli/latest/reference/ecs/update-service.html

AWS
전문가
hyp
답변함 2달 전
  • 감사합니다! 전혀 다른 문제로 발생했던걸로 해결했지만, 설정이 되는 것 확인했습니다!

    기존에 nodejs v16 이용중이였고 v20으로 업데이트했는데, v18에 기본값으로 추가된 해당 설정을 놓쳐서 발생했던 문제였습니다 https://nodejs.org/api/http.html#serverrequesttimeout

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인