AWS Glue 작업의 로깅
AWS Glue 5.0에서는 모든 작업에 실시간 로깅 기능이 제공됩니다. 또한 사용자 지정 구성 옵션을 지정하여 로깅 동작을 조정할 수 있습니다. 이러한 옵션으로는 Amazon CloudWatch 로그 그룹 이름, Amazon CloudWatch 로그 스트림 접두사(AWS Glue 작업 실행 ID 및 드라이버/실행기 ID 앞에 있음), 로그 메시지의 로그 변환 패턴 설정이 있습니다. 이러한 구성을 사용하면 만료 정책이 서로 다른 사용자 지정 Amazon CloudWatch 로그 그룹의 로그를 집계할 수 있습니다. 여기에 더해 사용자 지정 로그 스트림 접두사와 변환 패턴을 사용하여 로그를 보다 효과적으로 분석할 수 있습니다. 이러한 수준의 사용자 지정을 통해 특정 요구 사항에 따라 로그 관리 및 분석을 최적화할 수 있습니다.
AWS Glue 5.0의 로깅 동작
기본적으로 시스템 로그, Spark 대몬 로그 및 사용자 AWS Glue Logger 로그는 Amazon CloudWatch의 /aws-glue/jobs/error
로그 그룹에 기록됩니다. 반면 사용자 stdout(표준 출력) 및 stderr(표준 오류) 로그는 기본적으로 /aws-glue/jobs/output
로그 그룹에 기록됩니다.
사용자 지정 로깅
다음 작업 인수를 사용하여 기본 로그 그룹 및 로그 스트림 접두사를 사용자 지정할 수 있습니다.
-
--custom-logGroup-prefix
:/aws-glue/jobs/error
및/aws-glue/jobs/output
로그 그룹에 대한 사용자 지정 접두사를 지정할 수 있습니다. 사용자 지정 접두사를 입력하는 경우 로그 그룹 이름의 형식은 다음과 같습니다.-
/aws-glue/jobs/error
은
이 됩니다.<customer prefix>
/error -
/aws-glue/jobs/output
은
이 됩니다.<customer prefix>
/output
-
-
--custom-logStream-prefix
: 로그 그룹 내에 있는 로그 스트림 이름의 사용자 지정 접두사를 지정할 수 있습니다. 사용자 지정 접두사를 입력하는 경우 로그 스트림 이름의 형식은 다음과 같습니다.-
jobrunid-driver
은
이 됩니다.<customer log stream>
-driver -
jobrunid-executorNum
은
이 됩니다.<customer log stream>
-executorNum
-
사용자 지정 접두사의 검증 규칙 및 제한 사항:
-
전체 로그 스트림 이름은 1~512자여야 합니다.
-
사용자 지정 접두사 자체는 400자로 제한됩니다.
-
사용자 지정 접두사는 정규식 패턴 `[^:*]*`(허용되는 특수 문자는 '_', '-' 및 '/')과 일치해야 합니다.
사용자 지정 스크립트 로거를 사용하여 애플리케이션별 메시지 로깅
AWS Glue 로거를 사용하면 드라이버 로그 스트림에 실시간으로 전송되는 모든 애플리케이션별 메시지를 스크립트에서 로깅할 수 있습니다.
다음 예제에서는 Python 스크립트를 보여줍니다.
from awsglue.context import GlueContext from pyspark.context import SparkContext sc = SparkContext() glueContext = GlueContext(sc) logger = glueContext.get_logger() logger.info("info message") logger.warn("warn message") logger.error("error message")
다음 예제에서는 Scala 스크립트를 보여줍니다.
import com.amazonaws.services.glue.log.GlueLogger object GlueApp { def main(sysArgs: Array[String]) { val logger = new GlueLogger logger.info("info message") logger.warn("warn message") logger.error("error message") } }
작업 진행률을 보여주는 진행률 표시줄 사용 설정
AWS Glue는 AWS Glue 작업 실행 상태를 확인하기 위해 JOB_RUN_ID-progress-bar
로그 스트림 아래에 실시간 진행률 표시줄을 제공합니다. 현재 glueContext
를 초기화하는 작업만 지원합니다. glueContext
를 초기화하지 않고 기본 Spark 작업을 실행하는 경우에는 AWS Glue 진행률 표시줄이 나타나지 않습니다.
이 진행률 표시줄에서는 5초마다 다음 진행률 업데이트를 표시합니다.
Stage Number (Stage Name): > (numCompletedTasks + numActiveTasks) / totalNumOfTasksInThisStage]
Amazon CloudWatch 로깅을 사용한 보안 구성
Amazon CloudWatch 로그에 대한 보안 구성이 활성화되면 AWS Glue는 보안 구성 이름을 포함하는 특정 명명 패턴이 있는 로그 그룹을 생성합니다.
보안 구성을 사용한 로그 그룹 이름 지정
기본 및 사용자 정의 로그 그룹은 다음과 같습니다.
-
기본 오류 로그 그룹:
/aws-glue/jobs/
Security-Configuration-Name
-role/glue-job-role
/error -
기본 출력 로그 그룹:
/aws-glue/jobs/
Security-Configuration-Name
-role/glue-job-role
/output -
사용자 지정 오류 로그 그룹(AWS Glue 5.0):
custom-log-group-prefix
/Security-Configuration-Name
-role/glue-job-role
/error -
사용자 지정 출력 로그 그룹(AWS Glue 5.0):
custom-log-group-prefix
/Security-Configuration-Name
-role/glue-job-role
/output
필수 IAM 권한
Amazon CloudWatch Logs로 보안 구성을 사용하는 경우 IAM 역할 권한에 logs:AssociateKmsKey
권한을 추가해야 합니다. 해당 권한이 포함되지 않으면 연속 로깅이 사용 중지됩니다.
또한 Amazon CloudWatch Logs에 대한 암호화를 구성하려면 Amazon Amazon CloudWatch Logs 사용 설명서의 AWS Key Management Service를 사용하여 Amazon CloudWatch 로그에서 로그 데이터 암호화를 참조하세요.
추가 정보
보안 구성 생성에 대한 자세한 내용은 AWS Glue 콘솔에서 보안 구성 관리를 참조하세요.