AWS Glue 작업이 Amazon CloudWatch에 로그를 쓰지 않는 이유는 무엇입니까?

최종 업데이트 날짜: 2021년 7월 28일

내 AWS Glue가 추출, 로드 및 변환(ETL) 작업에서 Amazon CloudWatch에 로그를 기록하지 않습니다.

간략한 설명

AWS Glue 작업에서 로그를 CloudWatch로 푸시하지 않는 경우 다음을 확인하세요.

  • 필요한 모든 AWS Identity and Access Management(IAM) 권한이 AWS Glue 작업에 있는지 확인합니다.
  • CloudWatch Logs 서비스가 사용할 수 있도록 AWS Key Management Service(AWS KMS) 키가 설정되었는지 확인합니다.
  • IAM 권한 logs:AssociateKmsKey가 AWS Glue 역할에 연결되어 있는지 확인합니다.
  • AWS Glue Spark ETL 작업에 대해 연속 로깅을 활성화하지 않은 경우 로그 집계 전에 작업이 실패했는지 확인합니다.
  • 올바른 CloudWatch 로그 그룹을 확인하고 있는지 확인합니다.

해결 방법

CloudWatch 로그 그룹에 대한 생성 및 쓰기를 위한 IAM 권한이 AWS Glue 작업 역할에 없음

관리형 AWSGlueServiceRole 정책을 사용하지 않는 경우 ETL 작업에 연결된 IAM 역할에 CloudWatch와 상호 작용할 수 있는 다음과 같은 필수 권한이 있어야 합니다. 작업에서 사용자 지정 로그 그룹을 사용하는 경우 IAM 정책이 사용자 지정 로그 그룹에 대한 액세스를 제공해야 합니다.

{
    "Effect": "Allow",
    "Action": "cloudwatch:PutMetricData",
    "Resource": [
        "*"
    ]
},
{
    "Effect": "Allow",
    "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents"
    ],
    "Resource": [
        "arn:aws:logs:*:*:/aws-glue/*",
        "arn:aws:logs:*:*:/customlogs/*"
    ]
}

arn:aws:logs:*:*:/customlogs/*를 사용자 지정 로그 그룹의 ARN으로 바꿔야 합니다.

사용된 AWS KMS 키가 CloudWatch Logs 서비스에 필요한 권한을 부여하지 않습니다.

AWS Glue 작업에서 보안 구성을 사용하는 경우 CloudWatch Logs 서비스가 사용할 수 있도록 보안 구성에 연결된 AWS KMS 키를 설정해야 합니다. AWS KMS 키에 다음 정책을 연결합니다.

{
    "Effect": "Allow",
    "Principal": {
        "Service": "logs.region.amazonaws.com"
    },
    "Action": [
        "kms:Encrypt*",
        "kms:Decrypt*",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:Describe*"
    ],
    "Resource": "*",
    "Condition": {
        "ArnEquals": {
            "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:us-west-2:1111222233334444:log-group:log-group-name"
        }
    }
}

정책에서 다음 항목을 바꿔야 합니다.

  • us-west-2를 사용자의 AWS 리전으로 변경
  • 1111222233334444를 사용자의 AWS 계정 ID로 변경
  • log-group-name을 사용자의 로그 그룹 이름으로 변경.

자세한 내용은 AWS Key Management Service를 사용하여 CloudWatch Logs의 로그 데이터 암호화를 참조하세요.

또한 IAM 권한 logs:AssociateKmsKey가 AWS Glue 역할에 연결되어 있는지 확인합니다. 자세한 내용은 연속 로깅을 사용한 보안 구성을 참조하세요.

AWS Glue Spark ETL 작업에 대해 연속 로깅이 켜져 있지 않음

AWS Glue Spark ETL 작업에 대해 연속 로깅을 활성화하지 않은 경우 작업 실행이 완료된 후 로그 집계가 발생합니다. 로그 집계 전에 작업이 실패하면 로그가 CloudWatch로 푸시되지 않을 수 있습니다. 애플리케이션 오류와 관계없이 로그가 채워지도록 하려면 AWS Glue 작업에 대해 연속 로깅을 활성화할 수 있습니다.

올바른 로그 그룹에서 로그를 찾고 있지 않음

CloudWatch Logs를 찾을 때는 다음 사항에 유의하세요.

  • 연속 로깅을 활성화하고 기본 로그 그룹을 사용하는 경우, print 문의 메시지와 같은 사용자 지정 메시지가 /aws-glue/jobs/output 로그 그룹으로 푸시됩니다.
  • 연속 로깅을 활성화하고 기본 로그 그룹을 사용하는 경우, 로거에서 생성되는 메시지는 /aws-glue/jobs/logs-v2 아래의 드라이버 로그로 푸시됩니다.
  • 연속 로깅을 활성화하고 기본 로그 그룹을 사용하는 경우, 보안 구성을 사용하는 작업은 사용자 지정 메시지를 /aws-glue/jobs/logs-v2-testconfig로 푸시합니다. testconfig를 보안 구성의 이름으로 교체해야 합니다.
  • 연속 로깅을 활성화하고 사용자 지정 로그 그룹을 사용하는 경우, 사용자 지정 로그 그룹 아래에서 드라이버 및 실행자 로그와 함께 사용자 지정 로그 메시지를 찾을 수 있습니다.
  • 연속 로깅을 활성화하지 않은 경우, /aws-glue/jobs/output 아래에서 print 문 출력과 같은 메시지를 찾을 수 있으며 /aws-glue/jobs/error 아래에서 로거의 모든 사용자 지정 메시지를 찾을 수 있습니다.

자세한 내용은 로깅 동작을 참조하세요.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?