Amazon ECS EC2 시작 유형 작업에서 “CannotPullContainerError” 오류를 해결하려면 어떻게 해야 하나요?

4분 분량
0

Amazon Elastic Container Service(Amazon ECS)에서 EC2 작업을 시작할 때 다음 오류가 발생합니다. "CannotPullContainerError".

간단한 설명

CannotPullContainerError는 다음 문제 중 하나로 인해 발생합니다.

  • 잘못 구성된 네트워크로 인해 Amazon Elastic Compute Cloud(Amazon EC2) 시작 유형 작업에서 이미지를 가져올 수 없습니다.
  • AWS Identity and Access Management(IAM) 역할에 이미지를 가져올 수 있는 올바른 권한이 없습니다.
  • DockerHub 속도 제한이 있습니다.
  • 이미지 이름 또는 태그가 존재하지 않습니다.

시작에 실패한 Amazon ECS 작업의 오류를 해결하려면 AWSSupport-TroubleshootECSTaskFailedToStart 런북을 사용하세요. 그런 다음 문제에 대한 관련 문제 해결 단계를 참조하세요.

해결 방법

중요:

  • ECS 클러스터 리소스가 위치한 동일한 AWS 리전에서 AWSSupport-TroubleshootECSTaskFailedToStart 런북을 사용합니다.
  • 런북을 사용할 때는 가장 최근에 실패한 작업 ID를 사용해야 합니다. 실패한 작업이 Amazon ECS 서비스의 일부인 경우 해당 서비스에서 가장 최근에 실패한 작업을 사용합니다. 실패한 작업은 자동화 중에 ECS:DescribeTasks에 표시되어야 합니다. 기본적으로 중지된 ECS 작업은 중지됨 상태로 전환된 후 1시간 동안 표시됩니다. 가장 최근에 실패한 작업 ID를 사용하면 작업 상태 정리가 자동화 중에 분석을 중단하는 것을 방지할 수 있습니다.

런북을 시작하는 방법에 대한 지침은 AWSSupport-TroubleshootECSTaskFailedToStart를 참조하세요. 자동화 결과에 따라 다음 수동 문제 해결 단계 중 하나를 사용하세요.

Amazon ECS 컨테이너 인스턴스 네트워크 구성이 올바르지 않습니다

Amazon ECS 컨테이너 인스턴스가 인터넷에 연결되어 있지 않으면 Amazon Elastic Container Registry(Amazon ECR) 엔드포인트에 연결할 수 없습니다. 엔드포인트에 연결되지 않으면 인스턴스가 이미지를 가져올 수 없습니다. ECS 컨테이너 인스턴스가 인터넷에 액세스할 수 있는지 확인하려면 다음 사항을 검토하세요.

IAM 역할에 이미지를 가져오기 위한 적절한 권한이 없음

인스턴스 프로필과 연결된 인스턴스 IAM 역할에 Amazon ECR 리포지토리에 액세스할 권한이 있는지 확인합니다.

참고: AWS 관리형 정책인 AmazonEC2ContainerRegistryReadOnly는 이미지를 가져오는 데 필요한 최소 권한을 제공합니다.

DockerHub 가져오기 속도 한도에 도달함

DockerHub에서 이미지를 가져오려고 하는데 가져오기 속도 제한에 도달한 경우 다음 오류 메시지가 표시됩니다.

"CannotPullContainerError: inspect image has been retried 5 time(s): httpReaderSeeker: failed open: unexpected status code https://registry-1.docker.io/v2/manifests/sha256:2bb501e6429 Too Many Requests - Server message: toomanyrequests:"

이 문제를 해결하려면 Amazon ECS에서 “CannotPullContainerError: You have reached your pull rate limit" 오류를 해결하려면 어떻게 해야 하나요?의 단계를 검토하세요.

이미지 이름 또는 태그가 존재하지 않음

작업 정의에 정의된 Amazon ECR에 호스팅된 이미지 또는 관련 태그가 존재하지 않는 경우 다음 오류가 발생합니다.

"Cannotpullcontainererror: pull image manifest has been retried 1 time(s): failed to resolve ref 123456789.dkr.ecr.ap-southeast-2.amazonaws.com/image-name:tag: 123456789**.dkr.ecr.ap-southeast-2.amazonaws.com/image-name:tag: not found**"

이 문제를 해결하려면 작업 정의에서 이미지 필드를 확인하세요. 가져오는 컨테이너 레지스트리에 해당 리포지토리와 정의된 태그가 있는지 확인합니다.

작업이 Amazon ECR이 아닌 레지스트리에서 이미지를 가져왔고 정보가 누락된 경우 다른 오류가 발생합니다. 이미지가 없거나, 태그가 없거나, 레지스트리 자격 증명이 제공되지 않은 경우 다음 오류가 발생합니다.

"Cannotpullcontainererror: pull image manifest has been retried 1 time(s): failed to resolve ref docker.io/library/invalid-name:non-existenttag: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed"

이 문제를 해결하려면 작업 정의에서 이미지 필드를 확인합니다. 해당 컨테이너 레지스트리에 이미지가 있는지 확인합니다. 이미지가 있는 경우 올바른 보안 인증 정보를 입력했는지 확인합니다. 자세한 내용은 작업에 대한 프라이빗 레지스트리 인증을 참조하세요.

댓글 없음