내용으로 건너뛰기

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

3분 분량
0

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

간략한 설명

Amazon ECS 작업이 작업 정의에 정의된 Amazon CloudWatch 로그 그룹을 찾을 수 없는 경우, Amazon ECS는 리소스 초기화 오류를 반환합니다. 다음 오류 메시지가 표시됩니다.

"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 런북을 사용하세요. 그런 다음 문제의 관련 단계를 참조하십시오.

해결 방법

중요

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

런북을 시작하는 방법에 대한 지침은 AWSSupport-TroubleshootECSTaskFailedToStart를 참고하십시오. 자동화 출력에 따라 다음 단계 중 하나를 사용합니다.

누락된 로그 그룹 식별

작업 정의에 어느 로그 그룹이 정의되어 있는지 모르고 오류가 반환되는 경우, describe-task-definition 명령을 실행합니다.

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

참고: nginx-fargate:3을 작업 정의 이름과 수정 번호로 바꾸십시오.

결과는 사용자가 CloudWatch에서 다시 생성해야 하는 로그 그룹을 설명합니다.

콘솔을 사용하여 CloudWatch 로그 그룹 생성

CloudWatch 로그 그룹을 생성하려면 CloudWatch Logs에서 로그 그룹 생성을 참조하십시오.

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

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI 오류 문제 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

CloudWatch 로그 그룹을 생성하려면 다음 create-log-group AWS CLI 명령을 실행합니다.

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

참고: mylogs을 로그 그룹 이름으로 바꾸십시오.

작업 정의에서 자동 구성 사용

Amazon ECS는 작업 정의에 awslogs-create-group: true 옵션을 추가하면 CloudWatch 로그 그룹을 자동으로 생성합니다. 이렇게 하면 작업을 실행하기 전에 로그 그룹을 수동으로 생성할 필요가 없습니다.

다음 자동 구성 방식 중 하나를 선택합니다.

옵션 1: 기본 로그 그룹 이름 사용

사용자 지정 로그 그룹 이름을 지정하지 않고 awslogs-create-group: true로 설정하면 Amazon ECS는 작업 정의 제품군 이름에 ecs를 접두사로 사용하여 로그 그룹을 자동으로 생성합니다.

다음 예에서는 필요한 최소 구성을 보여줍니다.

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

옵션 2: 사용자 지정 로그 그룹 이름 사용

조직의 특정 로그 그룹 명명 규칙이 필요한 경우 사용자 지정 로그 그룹 이름을 지정할 수 있습니다. Amazon ECS는 작업 시작 시 사용자가 지정한 이름으로 로그 그룹을 생성합니다.

다음 예에서는 사용자 지정 로그 그룹 이름을 지정하는 방법을 보여 줍니다.

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

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

자동 구성을 위한 IAM 권한을 구성하려면 CloudWatch에 Amazon ECS 로그 전송을 참조하십시오.

관련 정보

Amazon ECS 작업 정의 예시: 로그를 CloudWatch로 라우팅

1 댓글

This article was reviewed and updated on 2026-02-27.

전문가

답글을 게시함 2달 전