Amazon Elastic Container Service(Amazon ECS) 클러스터에서 중지된 Windows 작업 문제를 해결하려고 합니다.
해결 방법
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
중지된 작업 문제를 해결하려면 AWS Management Console 또는 AWS CLI를 사용하여 중지된 작업 오류를 확인하십시오. 또는 DescribeTasks를 사용하여 중지된 작업에 대한 정보를 얻으십시오.
중요: 작업이 실패한 후 1시간 이내에 DescribeTasks가 중지된 작업에 대해 가져오는 정보에만 액세스할 수 있습니다. 이 데이터를 더 오래 보관하려면 GitHub 웹사이트에 있는 amazon-ecs-stopped-tasks-cwlogs의 AWS CloudFormation 템플릿을 사용하십시오. 이 템플릿을 사용하면 작업이 중지될 때 Amazon EventBridge에서 생성하는 Amazon CloudWatch 로그를 캡처할 수 있습니다.
수신된 오류에 대해 다음 문제 해결 단계를 수행하십시오.
일반적인 중지된 작업 오류
컨테이너 인스턴스 상태 확인 문제 등과 같은 일반적인 중지된 작업 오류를 해결하려면 Amazon ECS 작업이 중지되는 이유는 무엇입니까?를 참조하십시오.
CannotPullContainerError: API 오류가 표시되는 경우, Amazon ECS에서 Amazon Elastic Container Registry(Amazon ECR) 오류 "CannotPullContainerError: API error"를 해결하려면 어떻게 해야 합니까?를 참조하십시오.
OutOfMemory 오류가 발생하는 경우, Amazon ECS에서 OutOfMemory 오류를 해결하려면 어떻게 해야 합니까?를 참조하십시오.
"No valid providers in chain" 오류
인스턴스에 ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE가 설정되지 않은 경우, "CannotStartContainerError: Error response from daemon: failed to initialize logging driver: failed to create Cloudwatch log stream: NoCredentialProviders: no valid providers in chain"과 비슷한 오류가 표시됩니다.
이 문제를 해결하려면 컨테이너 인스턴스에서 ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE를 설정해야 합니다. PowerShell 구문 예제:
<powershell>
[Environment]::SetEnvironmentVariable("ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE", $TRUE, "Machine")
Initialize-ECSAgent -Cluster cluster-name -EnableTaskIAMRole -LoggingDrivers '["json-file","awslogs"]'
</powershell>
참고: cluster-name을 해당 클러스터 이름으로 바꾸십시오.
"The container operating system does not match the host operating system" 오류
호스트 운영 체제(OS)가 Windows 컨테이너 인스턴스의 기본 이미지 OS와 일치하지 않는 경우, "CannotStartContainerError: ResourceInitializationError: failed to create new container runtime task: failed to create shim task: hcs::CreateComputeSystem abcdxyz: The container operating system does not match the host operating system"과 비슷한 오류가 표시됩니다.
이 문제를 해결하려면 AWS Fargate 또는 Amazon Elastic Compute Cloud(Amazon EC2) 호스트가 컨테이너 인스턴스와 동일한 OS를 사용하는지 확인하십시오.
"Unable to assume the role" 오류
컨테이너 인스턴스가 AWS Identity and Access Management(IAM) 역할을 맡을 수 없는 경우, "Unable to assume the role "arn:aws:iam::abcdefxyz123:role/yyyyyyyy"와 비슷한 오류가 표시됩니다.
다음 명령을 실행하여 사용자 데이터 스크립트에서 -EnableTaskIAMRole 옵션을 설정했는지 확인하십시오.
<powershell>
Import-Module ECSTools
Initialize-ECSAgent -Cluster 'windows' -EnableTaskIAMRole
</powershell>
Windows 인스턴스 구성 요구 사항을 충족하는지 확인하십시오.
관련 정보
데이터 전달을 위한 Amazon ECS Windows 컨테이너 인스턴스 부트스트래핑