내용으로 건너뛰기

Amazon ECS 컨테이너 로그가 CloudWatch Logs로 전송되지 않는 이유는 무엇입니까?

3분 분량
0

Amazon Elastic Container Service(Amazon ECS) 컨테이너 로그가 Amazon CloudWatch Logs에 제대로 표시되지 않습니다.

해결 방법

awslogs 로그 드라이버 수정

awslogs 로그 드라이버logConfiguration 파라미터를 작업 정의에 추가합니다. 여러 컨테이너가 있는 Amazon ECS 작업의 경우 각 컨테이너에 대해 logConfiguration 파라미터를 구성합니다.

Amazon Elastic Compute Cloud(Amazon EC2) 시작 유형이 있는 경우 Amazon ECS 컨테이너 인스턴스를 버전 1.9.0 이상으로 업데이트하십시오.

컨테이너 인스턴스가 Amazon ECS에 최적화된 Amazon Machine Image(AMI)를 사용하지 않는 경우 다음 환경 변수를 실행하여 컨테이너 에이전트를 시작합니다.

ECS_AVAILABLE_LOGGING_DRIVERS='["json-file","awslogs"]'

참고: 컨테이너 인스턴스에서 awslogs 로그 드라이버를 지정합니다.

자세한 내용은 Amazon ECS 컨테이너 에이전트 설치를 참조하십시오.

필요한 IAM 역할 권한 추가

AWS Fargate 시작 유형

AmazonECSTaskExecutionRolePolicy 정책을 Amazon ECS 작업 실행 AWS Identity and Access Management(IAM) 역할에 연결합니다. 정책에는 필수 권한인 logs:CreateLogStreamlogs:PutLogEvents 권한이 포함됩니다. 또는 사용자 지정 IAM 정책을 만들고 필요한 권한을 포함하십시오.

작업 실행 IAM 역할이 없는 Amazon EC2 시작 유형 작업

AmazonEC2ContainerServiceforEC2Role 정책을 컨테이너 인스턴스 IAM 역할에 연결합니다. 정책에는 필요한 logs:CreateLogStreamlogs:PutLogEvents 권한이 포함됩니다. 또는 사용자 지정 IAM 정책을 만들고 필요한 권한을 포함하십시오.

작업 실행 IAM 역할이 있는 Amazon EC2 시작 유형 작업

컨테이너 에이전트 구성의 경우 ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE 파라미터를 true로 업데이트합니다.

참고: 컨테이너 에이전트 파라미터의 기본값은 버전 1.16.0-1 이상의 Amazon ECS 최적화 AMI에서는 true이고 Windows에서는 false입니다.

작업 구성 정의 확인

작업 정의에서 지정된 로그 그룹이 CloudWatch Logs에 존재하지 않는 경우 로그를 전달할 수 없습니다. awslogs 로그 드라이버는 awslogs-create-grouptrue로 설정하지 않으며 로그 그룹을 자동으로 만들지 않습니다.

로그 그룹이 존재하는지 확인하려면 다음 단계를 완료하십시오.

  1. CloudWatch 콘솔을 엽니다.
  2. 탐색 창에서 Logs(로그)를 선택하고 Log groups(로그 그룹)를 선택합니다.
  3. 작업 정의에서 지정한 로그 그룹 이름을 검색합니다.
  4. 로그 그룹이 존재하지 않는 경우, Create log group(로그 그룹 생성)을 선택합니다.
  5. 작업 정의와 일치하는 로그 그룹 이름을 입력합니다.

아니면 작업 정의의 logConfiguration에서 options 블록에 **"awslogs-create-group": "true"**를 추가하여 로그 드라이버가 자동으로 로그 그룹을 만들게 허용할 수도 있습니다.

참고: IAM 정책에 logs:CreateLogGroup 권한을 포함해야 awslogs-create-group을 사용할 수 있습니다. 자세한 내용은 Amazon ECS 작업 실행 IAM 역할을 참조하십시오.

네트워크 구성 확인

작업이 Amazon Virtual Private Cloud(Amazon VPC)에서 인터넷 게이트웨이 없이 awslogs 로그 드라이버를 사용하는 경우, CloudWatch Logs용 인터페이스 VPC 엔드포인트를 만드십시오. com.amazonaws.Region.logs를 서비스로 선택합니다.

컨테이너 로그 수준 구성 확인

awslogs 로그 드라이버는 Docker에서 CloudWatch Logs로 STDOUTSTDERR I/O 스트림을 전달합니다.

로그를 구성하려면 STDOUTSTDERR I/O 스트림으로 로그를 전송하도록 애플리케이션을 업데이트하십시오. 그런 다음, 컨테이너 빌드 중에 환경 변수 또는 구성 파일을 통해 애플리케이션의 로그 수준을 구성합니다.

관련 정보

Amazon ECS용 모니터링 도구

Amazon ECS 또는 Amazon EKS의 컨테이너 로그 누락 문제를 해결하려면 어떻게 해야 합니까?

Preventing log loss with non-blocking mode in the AWSLogs container log driver(AWSLogs 컨테이너 로그 드라이버에서 비차단 모드로 로그 손실 방지)

PutAccountSetting

AWS 공식업데이트됨 6달 전
1 댓글

This article was reviewed and updated on 2026-03-11.

전문가

답글을 게시함 한 달 전