AWS Glue의 워크플로 개요 - AWS Glue

AWS Glue의 워크플로 개요

AWS Glue에서 여러 크롤러, 작업 및 트리거가 포함된 복잡한 ETL(추출, 변환 및 로드) 활동을 생성 및 시각화할 수 있습니다. 각 워크플로는 모든 구성 요소의 실행과 모니터링을 관리합니다. 워크플로는 각 구성 요소를 실행할 때 실행 진행률과 상태를 기록합니다. 이는 더 큰 태스크의 개요와 각 단계의 세부 정보를 제공합니다. AWS Glue 콘솔은 워크플로우의 시각적 표현을 그래프로 제공합니다.

AWS Glue 블루프린트에서 워크플로를 생성하거나 AWS Management Console 또는 AWS Glue API를 사용하여 구성 요소를 한 번에 수동으로 워크플로를 구축할 수 있습니다. 블루프린트에 대한 자세한 내용은 AWS Glue의 블루프린트 개요 단원을 참조하십시오.

워크플로 내의 트리거는 작업과 크롤러를 모두 시작할 수 있으며 작업 또는 크롤러가 완료되면 실행될 수 있습니다. 트리거를 사용하여 상호 종속된 작업과 크롤러로 이루어진 대형 체인을 생성할 수 있습니다. 작업 및 크롤러 종속성을 정의하는 워크플로 내의 트리거 외에도 각 워크플로에는 시작 트리거가 있습니다. 시작 트리거에는 다음 세 가지 유형이 있습니다.

  • 일정 - 정의한 일정에 따라 워크플로가 시작됩니다. 일정은 매일, 매주, 매월 등이 될 수도 있고 cron 표현식을 기반으로 한 사용자 정의 일정이 될 수도 있습니다.

  • 온디맨드 - 워크플로가 AWS Glue 콘솔, API 또는 AWS CLI에서 수동으로 시작됩니다.

  • EventBridge 이벤트 – 단일 Amazon EventBridge 이벤트 또는 Amazon EventBridge 이벤트 배치가 발생하면 워크플로가 시작됩니다. 이 트리거 유형을 사용하면 AWS Glue는 이벤트 중심 아키텍처에서 이벤트 소비자가 될 수 있습니다. 모든 EventBridge 이벤트 유형은 워크플로를 시작할 수 있습니다. 일반적인 사용 사례는 Amazon S3 버킷에 새 객체가 도착하는 것입니다(S3 PutObject 작업).

    이벤트 배치로 워크플로를 시작한다는 것은 지정된 수의 이벤트가 수신되거나 지정된 시간이 경과할 때까지 기다리는 것을 의미합니다. EventBridge 이벤트 트리거를 생성할 때 선택적으로 배치 조건을 지정할 수 있습니다. 배치 조건을 지정하는 경우 배치 크기(이벤트 수)를 지정해야 하며 선택적으로 배치 기간(초 수)을 지정할 수 있습니다. 기본 및 최대 배치 기간은 900초(15분)입니다. 먼저 충족되는 배치 조건이 워크플로를 시작합니다. 첫 번째 이벤트가 도착하면 배치 기간이 시작됩니다. 트리거를 생성할 때 배치 조건을 지정하지 않으면 배치 크기는 기본적으로 1로 설정됩니다.

    워크플로가 시작되면 배치 조건이 재설정되고 이벤트 트리거는 워크플로를 다시 시작하기 위해 충족되는 다음 배치 조건을 감시하기 시작합니다.

    다음 표는 배치 크기와 배치 기간이 함께 작동하여 워크플로를 트리거하는 방법을 보여줍니다.

    배치 크기 배치 기간 결과 트리거 조건
    10 10개의 EventBridge 이벤트가 도착하거나 첫 번째 이벤트가 도착한 후 15분 중 먼저 발생하는 시점에 워크플로가 트리거됩니다. (기간 크기를 지정하지 않으면 기본적으로 15분으로 설정됩니다.)
    10 2분 10개의 EventBridge 이벤트가 도착하거나 첫 번째 이벤트가 도착한 후 2분 중 먼저 발생하는 시점에 워크플로가 트리거됩니다.
    1 워크플로는 첫 번째 이벤트가 도착하면 트리거됩니다. 기간 크기는 관련이 없습니다. EventBridge 이벤트 트리거를 생성할 때 배치 조건을 지정하지 않으면 배치 크기의 기본값은 1입니다.

    GetWorkflowRun API 작업은 워크플로를 트리거한 배치 조건을 반환합니다.

워크플로 시작 방법에 관계 없이 워크플로를 생성할 때 동시 워크플로 실행의 최대 수를 지정할 수 있습니다.

이벤트 또는 이벤트 배치가 결국 실패하는 워크플로 실행을 시작하는 경우 해당 이벤트 또는 이벤트 배치는 더 이상 워크플로 실행 시작에 대해 고려되지 않습니다. 새 워크플로 실행은 다음 이벤트 또는 이벤트 배치가 도착할 때만 시작됩니다.

중요

워크플로 내 작업, 크롤러, 트리거의 총수를 100개 이하로 제한합니다. 100개가 넘게 포함될 경우 워크플로 실행을 재개하거나 중지하려고 할 때 오류가 발생할 수 있습니다.

이벤트 조건이 충족되더라도 워크플로에 대해 설정된 동시성 제한을 초과하면 워크플로 실행이 시작되지 않습니다. 예상 이벤트 볼륨에 따라 워크플로 동시성 제한을 조정하는 것이 좋습니다. AWS Glue는 초과 동시성 제한으로 인해 실패한 워크플로 실행을 다시 시도하지 않습니다. 마찬가지로, 예상 이벤트 볼륨을 기반으로 워크플로 내에서 작업 및 크롤러에 대한 동시성 제한을 조정하는 것이 좋습니다.

워크플로 실행 속성

워크플로우 실행 전체의 상태를 공유 및 관리하려면 기본 워크플로우 실행 속성을 정의하면 됩니다. 이름/값 페어인 이러한 속성은 워크플로우의 모든 작업에서 사용할 수 있습니다. AWS Glue API를 사용하여 작업은 워크플로우 실행 속성을 검색하고 워크플로우에 나중에 오는 작업을 위해 수정할 수 있습니다.

워크플로 그래프

다음 이미지에서는 AWS Glue 콘솔에서 매우 기본적인 워크플로의 그래프를 보여줍니다. 워크플로우에는 구성 요소가 수십 개 있을 수 있습니다.


            워크플로의 그래프 탭을 보여주는 콘솔 스크린샷. 그래프에는 일정 트리거, 작업 2개, 이벤트 성공 트리거, 스키마를 업데이트하는 크롤러를 나타내는 아이콘 5개가 포함되어 있습니다.

이 워크플로는 2개의 작업 De-duplicateFix phone numbers를 시작하는 일정 트리거 Month-close1에 의해 시작됩니다. 두 작업이 성공적으로 완료되면 이벤트 트리거 Fix/De-dupe succeeded가 크롤러 Update schema를 시작합니다.

정적 및 동적 워크플로 보기

워크플로우별로 정적 보기동적 보기라는 개념이 있습니다. 정적 보기는 워크플로우의 설계를 나타냅니다. 동적 보기는 각 작업 및 크롤러에 대한 최신 실행 정보를 포함하는 런타임 보기입니다. 실행 정보에는 성공 상태와 오류 세부 정보가 포함됩니다.

워크플로우가 실행 중이면 콘솔에 완료된 작업과 아직 실행될 작업을 그래픽으로 나타내는 동적 보기가 표시됩니다. AWS Glue API를 사용하여 실행 중인 워크플로의 동적 보기를 검색할 수도 있습니다. 자세한 정보는 AWS Glue API를 사용하여 워크플로 쿼리을 참조하십시오.