AWS Glue 작업에 대한 지속 로깅 사용 설정 - AWS Glue

AWS Glue 작업에 대한 지속 로깅 사용 설정

AWS Glue 콘솔을 사용하거나 AWS Command Line Interface(AWS CLI)를 통해 지속 로깅을 활성화할 수 있습니다.

AWS CLI를 통해 새 작업을 생성하거나, 기존 작업을 편집하거나, 해당 작업을 활성화할 때 표준 필터를 사용하거나 필터를 사용하지 않고 지속 로깅을 활성화할 수 있습니다. 표준 필터를 선택하면 유용하지 않은 Apache Spark 드라이버/실행기 및 Apache Hadoop YARN 하트비트 로그 메시지가 제거됩니다. 필터 없음을 선택하면 모든 로그 메시지가 제공됩니다.

Amazon CloudWatch 로그 그룹 이름, AWS Glue 작업 실행 ID 드라이버/실행기 ID 앞의 CloudWatch 로그 스트림 접두사 및 로그 메시지에 대한 로그 변환 패턴 등의 사용자 정의 구성 옵션을 지정할 수도 있습니다. 이러한 구성을 사용하면 만료 정책이 서로 다른 사용자 지정 CloudWatch 로그 그룹에 집계 로그를 설정하고 사용자 지정 로그 스트림 접두사 및 변환 패턴을 사용하여 더 자세히 분석할 수 있습니다.

AWS Management Console 사용

AWS Glue 작업을 생성하거나 편집할 때 콘솔에서 지속 로깅을 활성화하려면 다음 절차를 수행합니다.

지속 로깅으로 새 AWS Glue 작업을 생성하려면
  1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/glue/에서 AWS Glue 콘솔을 엽니다.

  2. 탐색 창에서 작업을 선택합니다.

  3. 작업 추가를 선택합니다.

  4. [작업 속성 구성(Configure the job properties)]에서 [모니터링 옵션(Monitoring options)] 섹션을 확장합니다.

  5. 이 작업에 사용하려면 [연속 로깅(Continuous logging)]을 선택합니다.

  6. [로그 필터링(Log filtering)]에서 [표준 필터(Standard filter)] 또는 [필터 없음(No filter)]을 선택합니다.

기존 AWS Glue 작업에 대한 지속 로깅을 활성화하려면
  1. https://console.aws.amazon.com/glue/에서 AWS Glue 콘솔을 엽니다.

  2. 탐색 창에서 작업을 선택합니다.

  3. 작업 목록에서 기존 작업을 선택합니다.

  4. 작업, 작업 편집을 선택합니다.

  5. [모니터링 옵션(Monitoring options)] 섹션을 확장합니다.

  6. 이 작업에 사용하려면 [연속 로깅(Continuous logging)]을 선택합니다.

  7. [로그 필터링(Log filtering)]에서 [표준 필터(Standard filter)] 또는 [필터 없음(No filter)]을 선택합니다.

새로 생성된 모든 AWS Glue 작업에 대한 지속 로깅을 활성화하려면
  1. https://console.aws.amazon.com/glue/에서 AWS Glue 콘솔을 엽니다.

  2. 탐색 창에서 작업을 선택합니다.

  3. 오른쪽 상단 모서리에서 사용자 설정을 선택합니다.

  4. [모니터링 옵션(Monitoring options)] 제목 아래에서 [연속 로깅(Continuous logging)]을 선택합니다.

  5. [로그 필터링(Log filtering)]에서 [표준 필터(Standard filter)] 또는 [필터 없음(No filter)]을 선택합니다.

이러한 사용자 설정은 AWS Glue 작업을 생성할 때 또는 기존 작업을 편집하여(이전 설명 참조) 명시적으로 재정의하지 않는 한 모든 새 작업에 적용됩니다.

AWS CLI 사용

지속 로깅을 활성화하려면 작업 파라미터를 AWS Glue 작업에 전달합니다. 표준 필터를 사용하려는 경우 다른 AWS Glue 작업 파라미터와 유사한 다음과 같은 특별 작업 파라미터를 전달합니다. 자세한 정보는 AWS Glue에서 사용하는 작업 파라미터을 참조하십시오.

'--enable-continuous-cloudwatch-log': 'true'

필터 없음을 원하는 경우 다음을 사용합니다.

'--enable-continuous-cloudwatch-log': 'true', '--enable-continuous-log-filter': 'false'

사용자 정의 Amazon CloudWatch 로그 그룹 이름을 지정할 수 있습니다. 지정하지 않으면 기본 로그 그룹 이름은 /aws-glue/jobs/logs-v2/입니다.

'--continuous-log-logGroup': 'custom_log_group_name'

사용자 정의 Amazon CloudWatch 로그 스트림 접두사를 지정할 수 있습니다. 지정하지 않으면 기본 로그 스트림 접두사는 작업 실행 ID입니다.

'--continuous-log-logStreamPrefix': 'custom_log_stream_prefix'

사용자 지정 지속적 로깅 변환 규칙을 지정할 수 있습니다. 지정하지 않으면 기본 변환 패턴은 %d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n입니다. 변환 패턴은 드라이버 로그 및 실행기 로그에만 적용되며 AWS Glue 진행률 표시줄에는 영향을 주지 않습니다.

'--continuous-log-conversionPattern': 'custom_log_conversion_pattern'

사용자 지정 스크립트 로거를 사용하여 애플리케이션별 메시지 로깅

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]

지속 로깅을 사용한 보안 구성

CloudWatch 로그에 보안 구성이 사용되는 경우 AWS Glue는 연속 로그에 대해 다음과 같은 이름의 로그 그룹을 생성합니다.

<Log-Group-Name>-<Security-Configuration-Name>

기본 및 사용자 정의 로그 그룹은 다음과 같습니다.

  • 기본 연속 로그 그룹은 /aws-glue/jobs/logs-v2-<Security-Configuration-Name>입니다.

  • 사용자 정의 연속 로그 그룹은 <custom-log-group-name>-<Security-Configuration-Name>입니다.

CloudWatch Logs로 보안 구성을 사용하는 경우 IAM 역할 권한에 logs:AssociateKmsKey를 추가해야 합니다. 해당 권한이 포함되지 않으면 연속 로깅이 사용 중지됩니다. 또한 CloudWatch Logs에 대한 암호화를 구성하려면 Amazon CloudWatch Logs User GuideEncrypt Log Data in CloudWatch Logs Using AWS Key Management Service를 참조하세요.

보안 구성 생성에 대한 자세한 내용은 AWS Glue 콘솔의 보안 구성 관련 작업 섹션을 참조하세요.