

# EventBridge를 사용한 AWS Glue 자동화
<a name="automating-awsglue-with-cloudwatch-events"></a>

Amazon EventBridge를 사용하면 AWS 서비스를 자동화하고 애플리케이션 가용성 문제나 리소스 변경 같은 시스템 이벤트에 자동으로 대응할 수 있습니다. AWS 서비스의 이벤트는 거의 실시간으로 EventBridge로 전송됩니다. 원하는 이벤트만 표시하도록 간단한 규칙을 작성한 후 규칙과 일치하는 이벤트 발생 시 실행할 자동화 작업을 지정할 수 있습니다. 자동으로 트리거할 수 있는 작업은 다음과 같습니다.
+ AWS Lambda 함수 호출
+ Amazon EC2 Run Command 호출
+ Amazon Kinesis Data Streams로 이벤트 릴레이
+ AWS Step Functions 상태 머신 활성화
+ Amazon SNS 주제 또는 Amazon SQS 대기열 알림

다음은 EventBridge를 AWS Glue에 사용하는 몇 가지 예시입니다.
+ ETL 작업이 성공하면 Lambda 함수를 활성화합니다.
+ ETL 작업이 실패하면 Amazon SNS 주제를 알립니다.

다음 EventBridge는 AWS Glue에 의해 생성됩니다.
+ `"detail-type":"Glue Job State Change"` 이벤트는 `SUCCEEDED`, `FAILED`, `TIMEOUT` 및 `STOPPED`에 대해 생성됩니다.
+ 작업 지연 알림 임곗값을 초과한다면 `RUNNING`, `STARTING` 및 `STOPPING` 작업 실행에 `"detail-type":"Glue Job Run Status"`용 이벤트가 생성됩니다. 이러한 이벤트를 수신하려면 작업 지연 알림 임계값 속성을 설정해야 합니다.

  작업 지연 알림 임계값을 초과한 경우 작업 실행 상태당 하나의 이벤트만 생성됩니다.
+ `"detail-type":"Glue Crawler State Change"` 이벤트는 `Started`, `Succeeded` 및 `Failed`을 위해 발생합니다.
+ `“detail_type”:“Glue Scheduled Crawler Invocation Failure”`에 대한 이벤트는 예약된 크롤러가 시작되지 않을 때 생성됩니다. 알림 세부 정보:
  + `customerId`에는 고객의 계정 ID가 포함됩니다.
  + `crawlerName`에는 시작하지 못한 크롤러의 이름이 포함됩니다.
  + `errorMessage`에는 간접 호출 실패의 예외 메시지가 포함됩니다.
+ `“detail_type”:“Glue Auto Statistics Invocation Failure“`에 대한 이벤트는 자동 관리형 열 통계 작업 실행이 시작되지 않을 때 생성됩니다. 알림 세부 정보:
  + `catalogId`에는 카탈로그와 연결된 ID가 포함됩니다.
  + `databaseName`에는 영향을 받는 데이터베이스 이름이 포함됩니다.
  + `tableName`에는 영향을 받는 테이블 이름이 포함됩니다.
  + `errorMessage`에는 간접 호출 실패의 예외 메시지가 포함됩니다.
+ `“detail_type”:“Glue Scheduled Statistics Invocation Failure”`에 대한 이벤트는 (cron) 예약 열 통계 작업 실행이 시작되지 않을 때 생성됩니다. 알림 세부 정보:
  + `catalogId`에는 카탈로그와 연결된 ID가 포함됩니다.
  + `databaseName`에는 영향을 받는 데이터베이스 이름이 포함됩니다.
  + `tableName`에는 영향을 받는 테이블 이름이 포함됩니다.
  + `errorMessage`에는 간접 호출 실패의 예외 메시지가 포함됩니다.
+ `“detail_type”:“Glue Statistics Task Started”`에 대한 이벤트는 열 통계 작업 실행이 시작될 때 생성됩니다.
+ `“detail_type”:“Glue Statistics Task Succeeded”`에 대한 이벤트는 열 통계 작업 실행이 성공할 때 생성됩니다.
+ `“detail_type”:“Glue Statistics Task Failed”`에 대한 이벤트는 열 통계 작업 실행이 실패할 때 생성됩니다.
+ `"detail-type":"Glue Data Catalog Database State Change"` 이벤트는 `CreateDatabase`, `DeleteDatabase`, `CreateTable`, `DeleteTable` 및 `BatchDeleteTable`에 대해 생성됩니다. 예를 들어 테이블이 생성되거나 삭제되면 EventBridge에 알림이 전송됩니다. 순서가 잘못되었거나 누락되는 등 알림 이벤트의 순서 또는 존재 여부에 따라 프로그램을 작성할 수 없을 수 있습니다. 이벤트는 최선의 작업을 기반으로 발생됩니다. 알림 세부 정보:
  + `typeOfChange`에는 API 작업의 이름이 포함되어 있습니다.
  + `databaseName`에는 영향을 받는 데이터베이스 이름이 포함되어 있습니다.
  + `changedTables`는 알림당 영향을 받는 테이블의 이름을 최대 100개까지 포함합니다. 테이블 이름이 길면 여러 알림이 생성될 수 있습니다.
+ `"detail-type":"Glue Data Catalog Table State Change"`에 대한 이벤트는 `UpdateTable`, `CreatePartition`, `BatchCreatePartition`, `UpdatePartition`, `DeletePartition`, `BatchUpdatePartition` 및 `BatchDeletePartition`에 대해 생성됩니다. 예를 들어 테이블이 생성되거나 파티션이 업데이트되면 EventBridge에 알림이 전송됩니다. 순서가 잘못되었거나 누락되는 등 알림 이벤트의 순서 또는 존재 여부에 따라 프로그램을 작성할 수 없을 수 있습니다. 이벤트는 최선의 작업을 기반으로 발생됩니다. 알림 세부 정보:
  + `typeOfChange`에는 API 작업의 이름이 포함되어 있습니다.
  + `databaseName`은 영향을 받는 리소스가 포함된 데이터베이스의 이름을 포함합니다.
  + `tableName`에는 영향을 받는 테이블 이름이 포함되어 있습니다.
  + `changedPartitions`는 하나의 알림에서 최대 100개의 영향을 받는 파티션을 지정합니다. 파티션 이름이 길면 여러 알림이 생성될 수 있습니다.

    예를 들어 `Year` 및 `Month`와 같은 두 개의 파티션 키가 있는 경우`"2018,01", "2018,02"`는 `"Year=2018" and "Month=01"` 및 `"Year=2018" and "Month=02"`가 있는 파티션을 수정합니다.

    ```
    {
        "version":"0",
        "id":"abcdef00-1234-5678-9abc-def012345678",
        "detail-type":"Glue Data Catalog Table State Change",
        "source":"aws.glue",
        "account":"123456789012",
        "time":"2017-09-07T18:57:21Z",
        "region":"us-west-2",
        "resources":["arn:aws:glue:us-west-2:123456789012:database/default/foo"],
        "detail":{
            "changedPartitions": [
                "2018,01",
                "2018,02"
            ],
            "databaseName": "default",
            "tableName": "foo",
            "typeOfChange": "BatchCreatePartition"
            }
    }
    ```

자세한 내용은 [Amazon CloudWatch Events 사용 설명서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/)를 참조하세요. AWS Glue에 한정되는 이벤트는 [AWS Glue 이벤트](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/EventTypes.html#glue-event-types)를 참조하십시오.