Amazon S3에서 발생하는 "Your socket connection to the server was not read from or written to within the timeout period" 오류 문제를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 1월 5일

AWS CLI(AWS 명령줄 인터페이스) 또는 AWS SDK를 사용하여 Amazon S3(Amazon Simple Storage Service)에 파일을 업로드하려고 하는데 오류가 발생합니다. 문제를 해결하려면 어떻게 해야 합니까?

간략한 설명

AWS CLI 또는 AWS SDK를 사용하여 Amazon S3에 파일을 업로드하면 다음 오류가 발생할 수 있습니다.

Your socket connection to the server was not read from or written to within the timeout period. Idle connections will be closed. (Service: Amazon S3; Status Code: 400; Error Code: RequestTimeout)
참고: AWS CLI 명령을 실행할 때 오류가 발생하는 경우 최신 버전의 AWS CLI를 사용하고 있는지 확인하세요.

클라이언트와 Amazon S3 서버 간의 연결이 20초 이상 유휴 상태이면 Amazon S3가 연결을 종료합니다. 그러면 400 RequestTimeout 오류가 발생합니다. 이 오류를 해결하려면 다음 사항을 확인합니다.

  • "Content-Length" 헤더에 설정된 바이트 수가 실제 파일 크기보다 작습니다.
  • 높은 지연 시간, 패킷 손실, 정체 등의 네트워크 문제가 있습니다.

해결 방법

"Content-Length" 헤더에 설정된 바이트 수가 실제 파일 크기보다 작은 경우

HTTP 요청을 Amazon S3로 전송하면 Amazon S3는 Content-Length 헤더에 지정된 양의 데이터를 수신할 것으로 예상합니다. S3에서 예상한 양의 데이터가 수신되지 않고 연결이 20초 이상 유휴 상태이면 연결이 종료됩니다.

따라서 Amazon S3로 전송되는 파일 크기를 확인해야 합니다. 파일은 Content-Length 헤더에 지정된 파일 크기를 준수해야 합니다. 그렇지 않으면 400 RequestTimeout 오류가 나타납니다.

높은 지연 시간, 패킷 손실, 정체 등의 네트워크 문제가 있는 경우

네트워크 연결이 느리거나 불량하여 패이 드롭되는 경우 S3는 예상 바이트 수만큼 수신될 때까지 기다립니다. 연결이 20초 이상 유휴 상태이면 S3는 연결을 종료하고 400 RequestTimeout 오류를 반환합니다. 이로 인해 오류가 발생하는 것인지 확인하려면 패킷 캡처를 수행하고 패킷 드롭이 있는지 확인합니다.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요합니까?