내용으로 건너뛰기

Fargate에서 Amazon ECS 작업의 "cannotpullcontainererror" 오류를 해결하려면 어떻게 해야 합니까?

4분 분량
0

AWS Fargate에서 Amazon Elastic Container Service(Amazon ECS) 작업을 시작할 수 있도록 "cannotpullcontainererror" 오류를 해결하고 싶습니다.

간략한 설명

"cannotpullcontainererror" 오류로 인해 Fargate의 Amazon ECS 작업이 시작되지 않을 수 있습니다. 이러한 작업을 수행하려면 이미지가 저장된 리포지토리에 ECS가 액세스할 수 있도록 Amazon Virtual Private Cloud(Amazon VPC) 네트워킹이 구성되어 있어야 합니다. 올바른 네트워킹이 구성되어 있지 않으면 Fargate의 Amazon ECS에서 이미지를 가져올 수 없으며 컨테이너를 시작할 수 없습니다.

해결 방법

"cannotpullcontainererror" 오류를 해결하려면 다음 작업을 완료하십시오.

VPC에서 Amazon ECS 인프라가 이미지 리포지토리에 도달할 수 있도록 허용하는지 확인

작업이 생성되는 서브넷에 연결된 라우팅 테이블은 Amazon ECS 인프라가 리포지토리 엔드포인트에 도달하도록 허용해야 합니다. 인터넷 게이트웨이, NAT 게이트웨이 또는 VPC 엔드포인트를 통해 엔드포인트에 도달할 수 있습니다.

AWS PrivateLink를 사용하지 않는 구성의 경우 다음 단계를 완료하십시오.

  1. Amazon VPC 콘솔을 엽니다.
  2. 탐색 창에서 서브넷을 선택합니다.
  3. ECS Fargate 작업에서 사용 중인 서브넷을 선택합니다.
  4. 라우팅 테이블 탭을 선택합니다.
  5. 대상 열에서 라우팅 테이블의 기본 경로(0.0.0.0/0)가 퍼블릭 인터넷 액세스를 허용하는지 확인합니다. 이 액세스는 NAT 게이트웨이 또는 인터넷 게이트웨이를 통해 이루어질 수 있습니다.
    중요: NAT 게이트웨이 또는 인터넷 게이트웨이는 기본 경로의 대상이어야 합니다. 라우팅 테이블 예시는 라우팅 옵션 예시를 참조하십시오. NAT 게이트웨이 또는 인터넷 게이트웨이를 사용하지 않는 경우 사용자 지정 구성에서 퍼블릭 인터넷 액세스를 허용하는지 확인하십시오.

인터넷 게이트웨이(퍼블릭 서브넷)를 사용하는 경우 작업에 퍼블릭 IP가 할당되었는지 확인하십시오. 작업 또는 서비스를 만들 때 VPC 및 보안 그룹 섹션에서 퍼블릭 IP 자동 할당사용됨으로 설정합니다.

PrivateLink를 사용하는 구성의 경우 VPC 엔드포인트의 보안 그룹이 Fargate 인프라에서 PrivateLink를 사용하도록 허용하는지 확인하십시오.

참고: 버전 1.3.0 이하를 사용하는 Fargate에서 호스팅되는 Amazon ECS 작업에는 com.amazonaws.region.ecr.dkr Amazon Elastic Container Registry(Amazon ECR) VPC 엔드포인트가 필요합니다. 또한 이러한 작업에는 Amazon Simple Storage Service(Amazon S3) 게이트웨이 엔드포인트가 필요합니다. 버전 1.4.0 이하를 사용하는 Fargate에서 호스팅되는 Amazon ECS 작업에는 com.amazonaws.region.ecr.dkrcom.amazonaws.region.ecr.api Amazon ECR VPC 엔드포인트가 필요합니다. 또한 이러한 작업에는 Amazon S3 게이트웨이 엔드포인트가 필요합니다.

PrivateLink를 사용하는 구성의 경우 다음 단계를 완료하십시오.

  1. Amazon VPC 콘솔을 엽니다.
  2. 탐색 창에서 엔드포인트를 선택합니다.
  3. 엔드포인트 목록에서 엔드포인트를 선택한 다음 서브넷 탭을 선택합니다. Amazon ECR용 VPC 엔드포인트 com.amazonaws.region.ecr.dkrcom.amazonaws.region.ecr.api가 서브넷 목록에 표시되며 Fargate 서브넷과 연결됩니다. Amazon S3 게이트웨이도 서브넷 목록에 있습니다.
    참고: 서브넷이 목록에 없는 경우 서브넷 관리를 선택합니다. 다음으로 가용 영역을 기준으로 서브넷을 선택합니다. 그런 다음 서브넷 수정을 선택합니다.
  4. 정책 탭을 선택한 다음 올바른 정책 요구 사항이 충족되는지 확인합니다.
  5. com.amazonaws.region.ecr.apcom.amazonaws.region.ecr.dkr VPC 엔드포인트에 연결된 보안 그룹이 Fargate의 Amazon ECS 작업에서 포트 443으로 들어오는 연결을 허용하는지 확인합니다. 이 설정을 확인하려면 목록에서 엔드포인트를 선택합니다.
  6. 보안 그룹 탭을 선택합니다.
  7. 그룹 ID에서 보안 그룹 ID를 선택합니다.
  8. 인바운드 규칙 탭을 선택한 다음 Fargate의 ECS 작업에서 443개의 연결을 허용하는 규칙을 볼 수 있는지 확인합니다.

VPC DHCP 옵션 세트 확인

다음 단계를 완료하십시오.

  1. Amazon VPC 콘솔을 엽니다.
  2. 탐색 창에서 내 VPC를 선택합니다.
  3. Fargate 작업이 포함된 VPC를 선택합니다.
  4. 세부 정보 탭에서 DHCP 옵션 세트의 설정을 기록해 둡니다.
  5. 탐색 창에서 DHCP 옵션 세트를 선택합니다.
  6. 기록해 둔 DHCP 옵션 세트를 선택합니다.
  7. 작업을 선택한 다음 세부 정보 보기를 선택합니다.
  8. 도메인 이름 서버AmazonProvidedDNS로 설정되어 있는지 확인합니다. AmazonProvidedDNS로 설정되어 있지 않은 경우 조건부 DNS 전달을 구성하십시오.

작업 실행 역할 권한 확인

다음 단계를 완료하십시오.

  1. AWS Identity and Access Management(IAM) 콘솔을 엽니다.
  2. 탐색 창에서 역할을 선택합니다.
  3. Fargate 작업에서 사용하는 작업 실행 역할을 선택합니다.
  4. 작업 실행 역할에 Amazon ECR에서 이미지를 가져올 권한이 있는지 확인합니다.

이미지가 존재하는지 확인

다음 단계를 완료하십시오.

  1. Amazon ECR 콘솔을 엽니다.
  2. Fargate 작업에서 이미지를 가져오는 Amazon ECR 리포지토리를 선택합니다.
  3. Amazon ECR의 URI와 태그가 작업 정의에 지정된 것과 동일한지 확인합니다. 이미지가 누락된 경우 수명 주기 정책이 이미지를 관리하는지 확인하십시오.

참고: Amazon ECR을 사용하지 않는 경우 지정된 이미지 리포지토리에 image:tag가 표시되는지 확인하십시오.

Fargate 작업에 할당된 ephemeralStorage 확인

기본적으로 Fargate 작업에는 20GiB의 임시 스토리지가 할당됩니다. 이미지 크기가 너무 크면 다음과 비슷한 오류가 표시됩니다.

"CannotPullContainerError: ref pull has been retried 1 time(s): failed to extract layer no space left on device: unknown"

참고: 이 스토리지는 임시 파일, 로그 및 기타 프로세스에 사용되므로 이미지 크기가 더 작아도 오류가 발생할 수 있습니다.

문제를 해결하려면 작업 정의에서 할당을 편집하십시오. 자세한 내용은 Amazon ECS용 Fargate 작업 임시 스토리지를 참조하십시오.

참고: 플랫폼 버전 1.4.0 이상을 사용하는 Fargate 작업에는 최소 20GiB의 임시 스토리지가 제공됩니다. 임시 스토리지의 총량을 최대 200GiB까지 늘릴 수 있습니다.

AWS 공식업데이트됨 일 년 전
댓글 없음

관련 콘텐츠