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로 붙여봤지만 마찬가지로 같은 오류가 발생합니다.

Mark
已提问 2 个月前109 查看次数
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

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则