AWS Glue Spark의 오류 문제 해결 - AWS Glue
오류: 사용 가능하지 않는 리소스오류: VPC에서 서브넷 ID용 S3 엔드포인트 또는 NAT 게이트웨이를 찾을 수 없습니다.오류: 보안 그룹의 인바운드 규칙이 필요합니다.오류: 보안 그룹의 아웃바운드 규칙이 필요합니다.오류: 전달된 역할에 AWS Glue 서비스에 대한 역할 수임 권한을 부여해야 하므로 작업 실행이 실패했습니다.오류: DescribeVpcEndpoints 작업이 승인되지 않았습니다. VPC ID vpc-id를 검증할 수 없습니다.오류: DescribeRouteTables 작업이 승인되지 않았습니다. 서브넷 ID를 확인할 수 없습니다. VPC ID의 서브넷 ID: vpc-id오류: ec2 호출 실패: DescribeSubnets오류: ec2 호출 실패: DescribeSecurityGroups오류: AZ용 서브넷을 찾을 수 없습니다.오류: JDBC 대상으로 작성할 경우의 작업 실행 예외오류: Amazon S3: 객체의 스토리지 클래스에 대해 작업이 유효하지 않습니다.오류: Amazon S3 시간 제한오류: Amazon S3 액세스가 거부되었습니다.오류: Amazon S3 액세스 키 ID가 없습니다.오류: s3a:// URI를 사용해 Amazon S3에 액세스할 때 작업 실행이 실패합니다.오류: Amazon S3 서비스 토큰이 만료되었습니다.오류: 네트워크 인터페이스용 프라이빗 DNS를 찾을 수 없습니다.오류: 개발 엔드포인트 프로비저닝이 실패했습니다.오류: 노트북 서버 생성이 실패했습니다.오류: 로컬 노트북 시작이 실패했습니다.오류: 크롤러 실행이 실패했습니다.오류: 파티션이 업데이트되지 않았습니다.오류: 버전 불일치로 인해 작업 북마크 업데이트 실패오류: 작업 북마크가 사용 설정된 경우 작업이 데이터를 재처리합니다.오류: 의 VPC 간 페일오버 동작 AWS Glue

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

AWS Glue Spark의 오류 문제 해결

에서 AWS Glue오류가 발생하는 경우 다음 해결 방법을 사용하여 문제의 원인을 찾아 해결하십시오.

참고

AWS Glue GitHub 리포지토리에는 AWS Glue FAQ에 추가 문제 해결 지침이 포함되어 있습니다.

주제

오류: 사용 가능하지 않는 리소스

리소스를 사용할 수 없다는 메시지가 AWS Glue 반환되는 경우 오류 메시지나 로그를 확인하여 문제에 대해 자세히 알아볼 수 있습니다. 다음 작업은 문제 해결을 위한 일반적인 방법을 설명합니다.

  • 사용할 연결과 개발 엔드포인트의 경우, 탄력적 네트워크 인터페이스를 벗어나지 않은 클러스터를 확인합니다.

오류: VPC에서 서브넷 ID용 S3 엔드포인트 또는 NAT 게이트웨이를 찾을 수 없습니다.

메시지에서 서브넷 ID 및 VPC ID를 선택하여 문제를 진단하십시오.

  • AWS Glue에 필요한 Amazon S3 VPC 엔드포인트 설정이 있는지 확인합니다. 또한, NAT 게이트웨이가 구성 중 일부라면 확인하시오. 자세한 정보는 Amazon S3용 Amazon VPC 엔드포인트을 참조하세요.

오류: 보안 그룹의 인바운드 규칙이 필요합니다.

적어도 하나 이상의 보안 그룹은 모든 내보내기 포트를 열어야 합니다. 트래픽을 제한하기 위해서 인바운드 규칙의 소스 보안 그룹은 동일한 보안 그룹으로 제한될 수 있습니다.

오류: 보안 그룹의 아웃바운드 규칙이 필요합니다.

적어도 하나 이상의 보안 그룹은 모든 들여오기 포트를 열어야 합니다. 트래픽을 제한하기 위해서 아웃바운드 규칙의 소스 보안 그룹은 동일한 보안 그룹으로 제한될 수 있습니다.

오류: 전달된 역할에 AWS Glue 서비스에 대한 역할 수임 권한을 부여해야 하므로 작업 실행이 실패했습니다.

작업을 정의하는 사용자는 AWS Glue에 대한 iam:PassRole 권한이 있어야 합니다.

오류: DescribeVpcEndpoints 작업이 승인되지 않았습니다. VPC ID vpc-id를 검증할 수 없습니다.

  • 전달된 정책에서 권한을 확인하십시오. AWS Glue ec2:DescribeVpcEndpoints

오류: DescribeRouteTables 작업이 승인되지 않았습니다. 서브넷 ID를 확인할 수 없습니다. VPC ID의 서브넷 ID: vpc-id

  • 전달된 AWS Glue 정책에서 권한을 확인하십시오. ec2:DescribeRouteTables

오류: ec2 호출 실패: DescribeSubnets

  • 전달된 정책에서 ec2:DescribeSubnets 권한을 확인하십시오. AWS Glue

오류: ec2 호출 실패: DescribeSecurityGroups

  • 전달된 정책에서 ec2:DescribeSecurityGroups 권한을 확인하십시오. AWS Glue

오류: AZ용 서브넷을 찾을 수 없습니다.

  • 가용 영역을 사용할 수 없을 수도 AWS Glue있습니다. 메시지에 있는 지정된 영역 중 새로운 서브넷을 다른 가용 영역에서 만들고 사용합니다.

오류: JDBC 대상으로 작성할 경우의 작업 실행 예외

JDBC 대상으로 작성하는 작업을 실행하고 있다면 작업은 다음과 같은 상황에서 오류가 발생합니다.

  • 작업이 Microsoft SQL Server 테이블에 쓴다면 테이블은 Boolean 유형으로 정의된 열을 가지고 있고 SQL 서버 데이터베이스에서 미리 정의되어야 합니다. 데이터 대상의 테이블 생성 옵션과 함께 SQL Server 대상을 사용하여 AWS Glue 콘솔에서 작업을 정의할 때는 데이터 유형의 대상 열에 원본 열을 매핑하지 마십시오Boolean. 작업이 실행되면 오류가 발생할 수 있습니다.

    다음을 수행하여 오류를 피합니다.

    • [Boolean(부울)]을 사용하여 기존 테이블을 선택합니다.

    • ApplyMapping 변환을 편집하고 소스의 [Boolean(부울)] 열을 대상의 숫자 또는 문자열로 매핑합니다.

    • ApplyMapping 변환을 편집하여 소스의 [Boolean(부울)] 열을 제거합니다.

  • 작업이 Oracle 테이블에 쓴다면 Oracle 객체 이름 길이를 조정해야 합니다. Oracle의 몇 가지 버전에서는 최대 분류자 길이는 30바이트 또는 128바이트로 제한됩니다. 이 제한은 Oracle 대상 데이터 스토어의 테이블 이름과 열 이름에 영향을 줍니다.

    다음을 수행하여 오류를 피합니다.

    • 버전의 제한 범위 안에서 Oracle 대상 테이블 이름을 짓습니다.

    • 기본 열 이름은 데이터의 필드 이름에서 생성됩니다. 열 이름이 한도보다 긴 경우, ApplyMapping 또는 RenameField 변환을 사용하여 열 이름이 한도를 넘지 않도록 변경합니다.

오류: Amazon S3: 객체의 스토리지 클래스에 대해 작업이 유효하지 않습니다.

이 오류가 AWS Glue 반환되면 AWS Glue 작업에서 Amazon S3 스토리지 클래스 계층 전체에 파티션이 있는 테이블에서 데이터를 읽고 있을 수 있습니다.

  • 스토리지 클래스 제외를 사용하면 이러한 스토리지 클래스 계층 전체에 파티션이 있는 테이블에서 작업이 제대로 작동하는지 확인할 수 있습니다. AWS Glue 제외하지 않으면 이러한 계층에서 데이터를 읽는 작업은 AmazonS3Exception: The operation is not valid for the object's storage class 오류와 함께 실패합니다.

    자세한 정보는 Amazon S3 스토리지 클래스 제외을 참조하세요.

오류: Amazon S3 시간 제한

연결 시간 초과 오류가 AWS Glue 반환되는 경우 다른 AWS 지역의 Amazon S3 버킷에 액세스하려고 하기 때문일 수 있습니다.

  • Amazon S3 VPC 엔드포인트는 트래픽을 지역 내 버킷으로만 라우팅할 수 있습니다. AWS 버킷을 다른 지역으로 연결할 필요가 있다면 차선책으로 NAT 게이트웨이를 사용합니다. 자세한 내용은 NAT 게이트웨이 단원을 참조하세요.

오류: Amazon S3 액세스가 거부되었습니다.

Amazon S3 버킷 또는 객체에 대한 액세스 거부 오류가 AWS Glue 반환되는 경우, 제공된 IAM 역할에 데이터 스토어에 대한 권한을 가진 정책이 없기 때문일 수 있습니다.

  • ETL 작업은 소스 또는 대상으로 사용되는 Amazon S3 데이터 스토어로 액세스할 수 있어야 합니다. 크롤러는 크롤하는 Amazon S3 데이터 스토어로 액세스할 수 있어야 합니다. 자세한 정보는 2단계: AWS Glue에 대한 IAM 역할 생성을 참조하세요.

오류: Amazon S3 액세스 키 ID가 없습니다.

작업을 실행할 때 액세스 키 ID가 존재하지 않음 오류가 AWS Glue 반환되는 경우 다음 이유 중 하나 때문일 수 있습니다.

  • ETL 작업은 IAM 역할을 사용하여 데이터 스토어로 액세스합니다. 작업 시작 전에 작업용 IAM 역할이 삭제된 것은 아닌지 확인합니다.

  • IAM 역할은 데이터 스토어에 대한 액세스 권한을 가지고 있습니다. s3:ListBucket이 포함된 모든 연결된 Amazon S3 정책이 올바른지 확인합니다.

오류: s3a:// URI를 사용해 Amazon S3에 액세스할 때 작업 실행이 실패합니다.

작업이 핸들러 클래스로 XML 문서 파싱에 실패 같은 오류를 반환한다면 s3a:// URI를 사용하여 수백 개의 파일을 기록하는 데 실패했기 때문입니다. 대신에 s3:// URI를 사용하여 데이터 스토어에 액세스합니다. 다음 예외 흔적은 다음과 같은 오류를 찾아봐야 합니다.

1. com.amazonaws.SdkClientException: Failed to parse XML document with handler class com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser$ListBucketHandler 2. at com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser.parseXmlInputStream(XmlResponsesSaxParser.java:161) 3. at com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser.parseListBucketObjectsResponse(XmlResponsesSaxParser.java:317) 4. at com.amazonaws.services.s3.model.transform.Unmarshallers$ListObjectsUnmarshaller.unmarshall(Unmarshallers.java:70) 5. at com.amazonaws.services.s3.model.transform.Unmarshallers$ListObjectsUnmarshaller.unmarshall(Unmarshallers.java:59) 6. at com.amazonaws.services.s3.internal.S3XmlResponseHandler.handle(S3XmlResponseHandler.java:62) 7. at com.amazonaws.services.s3.internal.S3XmlResponseHandler.handle(S3XmlResponseHandler.java:31) 8. at com.amazonaws.http.response.AwsResponseHandlerAdapter.handle(AwsResponseHandlerAdapter.java:70) 9. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleResponse(AmazonHttpClient.java:1554) 10. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1272) 11. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1056) 12. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:743) 13. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:717) 14. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:699) 15. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:667) 16. at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:649) 17. at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:513) 18. at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4325) 19. at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4272) 20. at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4266) 21. at com.amazonaws.services.s3.AmazonS3Client.listObjects(AmazonS3Client.java:834) 22. at org.apache.hadoop.fs.s3a.S3AFileSystem.getFileStatus(S3AFileSystem.java:971) 23. at org.apache.hadoop.fs.s3a.S3AFileSystem.deleteUnnecessaryFakeDirectories(S3AFileSystem.java:1155) 24. at org.apache.hadoop.fs.s3a.S3AFileSystem.finishedWrite(S3AFileSystem.java:1144) 25. at org.apache.hadoop.fs.s3a.S3AOutputStream.close(S3AOutputStream.java:142) 26. at org.apache.hadoop.fs.FSDataOutputStream$PositionCache.close(FSDataOutputStream.java:74) 27. at org.apache.hadoop.fs.FSDataOutputStream.close(FSDataOutputStream.java:108) 28. at org.apache.parquet.hadoop.ParquetFileWriter.end(ParquetFileWriter.java:467) 29. at org.apache.parquet.hadoop.InternalParquetRecordWriter.close(InternalParquetRecordWriter.java:117) 30. at org.apache.parquet.hadoop.ParquetRecordWriter.close(ParquetRecordWriter.java:112) 31. at org.apache.spark.sql.execution.datasources.parquet.ParquetOutputWriter.close(ParquetOutputWriter.scala:44) 32. at org.apache.spark.sql.execution.datasources.FileFormatWriter$SingleDirectoryWriteTask.releaseResources(FileFormatWriter.scala:252) 33. at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$org$apache$spark$sql$execution$datasources$FileFormatWriter$$executeTask$3.apply(FileFormatWriter.scala:191) 34. at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$org$apache$spark$sql$execution$datasources$FileFormatWriter$$executeTask$3.apply(FileFormatWriter.scala:188) 35. at org.apache.spark.util.Utils$.tryWithSafeFinallyAndFailureCallbacks(Utils.scala:1341) 36. at org.apache.spark.sql.execution.datasources.FileFormatWriter$.org$apache$spark$sql$execution$datasources$FileFormatWriter$$executeTask(FileFormatWriter.scala:193) 37. at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$write$1$$anonfun$3.apply(FileFormatWriter.scala:129) 38. at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$write$1$$anonfun$3.apply(FileFormatWriter.scala:128) 39. at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87) 40. at org.apache.spark.scheduler.Task.run(Task.scala:99) 41. at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:282) 42. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 43. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 44. at java.lang.Thread.run(Thread.java:748)

오류: Amazon S3 서비스 토큰이 만료되었습니다.

Amazon Redshift 간에 데이터를 이동할 때에는 1시간 후에 만료되는 임시 Amazon S3 자격 증명이 사용됩니다. 따라서 실행 시간이 긴 작업은 실패할 수 있습니다. Amazon Redshift 간에 데이터를 이동하기 위해 오래 실행되는 작업을 설정하는 방법은 aws-glue-programming-etl-connect-redshift-home 섹션을 참조하세요.

오류: 네트워크 인터페이스용 프라이빗 DNS를 찾을 수 없습니다.

작업 또는 개발 엔드포인트가 할당하는 작업을 실패하면 네트워크 설정 문제일 것입니다.

  • Amazon이 제공한 DNS를 사용 중이면 enableDnsHostnames 값은 true로 설정해야 합니다. 자세한 내용은 DNS를 참조하십시오.

오류: 개발 엔드포인트 프로비저닝이 실패했습니다.

개발 엔드포인트를 성공적으로 AWS Glue 프로비저닝하지 못하는 경우 네트워크 설정 문제 때문일 수 있습니다.

  • 개발 엔드포인트를 정의하면 VPC, 서브넷 및 보안 그룹이 특정 요구 사항에 부합한다는 것을 확인하도록 검증할 수 있습니다.

  • 조건부 SSH 퍼블릭 키를 제공했다면 유효한 SSH 퍼블릭 키인지 확인합니다.

  • VPC가 유효한 [DHCP option set(DHCP 옵션 세트)]를 사용하도록 VPC 콘솔을 확인합니다. 자세한 내용은 DHCP 옵션 세트를 참조하십시오.

  • 여전히 클러스터가 프로비저닝 상태로 유지된다면 AWS Support에 문의합니다.

오류: 노트북 서버 생성이 실패했습니다.

개발 엔드포인트용 노트북 서버를 만들지 AWS Glue 못하면 다음 문제 중 하나가 원인일 수 있습니다.

  • AWS Glue 노트북 서버를 설정할 때 Amazon EC2에 IAM 역할을 전달합니다. IAM 역할은 Amazon EC2의 신뢰 관계를 맺고 있어야 합니다.

  • IAM 역할은 동일한 이름의 인스턴스 프로파일을 가지고 있어야 합니다. IAM 콘솔에서 Amazon EC2를 위한 역할을 생성할 때 동일한 이름의 인스턴스 프로파일이 자동으로 생성됩니다. 유효하지 않은 인스턴스 프로파일 이름 iamInstanceProfile.name에 따라 로그 오류를 확인합니다. 자세한 내용은 인스턴스 프로파일 사용 섹션을 참조하세요.

  • 역할이 노트북 서버를 생성하기 위해 통과한 정책에서 aws-glue* 버킷에 액세스할 수 있는 권한이 있는지 확인합니다.

오류: 로컬 노트북 시작이 실패했습니다.

로컬 노트북이 시작을 못하고 디렉토리 혹은 폴더를 찾을 수 없다는 오류를 보고 하면 다음과 같은 문제 중 하나일 수 있습니다.

  • Microsoft Windows에서 실행하고 있다면 JAVA_HOME 환경 변수가 올바른 자바 디텍터리를 가리키는지 확인하십시오. 이 변수를 업데이트하지 않고서 Java를 업데이트할 수 있습니다. 그리고 존재하지 않는 폴더를 가리키면 Jupyter 노트북은 시작하지 못합니다.

오류: 크롤러 실행이 실패했습니다.

데이터를 카탈로그화하는 크롤러를 성공적으로 AWS Glue 실행하지 못하면 다음 이유 중 하나가 원인일 수 있습니다. 먼저 오류가 AWS Glue 콘솔 크롤러 목록에 있는지 확인합니다. 크롤러 이름 옆에 중요 표시 아이콘이 있는지 확인하고 관련 메시지가 아이콘 옆에 뜨는지 확인합니다.

  • Logs under에서 크롤러 실행에 대한 로그를 확인하세요. CloudWatch /aws-glue/crawlers

오류: 파티션이 업데이트되지 않았습니다.

ETL 작업을 실행할 때 데이터 카탈로그의 파티션이 업데이트되지 않은 경우 로그에 있는 DataSink 클래스의 다음 로그 명령문이 유용할 수 있습니다. CloudWatch

  • "Attempting to fast-forward updates to the Catalog - nameSpace:" - 이 작업에서 수정을 시도한 데이터베이스, 테이블 및 catalogId를 표시합니다. 이 문이 여기에 없는 경우 enableUpdateCatalog가 true로 설정되어 있으며 getSink() 파라미터로 또는 additional_options로 제대로 전달되는지 확인하십시오.

  • "Schema change policy behavior:" - 전달한 스키마 updateBehavior 값을 표시합니다.

  • "Schemas qualify (schema compare):" - true 또는 false입니다.

  • "Schemas qualify (case-insensitive compare):" - true 또는 false입니다.

  • 둘 다 updateBehavior false이고 로 UPDATE_IN_DATABASE 설정되지 않은 경우 DynamicFrame 스키마가 동일하거나 데이터 카탈로그 테이블 스키마에 표시된 열의 하위 집합을 포함해야 합니다.

파티션 업데이트에 대한 자세한 내용은 AWS Glue ETL 작업을 사용하여 데이터 카탈로그에서 스키마 업데이트 및 새 파티션 추가 섹션을 참조하세요.

오류: 버전 불일치로 인해 작업 북마크 업데이트 실패

Amazon S3의 다양한 데이터 세트에 동일한 변환/로직을 적용하기 위해 AWS Glue 작업을 파라미터화하려고 할 수 있습니다. 제공된 위치에서 처리된 파일을 추적하고자 합니다. 동일한 소스 버킷에서 동일한 작업을 실행하고 동일한/다른 대상에 동시에 쓰는 경우(동시성 >1) 다음 오류와 함께 작업이 실패합니다.

py4j.protocol.Py4JJavaError: An error occurred while callingz:com.amazonaws.services.glue.util.Job.commit.:com.amazonaws.services.gluejobexecutor.model.VersionMismatchException: Continuation update failed due to version mismatch. Expected version 2 but found version 3

솔루션: 동시성을 1로 설정하거나 작업을 동시에 실행하지 마십시오.

현재 AWS Glue 북마크는 동시 작업 실행을 지원하지 않으며 커밋은 실패합니다.

오류: 작업 북마크가 사용 설정된 경우 작업이 데이터를 재처리합니다.

AWS Glue 작업 북마크를 활성화했지만 ETL 작업이 이전 실행에서 이미 처리된 데이터를 재처리하는 경우가 있을 수 있습니다. 이 오류의 일반적인 원인을 확인해 보십시오.

최대 동시성

작업의 최대 동시 실행 횟수를 기본값인 1보다 크게 설정하면 작업 북마크를 방해할 수 있습니다. 이는 작업 북마크가 객체의 마지막 수정 시간을 확인하여 재처리가 필요한 객체를 확인할 때 발생할 수 있습니다. 자세한 내용은 에서 Spark 작업에 대한 작업 속성 구성 AWS Glue에서 최대 동시성 관련 내용을 참조하십시오.

작업 객체 누락

작업 실행 스크립트는 다음 커밋으로 끝나야 합니다.

job.commit()

이 개체를 포함하면 작업 실행의 타임스탬프와 경로가 AWS Glue 기록됩니다. 동일한 경로를 사용하여 작업을 다시 실행하는 경우 는 새 파일만 AWS Glue 처리합니다. 이 객체를 포함하지 않고 작업 북마크를 활성화한 경우, 이 작업은 새 파일과 함께 이미 처리된 파일도 재처리하고 작업의 대상 데이터 스토어에 중복 항목을 생성합니다.

변환 컨텍스트 파라미터 누락

변환 컨텍스트가 GlueContext 클래스의 선택적 파라미터이기는 하지만, 이 파라미터를 넣지 않으면 작업 북마크가 제대로 작동하지 않습니다. 이 오류를 해결하려면 다음과 같이 를 만들 때 변환 컨텍스트 매개 변수를 추가하십시오. DynamicFrame

sample_dynF=create_dynamic_frame_from_catalog(database, table_name,transformation_ctx="sample_dynF")
입력 소스

입력 소스에 대해 관계형 데이터베이스(JDBC 연결)를 사용하는 경우 테이블의 기본 키가 순차적인 경우에만 작업 북마크가 작동합니다. 작업 북마크는 업데이트된 행이 아니라 새 행에 대해 작동합니다. 이는 작업 북마크가 이미 있는 기본 키를 검색하기 때문입니다. 입력 소스가 Amazon Simple Storage Service(Amazon S3)인 경우에는 적용되지 않습니다.

최근 수정 시간

Amazon S3 입력 소스의 경우 작업 북마크는 파일 이름이 아니라 객체의 마지막으로 수정된 시간을 검사해 어떤 객체를 재처리해야 하는지 확인합니다. 마지막 작업 실행 이후로 입력 소스 데이터가 수정된 경우, 작업을 다시 실행하면 그 파일이 재처리됩니다.

오류: 의 VPC 간 페일오버 동작 AWS Glue

AWS Glue 4.0 및 이전 버전의 작업에 대한 페일오버에는 다음 프로세스가 사용됩니다.

요약: AWS Glue 연결은 작업 실행이 제출될 때 선택됩니다. 작업 실행 시 일부 문제(IP 주소 부족, 소스 연결, 라우팅 문제)가 발생하면 작업 실행이 실패합니다. 재시도가 구성된 AWS Glue 경우 동일한 연결로 재시도합니다.

  1. 각 실행 시도에 대해 작업 구성에 나열된 순서대로 연결 상태를 확인합니다. 이때 사용할 수 있는 연결을 찾을 때까지 해당 연결 상태를 확인합니다. AWS Glue 가용 영역 (AZ) 에 장애가 발생하는 경우 해당 AZ의 연결은 검사에 실패하고 건너뛰게 됩니다.

  2. AWS Glue 다음을 사용하여 연결을 검증합니다.

    • 유효한 Amazon VPC ID 및 서브넷을 확인합니다.

    • NAT 게이트웨이 또는 Amazon VPC 엔드포인트가 존재하는지 확인합니다.

    • 서브넷에 할당된 IP 주소가 1개 이상인지 확인합니다.

    • AZ가 정상 상태인지 확인합니다.

    AWS Glue 작업 실행 제출 시에는 연결을 확인할 수 없습니다.

  3. Amazon VPC를 사용하는 작업의 경우, 모든 드라이버와 실행기는 작업 실행 제출 시 선택한 연결을 사용하여 동일한 AZ에서 생성됩니다.

  4. 재시도가 구성된 AWS Glue 경우 동일한 연결로 재시도합니다. 이 연결과 관련된 문제가 오래 지속된다고 보장할 수 없기 때문입니다. AZ에 장애가 발생하면 해당 AZ의 기존 작업 실행(작업 실행 단계에 따라 다름)이 실패할 수 있습니다. 재시도를 통해 AZ 장애를 감지하고 새 실행을 위해 다른 AZ를 선택해야 합니다.