Amazon ECS for Fargate에서 "dockertimeouterror unable transition start timeout after wait 3m0s" 오류를 해결하려면 어떻게 해야 하나요?

3분 분량
0

AWS Fargate에 대한 Amazon Elastic Container Service(Amazon ECS) 작업에서 "dockertimeouterror unable transition start timeout after wait 3m0s" 오류가 발생합니다.

간략한 설명

이 오류는 Fargate 작업에 네트워킹 구성 문제가 있을 때 발생합니다. Fargate의 경우 시작 제한 시간의 기본값은 3분입니다. 작업이 3분 내에 대기 중 상태에서 실행 중 상태로 전환되지 않으면 해당 작업은 실패하고 중지됨 상태로 이동됩니다.

NAT 인스턴스 또는 게이트웨이가 구성되지 않은 프라이빗 서브넷에서 실행되는 Fargate 작업의 경우 올바른 Amazon Virtual Private Cloud(Amazon VPC) 엔드포인트를 구성합니다. 다음과 같은 엔드포인트가 있어야 합니다.

  • Amazon Elastic Container Registry(Amazon ECR): 이 엔드포인트는 ECR 리포지토리에서 이미지를 가져오는 데 필요합니다.
  • Amazon Simple Storage Service(Amazon S3): Amazon ECR은 Amazon S3를 사용하여 이미지 계층을 저장하기 때문에 이 엔드포인트가 필요합니다. Amazon ECR에서 이미지를 다운로드하려면 컨테이너가 Amazon ECR에 액세스하여 이미지 매니페스트를 가져오고 Amazon S3에 액세스하여 이미지 계층을 다운로드해야 합니다.
  • AWS Secrets Manager 및/또는 AWS Systems Manager: 작업 정의에서 Secrets Manager 보안 암호 또는 Systems Manager 파라미터 스토어 파라미터를 참조하는 경우 이러한 엔드포인트가 필요합니다. Secrets Manager 또는 Systems Manager에 대한 인터페이스 VPC 엔드포인트를 생성하여 해당 작업이 서비스에 도달할 수 있도록 해야 합니다. 민감한 데이터가 호스팅되는 특정 서비스(Secrets Manager 또는 System Manager)에서만 엔드포인트를 생성해야 합니다.
  • Amazon CloudWatch: 이 엔드포인트는 Fargate 작업이 awslogs를 로깅 드라이버로 사용할 때 필요합니다. awslogs를 로깅 드라이버로 사용하는 작업은 로그를 CloudWatch로 내보냅니다. awslogs를 사용하고 CloudWatch에 대한 VPC 엔드포인트가 생성되었지만 작동하지 않는 경우 작업이 엔드포인트에 연결할 수 없습니다. 다음 오류를 받는다고 가정합니다. "DockerTimeoutError: Could not transition to started; timed out after waiting 3m0s."

해결 방법

작업 정의가 awslogs 로깅 드라이버를 사용하는지 확인합니다.

다음 단계를 완료합니다.

  1. Amazon ECS 콘솔을 엽니다.
  2. 탐색 창에서 작업 정의를 선택합니다.
  3. 작업 또는 서비스에서 사용하는 작업 정의를 선택한 다음, 작업 정의 이름을 선택합니다.
  4. 작업 정의의 컨테이너 정의 섹션에서 컨테이너 이름 열에서 컨테이너의 확장 아이콘을 선택합니다.
  5. 로그 구성 하위 섹션에서 로그 드라이버awslogs로 설정되어 있는지 확인합니다.

중요: 작업이 NAT 게이트웨이 또는 NAT 인스턴스가 없는 프라이빗 서브넷에서 실행되는 경우 VPC 엔드포인트를 사용해야 합니다.

Fargate 작업에 대한 VPC 엔드포인트가 있는지 확인

다음 단계를 완료합니다.

  1. Amazon VPC 콘솔을 엽니다.
  2. 탐색 창에서 엔드포인트를 선택합니다.
  3. 서비스 이름 필드에 com.amazonaws.region.logs가 있는지 확인합니다.

엔드포인트가 없으면 새 엔드포인트를 만듭니다.

엔드포인트가 존재하는 경우 엔드포인트가 Fargate 작업이 실행 중인 VPC와 동일한지 확인합니다. VPC 콘솔에서 이 작업을 수행하려면 엔드포인트를 선택한 다음 엔드포인트의 세부 정보 탭에서 VPC ID를 찾습니다.

엔드포인트가 Fargate 작업과 동일한 VPC에서 사용되지 않는 경우 새 엔드포인트를 생성합니다.

엔드포인트가 Fargate 작업과 동일한 VPC에서 사용되는 경우 VPC와 연결된 보안 그룹에서 다음을 확인합니다.

  • 보안 그룹의 수신 규칙은 Fargate 작업의 포트 443에서 트래픽을 허용해야 합니다.
  • Fargate 작업과 연결된 보안 그룹에는 포트 443의 트래픽을 VPC 엔드포인트로 전송하기 위한 송신 규칙이 있어야 합니다.

관련 정보

Amazon ECR 인터페이스 VPC 엔드포인트(AWS PrivateLink)

AWS 공식
AWS 공식업데이트됨 8달 전
댓글 없음

관련 콘텐츠