awslogs 로그 드라이버 사용 - AWS Batch

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

awslogs 로그 드라이버 사용

기본적으로 AWS Batch는 awslogs 로그 드라이버가 로그 정보를 CloudWatch 로그로 전송할 수 있도록 합니다. 이 기능을 사용하면 사용자는 편리한 위치에서 자신의 컨테이너에서 다양한 로그를 볼 수 있으며, 컨테이너 로그가 컨테이너 인스턴스에서 디스크 공간을 차지하는 것이 방지됩니다. 이 주제는 작업 정의에서 awslogs 로그 드라이버의 구성을 도와줍니다.

참고

AWS Batch 콘솔에서 작업 정의를 생성할 때 사용자는 로깅 구성 섹션에서 awslogs 로그 드라이버를 구성할 수 있습니다.

참고

작업 컨테이너가 로깅하는 정보 유형은 대부분 ENTRYPOINT 명령에 따라 결정됩니다. 기본적으로 수집되는 로그는 컨테이너를 로컬에서 실행했을 때 일반적으로 대화식 터미널에 표시되는 명령 출력으로 STDOUTSTDERR I/O 스트림을 나타냅니다. awslogs 로그 드라이버는 이러한 로그를 Docker에서 CloudWatch Logs로 전달하는 역할만 합니다. 다른 파일 데이터 또는 스트림을 수집할 수 있는 대체 방법을 포함해 Docker 로그가 처리되는 방식에 대한 자세한 정보는 Docker 설명서에서 컨테이너 또는 서비스 로그 보기 섹션을 참조하세요.

컨테이너 인스턴스에서 CloudWatch 로그로 시스템 로그를 전송하려면 AWS Batch에서 CloudWatch Logs 사용 섹션을 참조하세요. CloudWatch Logs에 대한 자세한 정보는 Amazon CloudWatch Logs 사용 설명서로그 파일 모니터링CloudWatch Logs 할당량을 참조하세요.

AWS Batch JobDefiniton 데이터 유형의 awslogs 로그 드라이버 옵션

awslogs 로그 드라이버는 AWS Batch 작업 정의의 다음 옵션을 지원합니다. 자세한 내용은 Docker 문서의 CloudWatch 로그 로깅 드라이버를 참조하세요.

awslogs-region

필수 항목 여부: 아니요

awslogs 로그 드라이버가 Docker 로그를 전송할 리전을 지정합니다. 기본적으로 사용되는 리전은 작업에 사용되는 리전과 동일합니다. 사용자는 여러 리전 작업의 모든 로그를 CloudWatch 로그의 단일 리전으로 전송할 수 있습니다. 이렇게 하면 한 위치에서 모든 작업을 볼 수 있습니다. 또는, 리전별로 구분하여 세분화할 수 있습니다. 그러나 이 옵션을 선택할 경우, 지정한 로그 그룹이 지정한 리전에 위치하는지 확인해야 하세요.

awslogs-group

필수 항목 여부: 선택 사항

awslogs-group 옵션을 사용하면 사용자는 awslogs 로그 드라이버가 로그 스트림을 전송할 로그 그룹을 지정할 수 있습니다. 지정되지 않은 경우 aws/batch/job이 사용됩니다.

awslogs-stream-prefix

필수 항목 여부: 선택 사항

awslogs-stream-prefix 옵션을 사용하면 사용자는 로그 스트림을 지정한 접두사, 컨테이너가 속한 AWS Batch 작업의 Amazon ECS 태스크의 ID와 연결할 수 있습니다. 이 옵션을 사용하여 접두사를 지정하는 경우 로그 스트림은 다음 형식을 취합니다.

prefix-name/default/ecs-task-id
awslogs-datetime-format

필수 항목 여부: 아니요

이 옵션은 Python strftime 형식의 여러 줄 시작 패턴을 정의합니다. 로그 메시지는 패턴과 일치하는 하나의 라인과 패턴과 일치하지 않는 나머지 라인으로 이루어져 있습니다. 따라서 일치하는 줄은 로그 메시지 간의 구분 기호입니다.

이 형식을 사용하는 사용 사례의 한 예는 스택 덤프와 같은 출력을 구문 분석하는 것이며, 그렇지 않으면 여러 항목에 기록될 수 있습니다. 올바른 패턴을 통해 단일 항목으로 캡처할 수 있습니다.

자세한 내용은 awslogs-datetime-format을 참조하세요.

awslogs-datetime-formatawslogs-multiline-pattern이 모두 구성된 경우, 이 옵션은 항상 우선순위를 갖습니다.

참고

여러 줄 로깅은 모든 로그 메시지의 정규식 구문 분석 및 일치 태스크를 수행합니다. 이는 로깅 성능에 부정적인 영향을 줄 수 있습니다.

awslogs-multiline-pattern

필수 항목 여부: 아니요

이 옵션은 정규식을 사용하여 여러 줄 시작 패턴을 정의합니다. 로그 메시지는 패턴과 일치하는 하나의 라인과 패턴과 일치하지 않는 나머지 라인으로 이루어져 있습니다. 따라서 일치하는 라인은 로그 메시지 간의 구분 기호입니다.

자세한 내용은 Docker 설명서의 awslogs-multiline-pattern을 참조하세요.

이 옵션은 awslogs-datetime-format을 구성하는 경우에 무시됩니다.

참고

여러 줄 로깅은 모든 로그 메시지의 정규식 구문 분석 및 일치 태스크를 수행합니다. 이는 로깅 성능에 부정적인 영향을 줄 수 있습니다.

awslogs-create-group

필수 항목 여부: 아니요

로그 그룹을 자동으로 생성할지를 지정합니다. 이 옵션이 지정되지 않은 경우 기본적으로 false로 설정됩니다.

주의

이 옵션은 권장되지 않습니다. 각 작업에서 로그 그룹을 생성하려고 시도하면 작업이 실패할 가능성이 높아지므로 CloudWatch Logs CreateLoggroup API 작업을 사용하여 로그 그룹을 미리 생성하는 것이 좋습니다.

참고

awslogs-create-group을 사용하기 전에 실행 역할에 대한 IAM 정책이 logs:CreateLogGroup 권한을 포함해야 합니다

작업 정의에서 로그 구성 지정

기본적으로 AWS Batch는 awslogs 로그 드라이버를 활성화합니다. 이 섹션에서는 작업의 awslogs 로그 구성을 사용자 지정하는 방법을 설명합니다. 자세한 내용은 단일 노드 작업 정의 생성 단원을 참조하십시오.

다음 로그 구성 JSON 스니펫에는 각 작업에 지정된 logConfiguration 개체가 있습니다. 하나는 awslogs-wordpress라는 로그 그룹에 로그를 보내는 WordPress 작업용이고 다른 하나는 awslogs-mysql이라는 로그 그룹에 로그를 보내는 MySQL 컨테이너용입니다. 두 컨테이너 모두 awslogs-example 로그 스트림 접두사를 사용합니다.

"logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "awslogs-wordpress", "awslogs-stream-prefix": "awslogs-example" } }
"logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "awslogs-mysql", "awslogs-stream-prefix": "awslogs-example" } }

AWS Batch 콘솔에서 wordpress 작업 정의에 대한 로그 구성은 아래 표시된 이미지와 같이 지정됩니다.

Log configuration interface showing awslogs driver with group and stream prefix options.

작업 정의 로그 구성에 awslogs 로그 드라이버로 태스크 정의를 등록하면 사용자는 CloudWatch 로그로 로그 전송을 시작할 수 있는 작업 정의를 가진 작업을 제출할 수 있습니다. 자세한 내용은 자습서: 작업 제출 단원을 참조하십시오.