내부 서비스 예외가 발생하면서 AWS Glue 크롤러가 실패함

최종 업데이트 날짜: 2020년 8월 28일

AWS Glue 크롤러에서 "ERROR: Internal Service Exception"으로 인한 실패를 방지하려면 어떻게 해야 합니까?

해결 방법

크롤러 내부 서비스 예외는 일시적인 문제로 인해 발생하는 경우가 있습니다. 문제 해결을 시작하기 전에 크롤러를 다시 실행합니다. 그래도 내부 서비스 예외가 발생하면 다음과 같은 일반적인 문제가 있는지 확인하십시오.

AWS Glue 데이터 카탈로그

  • 열 이름은 255자를 초과할 수 없고 특수 문자를 포함하지 않아야 합니다. 열 요구 사항에 대한 자세한 내용은 을 참조하십시오.
  • 형식이 잘못된 데이터를 확인합니다. 예를 들어 열 이름이 정규식 패턴 "[\ u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\t]"를 따르지 않으면 크롤러가 작동하지 않습니다.
  • 길이가 0인 열을 확인합니다. 이는 데이터의 열이 테이블의 데이터 형식과 일치하지 않을 때 발생합니다.
  • 데이터에 "(precision, scale)" 형식의 DECIMAL 열이 포함되어 있는 경우 소수점 자릿수 값이 정밀도 값보다 작거나 같아야 합니다.

Amazon Simple Storage Service(Amazon S3)

  • Amazon S3 경로에 특수 문자가 포함되어 있지 않은지 확인하십시오.
  • 크롤러에 사용되는 AWS Identity and Access Management(IAM) 역할이 Amazon S3 경로에 액세스할 수 있는 권한을 가지고 있는지 확인합니다. 자세한 내용은 AWS Glue용 IAM 역할 만들기를 참조하십시오.
  • 작은 파일이 많으면 크롤러가 내부 서비스 예외로 인해 실패할 수 있습니다. 이 문제를 방지하려면 S3DistCp 도구를 사용하여 더 작은 파일을 결합하십시오. S3DistCp를 사용하면 Amazon EMR 요금이 추가로 발생합니다. 또는 제외 패턴을 설정한 다음 파일을 배치 단위로 크롤링합니다.
  • 가능하면 ^, % 및 ~ 같은 특수 ASCII 문자를 데이터에서 제거합니다. 가능하지 않은 경우 사용자 지정 분류자를 사용하여 데이터를 분류합니다.
  • S3 객체가 Standard 스토리지 클래스를 사용하는지 확인합니다. 객체를 Standard 스토리지 클래스로 복원하려면 아카이브된 S3 객체를 복원하려면 어떻게 해야 합니까?를 참조하십시오.
  • 크롤러 구성의 패턴 포함 및 제외가 S3 버킷 경로와 일치하는지 확인합니다.
  • 암호화된 S3 버킷을 크롤링하는 경우 크롤러의 IAM 역할에 AWS Key Management Service(AWS KMS) 키에 대한 적절한 권한이 있는지 확인합니다. 자세한 내용은 AWS Glue 콘솔의 보안 구성 관련 작업AWS Glue에서 암호화 설정을 참조하십시오.
  • 암호화된 S3 버킷을 크롤링하는 경우 버킷, KMS 키 및 AWS Glue 작업이 동일한 AWS 지역에 있어야 합니다.
  • 크롤링하는 S3 버킷의 요청 속도를 확인합니다. 이 값이 높으면 읽기 병렬화를 위해 접두사를 더 많이 생성하는 것이 좋습니다. 자세한 내용은 모범 사례 설계 패턴: Amazon S3 성능 최적화를 참조하십시오.
  • S3 버킷 파티션과 키가 일치해야 합니다. 예를 들어 크롤러가 s3://awsdoc-example-bucket/yyyy=xxxx/mm=xxx/dd=xx/[files] 경로를 사용할 것으로 예상하지만, 일부 객체는 s3://awsdoc-example-bucket/yyyy=xxxx/mm=xxx/[files] 경로를 사용하고 내부 서비스 예외가 발생하며 크롤러가 실패합니다.

Amazon DynamoDB

JDBC

  • AWS KMS로 암호화된 JDBC 데이터 원본을 크롤링하는 경우 연결에 사용 중인 서브넷을 확인합니다. 서브넷의 라우팅 테이블에는 AWS KMS VPC 엔드포인트 또는 NAT 게이트웨이를 통해 KMS 엔드포인트로 연결되는 경로가 있어야 합니다.
  • 올바른 Include path 구문을 사용하고 있는지 확인합니다. 자세한 내용은 크롤러 정의를 참조하십시오.
  • JDBC 데이터 스토어를 크롤링하는 경우 SSL 연결이 올바르게 구성되었는지 확인합니다. SSL 연결을 사용하지 않는 경우 크롤러를 구성할 때 Require SSL connection이 선택되어 있지 않은지 확인하십시오.
  • AWS Glue가 연결된 데이터베이스 이름이 크롤러의 포함 경로에 있는 데이터베이스 이름과 일치하는지 확인하고 포함 경로를 올바르게 입력했는지 확인합니다. 자세한 내용은 패턴 포함 및 제외를 참조하십시오.

AWS KMS

  • AWS KMS를 사용하는 경우 AWS Glue 크롤러가 AWS KMS에 액세스할 수 있어야 합니다. 액세스 권한을 부여하려면 KMS 엔드포인트를 생성할 때 [Enable Private DNS Name] 옵션을 선택합니다. 그런 다음, AWS Glue와 연결되는 VPC 서브넷 구성에 KMS 엔드포인트를 추가합니다. 자세한 내용은 AWS KMS VPC 엔드포인트 생성(VPC 콘솔)을 참조하십시오.

이 문서가 도움이 되었습니까?


결제 또는 기술 지원이 필요합니까?