Amazon ECS에서 "ResourceInitializationError: failed to validate logger args" 오류를 해결하려면 어떻게 해야 하나요?

3분 분량
0

Amazon Elastic Container Service(Amazon ECS)에서 작업을 실행할 때 "ResourceInitializationError: failed to validate logger args" 오류가 발생합니다.

간단한 설명

Amazon ECS 작업이 definitionAmazon 작업에 정의된 Amazon CloudWatch 로그 그룹을 찾을 수 없는 경우, Amazon ECS는 ResourceInitialization 오류를 반환합니다. 다음과 같은 오류가 발생합니다.

"ResourceInitializationError: failed to validate logger args: create stream has been retried 1 times: failed to create CloudWatch log stream: ResourceNotFoundException: The specified log group does not exist. : exit status 1"

오류를 해결하려면, 작업에 대한 새 로그 그룹을 생성하세요.

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

해결 방법

시작에 실패한 작업 찾기

중요:

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

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

오류 문제 해결

ResourceInitialization 오류를 해결하려면, 다음 해결 방법을 검토하여 작업에 대한 새 로그 그룹을 생성하세요.

작업 정의에 어떤 로그 그룹이 정의되어 있는지 모를 때 오류가 반환되는 경우 다음 명령을 실행합니다.

aws ecs describe-task-definition --task-definition nginx-fargate:3 | jq -r .taskDefinition.containerDefinitions[].logConfiguration

출력에는 사용자가 CloudWatch에서 다시 생성해야 하는 로그 그룹이 설명되어 있습니다.

콘솔에서 CloudWatch 로그 그룹 생성

  1. CloudWatch 콘솔을 여세요.
  2. 탐색 모음에서 Amazon ECS 클러스터가 있는 리전을 선택합니다.
  3. 탐색 창에서, Logs를 선택한 다음, Log group을 선택하세요.
  4. Log 그룹창에서,로그 그룹 생성을 선택하세요.

AWS CLI를 사용하여 CloudWatch 로그 그룹을 생성하세요

create-log-group AWS Command Line Interface(AWS CLI) 명령을 사용하여 CloudWatch 로그 그룹을 생성하세요. 다음 예시 명령은mylogs라는 이름의 로그 그룹을 생성합니다.

참고: AWS CLI 명령을 실행할 때 오류가 발생하면, 최신 버전의 AWS CLI를 사용하고 있는지 확인하세요.

aws logs create-log-group --log-group-name mylogs

Amazon ECS 콘솔의 자동 구성 기능 사용

auto-configure 옵션은 접두사가 ecs인 작업 정의 패밀리 이름을 사용하여 사용자의 로그 그룹을 생성합니다. 다음 예시에서는 사용자의 작업 정의에 로그 구성을 지정합니다.

{  "containerDefinitions": [  
    {  
      "logConfiguration": {  
        "logDriver": "awslogs",  
        "options": {  
          "awslogs-create-group": "true",  
          "awslogs-group": "awslogs-wordpress",  
          "awslogs-region": "us-west-2",  
          "awslogs-stream-prefix": "awslogs-example"  
        }  
      }  
    }  
  ]  
}

다음 단계에 따라 사용자 지정 로그 그룹을 생성할 수도 있습니다.

  1. 로그 구성 옵션을 지정하세요.
  2. 값이 trueawslogs-create-group 키를 추가하세요. 그러면 사용자의 로그 그룹이 생성됩니다.

다음 예시에서는 작업 정의에서 옵션이 설정된 로그 구성을 지정합니다.

{  "containerDefinitions": [  
    {  
      "logConfiguration": {  
        "logDriver": "awslogs",  
        "options": {  
          "awslogs-group": "example_container",  
          "awslogs-region": "eu-west-1",  
          "awslogs-create-group": "true",  
          "awslogs-stream-prefix": "example"  
        }  
      }  
    }  
  ]  
}

**참고:**관리형 AWS Identity and Access Management(IAM) 정책 AmazonECSTaskExecutionRolePolicy에는 logs:CreateLogGroup 권한이 포함되어 있지 않습니다. awslogs-create-group 옵션을 사용하려면, logs:CreateLogGroup을 인라인 IAM 정책으로 추가하세요.