

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

# Amazon EventBridge에 대한 AWS Batch 이벤트 스트림
<a name="cloudwatch_event_stream"></a>

Amazon EventBridge용 AWS Batch 이벤트 스트림을 사용하여 작업 대기열 내 작업의 현재 상태에 관한 실시간에 가까운 알림을 받을 수 있습니다.

EventBridge를 사용하면 AWS Batch 서비스에 대한 추가 통찰력을 얻을 수 있습니다. 보다 구체적으로는, 이를 사용하여 작업 진행 상황을 확인하고, AWS Batch 사용자 지정 워크플로를 구축하며, 사용 보고서 또는 지표를 생성하거나 자체 대시보드를 구축할 수 있습니다. AWS Batch 및 EventBridge가 있으면 작업 상태 변경에 대해 AWS Batch를 지속적으로 폴링하는 코드를 예약하거나 모니터링할 필요가 없습니다. 대신 다양한 Amazon EventBridge 대상을 사용하여 AWS Batch 작업 상태 변경을 비동기적으로 처리할 수 있습니다. 이는 AWS Lambda, Amazon Simple Queue Service, Amazon Simple Notification Service 또는 Amazon Kinesis Data Streams를 포함할 수 있습니다.

AWS Batch 이벤트 스트림의 이벤트는 최소 한 번 이상 전달됩니다. 중복 이벤트가 전송되는 경우, 해당 이벤트는 중복을 식별하기에 충분한 정보를 제공합니다. 이렇게 하면 이벤트의 타임스탬프와 작업 상태를 비교할 수 있습니다.

AWS Batch 작업은 EventBridge 대상으로 사용할 수 있습니다. 단순한 규칙을 사용하여 사용자는 이벤트를 매치하고 이에 대한 응답으로 AWS Batch 작업을 제출할 수 있습니다. 자세한 내용은 *Amazon EventBridge 사용 설명서*의 [EventBridge란?](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html)을 참조하세요. 또한 **cron** 또는 rate 표현식을 사용하여 특정 시간에 자체 트리거되는 자동 작업을 EventBridge로 예약할 수 있습니다. 자세한 내용은 *Amazon EventBridge 사용 설명서*의 [예약 운영 EventBridge 규칙 생성](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)을 참조하세요. 예제 연습은 [EventBridge 대상으로 사용되는 AWS Batch작업](batch-cwe-target.md) 섹션을 참조하세요. EventBridge Scheduler 사용에 대한 자세한 내용은 Amazon EventBridge 사용 설명서의 [Amazon EventBridge Scheduler 설정](https://docs.aws.amazon.com/scheduler/latest/UserGuide/setting-up.html)을 참조하세요.

**Topics**
+ [AWS Batch 이벤트](batch_cwe_events.md)
+ [자습서:에서 AWS 사용자 알림 사용 AWS Batch](using-user-notifications.md)
+ [EventBridge 대상으로 사용되는 AWS Batch작업](batch-cwe-target.md)
+ [자습서: EventBridge를 사용하여 AWS Batch 작업 이벤트 수신](batch_cwet.md)
+ [자습서: 실패한 작업 이벤트에 대한 Amazon Simple Notification Service 알림 보내기](batch_sns_tutorial.md)

# AWS Batch 이벤트
<a name="batch_cwe_events"></a>

AWS Batch 는 작업 상태 변경 이벤트를 EventBridge로 전송합니다.는 작업 상태를 AWS Batch 추적합니다. 이전에 제출한 작업의 상태가 변경되면 이벤트가 간접적으로 호출됩니다. `RUNNING` 상태에 있던 작업이 `FAILED`로 이동하는 경우를 예로 들 수 있습니다. 이러한 이벤트는 작업 상태 변경 이벤트로 분류됩니다.

**참고**  
AWS Batch 는 향후 다른 이벤트 유형, 소스 및 세부 정보를 추가할 수 있습니다. 프로그래밍 방식으로 이벤트 JSON 데이터를 역직렬화하는 경우, 알 수 없는 속성을 처리할 수 있도록 애플리케이션이 준비되어야 합니다. 이는 이러한 추가 속성이 추가되는 경우 및 추가될 때 문제가 발생하지 않도록 하기 위한 것입니다.

# 작업 상태 변경 이벤트
<a name="batch_job_events"></a>

기존(이전에 제출한) 작업의 상태가 변경될 때마다 이벤트가 생성됩니다. AWS Batch 작업 상태에 대한 자세한 내용은 [작업 상태](job_states.md) 섹션을 참조하세요.

**참고**  
첫 작업 제출에 대한 이벤트는 생성되지 않습니다.

**Example 작업 상태 변경 이벤트**  
작업 상태 변경 이벤트는 다음 형식으로 제공됩니다. `detail` 섹션은 *AWS Batch API 참조*의 [DescribeJobs](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobs.html) API 작업에서 반환되는 [JobDetail](https://docs.aws.amazon.com/batch/latest/APIReference/API_JobDetail.html) 객체와 유사합니다. EventBridge 파라미터에 대한 자세한 정보는 *Amazon EventBridge 사용 설명서*의 [이벤트 및 이벤트 패턴](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)을 참조하세요.  

```
{
    "version": "0",
    "id": "c8f9c4b5-76e5-d76a-f980-7011e206042b",
    "detail-type": "Batch Job State Change",
    "source": "aws.batch",
    "account": "123456789012",
    "time": "2022-01-11T23:36:40Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:batch:us-east-1:123456789012:job/4c7599ae-0a82-49aa-ba5a-4727fcce14a8"
    ],
    "detail": {
        "jobArn": "arn:aws:batch:us-east-1:123456789012:job/4c7599ae-0a82-49aa-ba5a-4727fcce14a8",
        "jobName": "event-test",
        "jobId": "4c7599ae-0a82-49aa-ba5a-4727fcce14a8",
        "jobQueue": "arn:aws:batch:us-east-1:123456789012:job-queue/PexjEHappyPathCanary2JobQueue",
        "status": "RUNNABLE",
        "attempts": [],
        "createdAt": 1641944200058,
        "retryStrategy": {
            "attempts": 2,
            "evaluateOnExit": []
        },
        "dependsOn": [],
        "jobDefinition": "arn:aws:batch:us-east-1:123456789012:job-definition/first-run-job-definition:1",
        "parameters": {},
        "container": {
            "image": "137112412989.dkr.ecr.us-east-1.amazonaws.com/amazonlinux:latest",
            "command": [
                "sleep",
                "600"
            ],
            "volumes": [],
            "environment": [],
            "mountPoints": [],
            "ulimits": [],
            "networkInterfaces": [],
            "resourceRequirements": [
                {
                    "value": "2",
                    "type": "VCPU"
                }, {
                    "value": "256",
                    "type": "MEMORY"
                }
            ],
            "secrets": []
        },
        "propagateTags": false,
        "platformCapabilities": []
    }
}
```

# 작업 대기열 차단 이벤트
<a name="batch-job-queue-blocked-events"></a>

가 `RUNNABLE` 상태에서 작업을 AWS Batch 감지하여 대기열을 차단할 때마다 Amazon CloudWatch Events에 이벤트가 생성됩니다. 지원되는 차단된 대기열 원인에 대한 자세한 내용은 [`RUNNABLE` 상태에서 정체된 작업](job_stuck_in_runnable.md) 섹션을 참조하세요. [https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobs.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobs.html) API 작업의 `statusReason` 필드에서도 동일한 이유를 사용할 수 있습니다.

**Example 작업 대기열 차단 이벤트**  
작업 대기열 차단 이벤트는 다음과 같은 형식으로 제공됩니다. `detail` 섹션은 *AWS Batch API 참조*의 [DescribeJobs](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobs.html) API 작업에서 반환되는 [JobDetail](https://docs.aws.amazon.com/batch/latest/APIReference/API_JobDetail.html) 객체와 유사합니다. EventBridge 파라미터에 대한 자세한 정보는 *Amazon EventBridge 사용 설명서*의 [이벤트 및 이벤트 패턴](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)을 참조하세요.  

```
{
    "version": "0",
    "id": "c8f9c4b5-76e5-d76a-f980-7011e206042b",
    "detail-type": "Batch Job Queue Blocked",
    "source": "aws.batch",
    "account": "123456789012",
    "time": "2022-01-11T23:36:40Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:batch:us-east-1:123456789012:job/4c7599ae-0a82-49aa-ba5a-4727fcce14a8",
        "arn:aws:batch:us-east-1:123456789012:job-queue/PexjEHappyPathCanary2JobQueue"
    ],
    "detail": {
        "jobArn": "arn:aws:batch:us-east-1:123456789012:job/4c7599ae-0a82-49aa-ba5a-4727fcce14a8",
        "jobName": "event-test",
        "jobId": "4c7599ae-0a82-49aa-ba5a-4727fcce14a8",
        "jobQueue": "arn:aws:batch:us-east-1:123456789012:job-queue/PexjEHappyPathCanary2JobQueue",
        "status": "RUNNABLE",
        "statusReason": "blocked-reason",
        "attempts": [],
        "createdAt": 1641944200058,
        "retryStrategy": {
            "attempts": 2,
            "evaluateOnExit": []
        },
        "dependsOn": [],
        "jobDefinition": "arn:aws:batch:us-east-1:123456789012:job-definition/first-run-job-definition:1",
        "parameters": {},
        "container": {
            "image": "137112412989.dkr.ecr.us-east-1.amazonaws.com/amazonlinux:latest",
            "command": [
                "sleep",
                "600"
            ],
            "volumes": [],
            "environment": [],
            "mountPoints": [],
            "ulimits": [],
            "networkInterfaces": [],
            "resourceRequirements": [
                {
                    "value": "2",
                    "type": "VCPU"
                }, {
                    "value": "256",
                    "type": "MEMORY"
                }
            ],
            "secrets": []
        },
        "propagateTags": false,
        "platformCapabilities": []
    }
}
```

# 서비스 작업 상태 변경 이벤트
<a name="service-job-events"></a>

기존 서비스 작업의 상태가 변경될 때마다 이벤트가 생성됩니다. 서비스 작업 상태에 대한 자세한 내용은 [AWS Batch 서비스 작업 상태를 SageMaker AI 상태로 매핑](service-job-status.md) 섹션을 참조하세요.

**참고**  
첫 작업 제출에 대한 이벤트는 생성되지 않습니다.

**Example 서비스 작업 상태 변경 이벤트**  
작업 상태 변경 이벤트는 다음 형식으로 제공됩니다. `detail` 섹션은 *AWS Batch API 레퍼런스*의 [DescribeServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeServiceJob.html) API 작업에서 반환되는 응답과 유사합니다. EventBridge 파라미터에 대한 자세한 정보는 *Amazon EventBridge 사용 설명서*의 [이벤트 및 이벤트 패턴](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)을 참조하세요.  
`tags` 및 `serviceRequestPayload` 필드는 이벤트 `detail`에 포함되지 않습니다.

```
{
  "version": "0",
  "id": "c8f9c4b5-76e5-d76a-f980-7011e206042b",
  "detail-type": "Batch Service Job State Change",
  "source": "aws.batch",
  "account": "123456789012",
  "time": "2022-01-11T23:36:40Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:batch:us-east-1:123456789012:service-job/4c7599ae-0a82-49aa-ba5a-4727fcce14a8"
  ],
  "detail": {
    "attempts": [
      {
        "serviceResourceId": {
          "name": "TrainingJobArn",
          "value": "arn:aws:sagemaker:us-east-1:123456789012:training-job/AWSBatchmy-training-job88b610a69aa8380ca5b0a7aba3f81cb8"
        },
        "startedAt": 1641944300058,
        "stoppedAt": 1641944400058,
        "statusReason": "Received status from SageMaker: Training job completed"
      }
    ],
    "createdAt": 1641944200058,
    "jobArn": "arn:aws:batch:us-east-1:123456789012:service-job/4c7599ae-0a82-49aa-ba5a-4727fcce14a8",
    "jobId": "0bb17543-ece6-4480-b1a7-a556d344746b",
    "jobName": "event-test",
    "jobQueue": "arn:aws:batch:us-east-1:123456789012:job-queue/HappyPathJobQueue",
    "latestAttempt": {
      "serviceResourceId": {
        "name": "TrainingJobArn",
        "value": "arn:aws:sagemaker:us-east-1:123456789012:training-job/AWSBatchmy-training-job88b610a69aa8380ca5b0a7aba3f81cb8"
      }
    },
    "serviceJobType": "SAGEMAKER_TRAINING",
    "startedAt": 1641944300058,
    "status": "SUCCEEDED",
    "statusReason": "Received status from SageMaker: Training job completed",
    "stoppedAt": 1641944400058,
    "timeoutConfig": {
      "attemptDurationSeconds": 60
    }
  }
}
```

# 서비스 작업 대기열 차단 이벤트
<a name="batch-service-job-queue-blocked-events"></a>

가 차단된 대기열을 AWS Batch 감지하면 Amazon CloudWatch Events에 이벤트가 생성됩니다. 차단된 대기열의 사유는 [https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeServiceJob.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeServiceJob.html) API 작업의 `statusReason` 필드에서 찾을 수 있습니다.

**Example 서비스 작업 대기열 차단 이벤트**  
서비스 작업 대기열 차단 이벤트는 다음과 같은 형식으로 제공됩니다. `detail` 섹션은 *AWS Batch API 레퍼런스*의 [DescribeServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeServiceJob.html) API 작업에서 반환되는 응답과 유사합니다. EventBridge 파라미터에 대한 자세한 정보는 *Amazon EventBridge 사용 설명서*의 [이벤트 및 이벤트 패턴](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)을 참조하세요.  
`tags` 및 `serviceRequestPayload` 필드는 이벤트 `detail`에 포함되지 않습니다.

```
{
  "version": "0",
  "id": "c8f9c4b5-76e5-d76a-f980-7011e206042b",
  "detail-type": "Batch Service Job Queue Blocked",
  "source": "aws.batch",
  "account": "123456789012",
  "time": "2022-01-11T23:36:40Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:batch:us-east-1:123456789012:service-job/4c7599ae-0a82-49aa-ba5a-4727fcce14a8"
  ],
  "detail": {
    "attempts": [],
    "createdAt": 1641944200058,
    "jobArn": "arn:aws:batch:us-east-1:123456789012:service-job/4c7599ae-0a82-49aa-ba5a-4727fcce14a8",
    "jobId": "6271dfdf-d8a7-41b1-a4d2-55a2224f5375",
    "jobName": "event-test",
    "jobQueue": "arn:aws:batch:us-east-1:123456789012:job-queue/HappyPathJobQueue",
    "serviceJobType": "SAGEMAKER_TRAINING",
    "status": "RUNNABLE",
    "statusReason": "blocked-reason",
    "timeoutConfig": {
      "attemptDurationSeconds": 60
    }
  }
}
```

# 서비스 작업 선점 이벤트
<a name="batch-service-job-preemption-events"></a>

선점 이벤트는 선점 시퀀스가 시작되거나 완료될 때마다 게시됩니다. 시작된 이벤트는 대여된 용량을 회수하기 위해 선점이 처음 트리거될 때 생성됩니다. 선점 시퀀스가 완료되고 선점된 시도의 요약이 포함되면 완료된 이벤트가 생성됩니다.

**Example 서비스 작업 선점 시작 이벤트**  
서비스 작업 선점 시작 이벤트는 다음 형식으로 전달됩니다. EventBridge 파라미터에 대한 자세한 정보는 *Amazon EventBridge 사용 설명서*의 [이벤트 및 이벤트 패턴](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)을 참조하세요.  

```
{
  "version": "0",
  "id": "1b4a511e-2737-226a-a1e7-fc97f1cd9681",
  "detail-type": "Batch Service Job Preemption Started",
  "source": "aws.batch",
  "account": "123456789012",
  "time": "2026-03-16T19:57:27Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:batch:us-east-1:123456789012:service-job/51f245a9-2995-4a53-bced-7b3c00028f84"
  ],
  "detail": {
    "statusReason": "PREEMPTION_IN_PROGRESS: Cross-share preemption triggered to reclaim borrowed capacity",
    "preemptedJobArn": "arn:aws:batch:us-east-1:123456789012:service-job/51f245a9-2995-4a53-bced-7b3c00028f84",
    "status": "RUNNING"
  }
}
```

**Example 서비스 작업 선점 완료 이벤트**  
서비스 작업 선점 완료 이벤트는 다음 형식으로 전달됩니다. `preemptionSummary` 필드에는 개수 및 가장 최근의 선점된 시도 정보를 포함하여 선점된 시도에 대한 세부 정보가 포함됩니다.  

```
{
  "version": "0",
  "id": "2b1c6151-c166-edf5-822c-211b3bfd46b2",
  "detail-type": "Batch Service Job Preemption Completed",
  "source": "aws.batch",
  "account": "123456789012",
  "time": "2026-03-16T19:57:47Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:batch:us-east-1:123456789012:service-job/51f245a9-2995-4a53-bced-7b3c00028f84"
  ],
  "detail": {
    "preemptedJobArn": "arn:aws:batch:us-east-1:123456789012:service-job/51f245a9-2995-4a53-bced-7b3c00028f84",
    "preemptionSummary": {
      "preemptedAttemptCount": 1,
      "recentPreemptedAttempts": [
        {
          "serviceResourceId": {
            "name": "TrainingJobArn",
            "value": "arn:aws:sagemaker:us-east-1:123456789012:training-job/AWSBatchqm-training-job9b2f08f911cf3dd794c1b3e72ae7ca5f"
          },
          "startedAt": 1773690923359,
          "stoppedAt": 1773691064669,
          "statusReason": "Cross-share preemption triggered to reclaim borrowed capacity"
        }
      ]
    },
    "status": "RUNNABLE"
  }
}
```

# 자습서:에서 AWS 사용자 알림 사용 AWS Batch
<a name="using-user-notifications"></a>

[AWS 사용자 알림](https://docs.aws.amazon.com/notifications/latest/userguide/what-is.html)을 사용하여 AWS Batch 이벤트에 대한 알림을 받을 전송 채널을 설정할 수 있습니다. 이벤트가 지정한 규칙과 일치하면 알림을 받습니다. 이메일, [채팅 애플리케이션의 Amazon Q Developer](https://docs.aws.amazon.com/chatbot/latest/adminguide/what-is.html) 채팅 알림 또는 [AWS Console Mobile Application](https://docs.aws.amazon.com/consolemobileapp/latest/userguide/what-is-consolemobileapp.html) 푸시 알림을 비롯한 여러 채널을 통해 이벤트에 대한 알림을 받을 수 있습니다. [콘솔 알림 센터](https://console.aws.amazon.com/notifications/)에서도 알림을 볼 수 있습니다. 사용자 알림은 집계를 지원하므로 특정 이벤트 중에 받는 알림 수를 줄일 수 있습니다.

에서 사용자 알림을 구성하려면 AWS Batch:

1. [AWS Batch 콘솔](https://console.aws.amazon.com/batch/home)을 엽니다.

1. **대시보드**를 선택합니다.

1. **알림 구성**을 선택합니다.

1. ** AWS 사용자 알림**에서 **알림 구성 생성을** 선택합니다.

사용자 알림을 구성하고 보는 방법에 대한 자세한 내용은 [AWS 사용자 알림 시작하기를 참조하세요](https://docs.aws.amazon.com/notifications/latest/userguide/getting-started.html).

# EventBridge 대상으로 사용되는 AWS Batch작업
<a name="batch-cwe-target"></a>

Amazon EventBridge는 거의 실시간으로 Amazon Web Services 리소스의 변경 사항을 제공합니다. 일반적으로 아Amazon Elastic Container Service, Amazon Elastic Kubernetes Service의 AWS Batch과 AWS Fargate 작업은 EventBridge 대상이 될 수 있습니다. 단순한 규칙을 사용하여 사용자는 이벤트를 매치하고 이에 대한 응답으로 AWS Batch 작업을 제출할 수 있습니다. 자세한 내용은 *Amazon EventBridge 사용 설명서*의 [EventBridge란?](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html)을 참조하세요.

또한 EventBridge로 **cron** 또는 rate 표현식을 사용하여 특정 시간에 간접 호출되는 자동화 작업을 예약할 수 있습니다. 자세한 내용은 *Amazon EventBridge 사용 설명서*의 [예약 운영 EventBridge 규칙 생성](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)을 참조하세요.

이벤트가 이벤트 패턴과 일치하는 경우에 운영되는 규칙 생성에 대한 자세한 내용은 *Amazon EventBridge 사용 설명서* [이벤트 대응 Amazon EventBridge 규칙 생성하기](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule.html)를 참조하세요.

EventBridge 대상 AWS Batch 작업의 일반 사용 사례에는 다음과 같은 사용 사례가 포함됩니다.
+ 예약된 작업은 일정한 시간 간격으로 발생합니다. 예를 들어 Amazon EC2 스팟 인스턴스 비용이 더 저렴한 사용량이 적은 시간에만 **cron** 작업이 발생합니다.
+ AWS Batch 작업은 CloudTrail에 기록된 API 작업에 대응하여 실행됩니다. 예를 들어, 객체가 지정된 Amazon S3 버킷에 업로드될 때마다 작업이 제출됩니다. 이러한 상황이 발생할 때마다 EventBridge 입력 트랜스포머는 객체의 버킷과 키 이름을 AWS Batch 파라미터에 전달합니다.
**참고**  
이 시나리오에서 모든 관련 AWS 리소스는 동일한 리전에 있어야 합니다. 여기에는 Amazon S3 버킷, EventBridge 규칙, CloudTrail 로그와 같은 리소스가 포함됩니다.

EventBridge 규칙 및 대상과 함께 AWS Batch 작업을 제출하기 전에 EventBridge 서비스는 AWS Batch 작업을 실행할 수 있는 몇 가지 권한이 필요합니다. EventBridge 콘솔에서 AWS Batch 작업을 대상으로 지정하는 규칙을 생성할 때 사용자는 그 역할도 생성할 수 있습니다. 이 역할에 필요한 서비스 보안 주체 및 IAM 권한에 대한 자세한 내용은 [EventBridge IAM 역할](CWE_IAM_role.md) 섹션을 참조하세요.

**Topics**
+ [자습서: 예약된 AWS Batch 작업 생성](scheduled-batch-job.md)
+ [자습서: 이벤트 패턴이 있는 규칙 생성](event-pattern-batch-job.md)
+ [자습서: EventBridge 입력 변환기를 사용하여 일정에 따라 AWS Batch 대상에 이벤트 정보 전달](cwe-input-transformer.md)

# 자습서: 예약된 AWS Batch 작업 생성
<a name="scheduled-batch-job"></a>

다음은 예약된 AWS Batch 작업과 필요한 EventBridge IAM 역할을 생성하는 방법을 소개합니다.

**EventBridge를 사용하여 예약된 AWS Batch 작업을 생성하려면**
**참고**  
이 절차는 Amazon ECS, Amazon EKS 및 AWS Fargate의 모든 AWS Batch 작업에 적용됩니다.

1. Amazon EventBridge 콘솔([https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/))을 엽니다.

1. 탐색 모음에서 사용할 AWS 리전(을)를 선택합니다.

1. 탐색 창에서 **규칙**를 선택합니다.

1. **규칙 생성**을 선택합니다.

1. **이름**에 해당 컴퓨팅 환경의 고유한 이름을 지정합니다. 이름은 최대 64자를 포함할 수 있습니다. 대문자 및 소문자, 숫자, 하이픈(-) 및 밑줄(\$1)을 포함할 수 있습니다.
**참고**  
규칙은 동일한 지역과 동일한 이벤트 버스의 다른 규칙과 동일한 이름을 가질 수 없습니다.

1. (선택 사항) **설명**에서 규칙에 대한 설명을 입력합니다.

1. **이벤트 버스**에서 이 규칙과 연결할 이벤트 버스를 선택합니다. 이 규칙이 자신의 계정에서 발생하는 이벤트와 일치하도록 하려면 **기본**을 선택합니다 사용자 계정의 AWS 서비스가 이벤트를 내보내면 그 이벤트는 계정의 기본 이벤트 버스로 이동합니다.

1. (선택 사항) 규칙을 즉시 실행하지 않으려면 선택한 버스의 규칙을 해제하십시오.

1. **규칙 유형**에서 **스케줄**을 선택합니다.

1. **계속해서 규칙 생성하기** 또는 **다음**을 선택합니다.

1. **스케줄 패턴**에서 다음을 수행합니다.
   + **오전 8시와 같이 특정 시간에 실행되는 세분화된 일정을 선택합니다. 매월 첫째 월요일의 PST**와 cron 표현식을 입력합니다. 자세한 내용은 *Amazon EventBridge 사용 설명서*의 [Cron 표현식](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html#eb-cron-expressions)을 참조하세요.
   + **10분마다와 같이 일반 속도로 실행되는 일정**을 선택하고 rate 표현식을 입력합니다.

1. **다음**을 선택합니다.

1. **대상 유형**에서 **AWS 서비스**를 선택합니다.

1. **대상 선택에서** **배치 작업 대기열**을 선택합니다. 이후 다음 항목을 구성합니다.
   + **Job queue**(작업 대기열): 작업을 예약할 작업 대기열의 Amazon 리소스 이름(ARN)을 입력합니다.
   + **Job definition(작업 정의):** 작업에 사용할 작업 정의의 이름과 개정 또는 전체 ARN을 입력합니다.
   + **Job name(작업 이름):** 작업의 이름을 입력합니다.
   + **Array size(배열 크기):** (선택 사항) 두 개 이상의 복사본을 실행할 수 있도록 작업의 배열 크기를 입력합니다. 자세한 내용은 [배열 작업](array_jobs.md) 섹션을 참조하세요.
   + **Job attempts(작업 시도):** (선택 사항) 작업이 실패할 경우 작업을 다시 시도할 최대 횟수를 입력합니다. 자세한 내용은 [작업 자동 재시도](job_retries.md) 섹션을 참조하세요.

1. **Batch job queue**(배치 작업 대기열) 대상 유형에 대해 EventBridge에서는 대상에 이벤트를 보낼 권한이 필요합니다. EventBridge는 규칙 실행에 필요한 IAM 역할을 생성할 수 있습니다. 다음 중 하나를 수행하세요.
   + IAM 역할을 자동으로 생성하려면 **이 특정 리소스에 대해 새 역할 생성**을 선택합니다.
   + 이미 생성한 IAM 역할을 사용하려면 **기존 역할 사용**을 선택합니다.

1. (선택 사항) **추가 설정**(Additional settings)을 확장합니다.

   1. **대상 입력 구성**의 경우 이벤트의 텍스트가 대상으로 전달되기 전에 처리되는 방식을 선택합니다.

   1. **최대 이벤트 수명**에서 처리되지 않은 이벤트가 보관되는 시간 간격을 지정합니다.

   1. **재시도 횟수**에는 이벤트 재시도 횟수를 입력합니다.

   1. **DLQ(Dead Letter Queue)**에서 처리되지 않은 이벤트 처리 방법에 대한 옵션을 선택합니다. 필요한 경우 DLQ(Dead Letter Queue) 대기열로 사용할 Amazon SQS 대기열을 지정합니다.

1. (선택 사항) 이 규칙에 다른 대상을 추가하려면 **다른 대상 추가**를 선택합니다.

1. **다음**을 선택합니다.

1. (선택 사항) **태그**에서 **새 태그 추가**를 선택하여 규칙의 리소스 레이블을 추가합니다. 자세한 내용은 [Amazon EventBridge 태그](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-tagging.html)를 참조하세요.

1. **다음**을 선택합니다.

1. **검토 및 생성**에서 구성 단계를 검토하십시오. 변경해야 하는 경우 **편집**을 선택합니다 작업을 마쳤으면 **규칙 생성**을 선택합니다.

이벤트 규칙을 생성하는 방법에 대한 자세한 내용은 *Amazon EventBridge 사용 설명서*의 [예약 운영 EventBridge 규칙 생성](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)을 참조하세요.

# 자습서: 이벤트 패턴이 있는 규칙 생성
<a name="event-pattern-batch-job"></a>

다음 절차는 이벤트 패턴이 있는 규칙을 생성하는 방법입니다.

**이벤트가 정의된 패턴과 일치할 때 이벤트를 대상으로 보내는 규칙을 생성하려면**
**참고**  
이 절차는 Amazon ECS, Amazon EKS 및 AWS Fargate의 모든 AWS Batch 작업에 적용됩니다.

1. Amazon EventBridge 콘솔([https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/))을 엽니다.

1. 탐색 모음에서 사용할 AWS 리전(을)를 선택합니다.

1. 탐색 창에서 **규칙**를 선택합니다.

1. **규칙 생성**을 선택합니다.

1. **이름**에 해당 컴퓨팅 환경의 고유한 이름을 지정합니다. 이름은 최대 64자를 포함할 수 있습니다. 대문자 및 소문자, 숫자, 하이픈(-) 및 밑줄(\$1)을 포함할 수 있습니다.
**참고**  
규칙은 동일한 지역과 동일한 이벤트 버스의 다른 규칙과 동일한 이름을 가질 수 없습니다.

1. (선택 사항) **설명**에서 규칙에 대한 설명을 입력합니다.

1. **이벤트 버스**에서 이 규칙과 연결할 이벤트 버스를 선택합니다. 이 규칙이 자신의 계정에서 발생하는 이벤트와 일치하도록 하려면 **기본**을 선택합니다 사용자 계정의 AWS 서비스가 이벤트를 내보내면 그 이벤트는 계정의 기본 이벤트 버스로 이동합니다.

1. (선택 사항) 규칙을 즉시 실행하지 않으려면 선택한 버스의 규칙을 해제하십시오.

1. **규칙 유형(Rule type)**에서 **이벤트 패턴이 있는 규칙(Rule with an event pattern)**을 생성합니다.

1. [**Next**]를 선택합니다.

1. **이벤트 소스**의 경우, **AWS 이벤트 또는 EventBridge 파트너 이벤트**를 선택합니다.

1. (선택 사항) **샘플 이벤트**의 경우:

   1. **샘플 이벤트 유형**에서 **AWS 이벤트**를 선택합니다.

   1. **샘플 이벤트**에서 **배치 작업 상태 변경**을 선택합니다.

1. **생성 방법**에서 **패턴 양식 사용**을 선택합니다.

1. **이벤트 패턴**의 경우:

   1. **이벤트 소스**에서 **AWS 서비스**를 선택합니다.

   1. **AWS 서비스**에서 **배치**를 선택합니다.

   1. **이벤트 유형**에서 **배치 잡 상태 변경**을 선택합니다.

1. **다음**을 선택합니다.

1. **대상 유형**에서 **AWS 서비스**를 선택합니다.

1. **대상 유형 선택**에서 대상 유형을 선택합니다. 예를 들어, **배치 작업 대기열**을 선택합니다. 다음 사항을 지정합니다.
   + **Job queue**(작업 대기열): 작업을 예약할 작업 대기열의 Amazon 리소스 이름(ARN)을 입력합니다.
   + **Job definition(작업 정의):** 작업에 사용할 작업 정의의 이름과 개정 또는 전체 ARN을 입력합니다.
   + **Job name(작업 이름):** 작업의 이름을 입력합니다.
   + **Array size(배열 크기):** (선택 사항) 두 개 이상의 복사본을 실행할 수 있도록 작업의 배열 크기를 입력합니다. 자세한 내용은 [배열 작업](array_jobs.md) 섹션을 참조하세요.
   + **Job attempts(작업 시도):** (선택 사항) 작업이 실패할 경우 작업을 다시 시도할 최대 횟수를 입력합니다. 자세한 내용은 [작업 자동 재시도](job_retries.md) 섹션을 참조하세요.

1. **Batch job queue**(배치 작업 대기열) 대상 유형에 대해 EventBridge에서는 대상에 이벤트를 보낼 권한이 필요합니다. EventBridge는 규칙 실행에 필요한 IAM 역할을 생성할 수 있습니다. 다음 중 하나를 수행하세요.
   + IAM 역할을 자동으로 생성하려면 **이 특정 리소스에 대해 새 역할 생성**을 선택합니다.
   + 이전에 생성한 IAM 역할을 사용하려면 **기존 역할 사용**을 선택합니다.

1. (선택 사항) **추가 설정**(Additional settings)을 확장합니다.

   1. **대상 입력 구성**에서 이벤트의 텍스트 처리 방법을 선택합니다.

   1. **최대 이벤트 수명**에서 처리되지 않은 이벤트가 보관되는 시간 간격을 지정합니다.

   1. **재시도 횟수**에는 이벤트 재시도 횟수를 입력합니다.

   1. **DLQ(Dead Letter Queue)**에서 처리되지 않은 이벤트 처리 방법에 대한 옵션을 선택합니다. 필요한 경우 DLQ(Dead Letter Queue) 대기열로 사용할 Amazon SQS 대기열을 지정합니다.

1. (선택 사항) 다른 대상을 추가하려면 **다른 대상 추가**를 선택합니다.

1. **다음**을 선택합니다.

1. (선택 사항) **태그**에서 **새 태그 추가**를 선택하여 리소스 레이블을 추가합니다. 자세한 내용은 *Amazon EventBridge 사용 설명서*의 [Amazon EventBridge 태그](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-tagging.html)를 참조하세요.

1. **다음**을 선택합니다.

1. **검토 및 생성**에서 구성 단계를 검토하십시오. 변경해야 하는 경우 **편집**을 선택합니다 작업을 마친 다음 **규칙 생성**을 선택합니다.

   규칙 생성에 관한 자세한 내용은 *Amazon EventBridge 사용 설명서*의 [이벤트 대응 Amazon EventBridge 규칙 생성](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)을 참조하세요.

# 자습서: EventBridge 입력 변환기를 사용하여 일정에 따라 AWS Batch 대상에 이벤트 정보 전달
<a name="cwe-input-transformer"></a>

EventBridge 입력 변환기를 사용하여 작업 제출 AWS Batch 시에 이벤트 정보를 전달할 수 있습니다. 이는 다른 AWS 이벤트 정보의 결과로 작업을 호출하는 경우 특히 유용할 수 있습니다. Amazon S3 버킷에 객체를 업로드하는 경우를 예로 들 수 있습니다. 컨테이너 명령에 파라미터 대체 값이 포함된 작업 정의를 사용할 수도 있습니다. EventBridge 입력 변환기는 이벤트 데이터를 기반으로 파라미터 값을 제공할 수 있습니다.

그런 다음 AWS Batch 이벤트에서 정보를 구문 분석하여 `parameters` 객체로 변환하는 이벤트 대상을 생성합니다. 작업이 실행될 때 트리거 이벤트의 파라미터는 작업 컨테이너의 명령으로 전달됩니다.

**참고**  
이 시나리오에서는 모든 AWS 리소스(예: Amazon S3 버킷, EventBridge 규칙 및 CloudTrail 로그)가 동일한 리전에 있어야 합니다.

**입력 변환기를 사용하는 AWS Batch 대상을 생성하려면**

1. Amazon EventBridge 콘솔([https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/))을 엽니다.

1. 탐색 모음에서 사용할 AWS 리전 를 선택합니다.

1. 탐색 창에서 **규칙**을 선택합니다.

1. **규칙 생성**을 선택합니다.

1. **이름**에 해당 컴퓨팅 환경의 고유한 이름을 지정합니다. 이름은 최대 64자를 포함할 수 있습니다. 대문자 및 소문자, 숫자, 하이픈(-) 및 밑줄(\$1)을 포함할 수 있습니다.
**참고**  
규칙은 동일한 및 동일한 이벤트 버스의 다른 규칙 AWS 리전 과 동일한 이름을 가질 수 없습니다.

1. (선택 사항) **설명**에서 규칙에 대한 설명을 입력합니다.

1. **이벤트 버스**에서 이 규칙과 연결할 이벤트 버스를 선택합니다. 이 규칙이 자신의 계정에서 발생하는 이벤트와 일치하도록 하려면 **기본**을 선택합니다. 계정 AWS 서비스 의가 이벤트를 내보내면 항상 계정의 기본 이벤트 버스로 이동합니다.

1. (선택 사항) 규칙을 즉시 실행하지 않으려면 선택한 버스의 규칙을 해제하십시오.

1. **규칙 유형**에서 **스케줄**을 선택합니다.

1. **계속해서 규칙 생성하기** 또는 **다음**을 선택합니다.

1. **스케줄 패턴**에서 다음을 수행합니다.
   + **오전 8시와 같이 특정 시간에 실행되는 세분화된 일정을 선택합니다. 매월 첫째 월요일의 PST**와 cron 표현식을 입력합니다. 자세한 내용은 *Amazon EventBridge 사용 설명서*의 [Cron 표현식](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html#eb-cron-expressions)을 참조하세요.
   + **10분마다와 같이 일반 속도로 실행되는 일정**을 선택하고 rate 표현식을 입력합니다.

1. **다음**을 선택합니다.

1. **대상 유형**에서 **AWS 서비스**를 선택합니다.

1. **대상 선택에서** **배치 작업 대기열**을 선택합니다. 이후 다음 항목을 구성합니다.
   + **Job queue**(작업 대기열): 작업을 예약할 작업 대기열의 Amazon 리소스 이름(ARN)을 입력합니다.
   + **Job definition(작업 정의):** 작업에 사용할 작업 정의의 이름과 개정 또는 전체 ARN을 입력합니다.
   + **Job name(작업 이름):** 작업의 이름을 입력합니다.
   + **Array size(배열 크기):** (선택 사항) 두 개 이상의 복사본을 실행할 수 있도록 작업의 배열 크기를 입력합니다. 자세한 내용은 [배열 작업](array_jobs.md) 단원을 참조하십시오.
   + **Job attempts(작업 시도):** (선택 사항) 작업이 실패할 경우 작업을 다시 시도할 최대 횟수를 입력합니다. 자세한 내용은 [작업 자동 재시도](job_retries.md) 단원을 참조하십시오.

1. **Batch job queue**(배치 작업 대기열) 대상 유형에 대해 EventBridge에서는 대상에 이벤트를 보낼 권한이 필요합니다. EventBridge는 규칙 실행에 필요한 IAM 역할을 생성할 수 있습니다. 다음 중 하나를 수행하세요.
   + IAM 역할을 자동으로 생성하려면 **이 특정 리소스에 대해 새 역할 생성**을 선택합니다.
   + 이미 생성한 IAM 역할을 사용하려면 **기존 역할 사용**을 선택합니다.

1. (선택 사항) **추가 설정**(Additional settings)을 확장합니다.

1. **Additional settings**(추가 설정) 섹션의 **Configure target input**(대상 입력 구성)에서 **Input Transformer**(입력 변환기)를 선택합니다.

1. **Configure input transformer**(입력 구성 변환기)를 선택합니다.

1. (선택 사항) **샘플 이벤트**의 경우:

   1. **샘플 이벤트 유형**에서 **AWS 이벤트**를 선택합니다.

   1. **샘플 이벤트**에서 **배치 작업 상태 변경**을 선택합니다.

1. **대상 입력 변환기** 섹션의 **입력 경로**에서 트리거 이벤트의 구문 분석 값을 지정합니다. 예를 들어, **배치 작업 상태 변경** 이벤트를 파싱하려면 다음의 JSON 형식을 사용합니다.

   ```
   {
       "instance": "$.detail.jobId",
       "state": "$.detail.status"
   }
   ```

1. **템플릿**에는 다음 사항을 입력합니다.

   ```
   {
       "instance": <jobId> ,
       "status": <status>
   }
   ```

1. **확인**을 선택합니다.

1. **최대 이벤트 수명**에서 처리되지 않은 이벤트가 보관되는 시간 간격을 지정합니다.

1. **재시도 횟수**에는 이벤트 재시도 횟수를 입력합니다.

1. **DLQ(Dead Letter Queue)**에서 처리되지 않은 이벤트 처리 방법에 대한 옵션을 선택합니다. 필요한 경우 DLQ(Dead Letter Queue) 대기열로 사용할 Amazon SQS 대기열을 지정합니다.

1. (선택 사항) 다른 대상을 추가하려면 **다른 대상 추가**를 선택합니다.

1. **다음**을 선택합니다.

1. (선택 사항) **태그**에서 **새 태그 추가**를 선택하여 리소스 레이블을 추가합니다. 자세한 내용은 *Amazon EventBridge 사용 설명서*의 [Amazon EventBridge 태그](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-tagging.html)를 참조하세요.

1. **다음**을 선택합니다.

1. **검토 및 생성**에서 구성 단계를 검토하십시오. 변경해야 하는 경우 **편집**을 선택합니다 작업을 마친 다음 **규칙 생성**을 선택합니다.

# 자습서: EventBridge를 사용하여 AWS Batch 작업 이벤트 수신
<a name="batch_cwet"></a>

이 자습서에서는 AWS Batch 작업 이벤트를 수신 대기하고 CloudWatch Logs 로그 스트림으로 출력하는 간단한 AWS Lambda 함수를 설정합니다.

## 사전 조건
<a name="cwet_prereqs"></a>

이 자습서에서는 작업을 수락할 준비가 된 작업 중인 컴퓨팅 환경과 작업 대기열이 있다고 가정합니다. 이벤트를 캡처할 실행 중인 컴퓨팅 환경 및 작업 대기열이 없는 경우 [AWS Batch 자습서 시작하기](Batch_GetStarted.md)의 단계에 따라 하나를 생성합니다. 이 자습서를 마치고 나면 이 작업 대기열에 작업을 제출하여 Lambda 함수가 올바로 구성되었는지 테스트할 수 있습니다.

**Topics**
+ [사전 조건](#cwet_prereqs)
+ [자습서: Lambda 함수 생성](cwet_create_lam.md)
+ [자습서: 이벤트 규칙 등록](cwet_register_event_rule.md)
+ [자습서: 구성 테스트](cwet_test.md)

# 자습서: Lambda 함수 생성
<a name="cwet_create_lam"></a>

 이 절차에서는 AWS Batch 이벤트 스트림 메시지의 대상으로 사용할 간단한 Lambda 함수를 생성합니다.

**대상 Lambda 함수를 생성하려면**

1. [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)에서 AWS Lambda 콘솔을 엽니다.

1. **함수 생성**과 **새로 작성**을 차례로 선택합니다.

1. **함수 이름**에 **batch-event-stream-handler**를 입력합니다.

1. **런타임**에서 **Python 3.8**을 선택합니다.

1. **함수 생성(Create function)**을 선택합니다.

1. **함수 코드** 섹션에서 다음 예제와 일치하도록 샘플 코드를 수정합니다.

   ```
   import json
   
   
   def lambda_handler(event, _context):
       # _context is not used
       del _context
       if event["source"] != "aws.batch":
           raise ValueError("Function only supports input from events with a source type of: aws.batch")
   
       print(json.dumps(event))
   ```

   다음은 AWS Batch에서 전송하는 이벤트를 인쇄하는 간단한 Python 3.8 함수입니다. 모든 설정이 올바르게 구성되면 이 자습서가 끝날 때 이 Lambda 함수와 연결된 CloudWatch Logs 로그 스트림에 이벤트 세부 정보가 표시됩니다.

1. **배포(Deploy)**를 선택합니다.

# 자습서: 이벤트 규칙 등록
<a name="cwet_register_event_rule"></a>

이 섹션에서 AWS Batch 리소스에서 나온 작업 이벤트를 캡처하는 EventBridge 이벤트 규칙을 생성합니다. 이 규칙은 규칙이 정의된 계정 내의 AWS Batch에서 나온 모든 이벤트를 캡처합니다. 작업 메시지 자체에 작업이 제출된 작업 대기열과 같은 이벤트 소스에 대한 정보가 포함됩니다. 이 정보를 사용하여 프로그래밍 방식으로 이벤트를 필터링하고 정렬할 수 있습니다.

**참고**  
AWS Management Console(을)를 사용하여 이벤트 규칙을 만들 경우 콘솔이 Lambda 함수를 호출할 EventBridge 권한을 부여하는 데 필요한 IAM 권한을 자동으로 추가합니다. AWS CLI(을)를 사용하여 이벤트 규칙을 생성하는 경우 권한을 명시적으로 부여해야 합니다. 자세한 내용을 알아보려면 *Amazon EventBridge 사용 설명서*의 [이벤트 및 이벤트 패턴](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)을 참조하세요.

**EventBridge 규칙을 생성하려면**

1. [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/)에서 Amazon EventBridge 콘솔을 엽니다.

1. 탐색 창에서 **규칙**을 선택합니다.

1. **규칙 생성**을 선택합니다.

1. 규칙에 대해 이름과 설명을 입력하세요.

   규칙은 동일한 지역과 동일한 이벤트 버스의 다른 규칙과 동일한 이름을 가질 수 없습니다.

1. **이벤트 버스**에서 이 규칙과 연결할 이벤트 버스를 선택합니다. 이 규칙이 자신의 계정에서 발생하는 이벤트와 일치하도록 하려면 **AWS 기본 이벤트 버스(default event bus)**를 선택합니다. 계정의 AWS 서비스가 이벤트를 출력하면 항상 계정의 기본 이벤트 버스로 이동합니다.

1. **규칙 유형(Rule type)**에서 **이벤트 패턴이 있는 규칙(Rule with an event pattern)**을 생성합니다.

1. **다음**을 선택합니다.

1. **이벤트 소스**에서 **기타**를 선택합니다.

1. **이벤트 패턴**에서 **사용자 지정 패턴(JSON 편집기)**을 선택합니다.

1. 다음 이벤트 패턴을 텍스트 영역에 붙여 넣습니다.

   ```
   {
     "source": [
       "aws.batch"
     ]
   }
   ```

   이 규칙은 모든 AWS Batch 그룹과 모든 AWS Batch 이벤트에 적용됩니다. 또는 더 한정적인 규칙을 만들어 일부 결과를 필터링할 수 있습니다.

1. **다음**을 선택합니다.

1. **대상 유형**에서 **AWS서비스**를 선택합니다.

1. **대상 선택**에서 **Lambda 함수**를 선택하고 Lambda 함수를 선택합니다.

1. (선택 사항)**추가 설정**에서 다음을 수행합니다.

   1. **최대 이벤트 기간(Maximum age of event)**에 1분(00:01)에서 24시간(24:00) 사이의 값을 입력합니다.

   1. **재시도(Retry attempts)**에 0에서 185 사이의 숫자를 입력합니다.

   1. **배달 못한 편지 대기열(Dead-letter queue)**에서 표준 Amazon SQS 대기열을 배달 못한 편지 대기열로 사용할지를 선택합니다. 이벤트가 대상에 성공적으로 전달되지 않은 경우 EventBridge는 이 규칙과 일치하는 이벤트를 배달 못한 편지 대기열로 보냅니다. 다음 중 하나를 수행합니다.
      + 배달 못한 편지 대기열을 사용하지 않으려면 **없음(None)**을 선택합니다.
      + **현재 AWS 계정에서 DLQ(Dead Letter Queue)로 사용할 Amazon SQS 대기열 선택(Select an Amazon SQS queue in the current account to use as the dead-letter queue)**을 선택하고 드롭다운에서 사용할 대기열을 선택합니다.
      + **다른 AWS 계정에서 배달 못한 편지 대기열로 사용할 Amazon SQS 대기열 선택**을 선택한 다음, 사용할 대기열의 ARN을 입력합니다. 메시지를 보낼 수 있는 EventBridge 권한을 부여하는 리소스 기반 정책을 대기열에 연결해야 합니다. 자세한 정보는 *Amazon EventBridge 사용 설명서*의 [DLQ(Dead Letter Queue)에 대한 권한 부여](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rule-dlq.html#eb-dlq-perms)를 참조하세요.

1. **다음**을 선택합니다.

1. (선택 사항)규칙에 대해 하나 이상의 태그를 입력하세요. 자세한 정보는 *Amazon EventBridge 사용 설명서*의 [Amazon EventBridge 태그](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-tagging.html)를 참조하세요.

1. **다음**을 선택합니다.

1. 규칙의 세부 정보를 검토하고 **규칙 생성**을 선택합니다.

# 자습서: 구성 테스트
<a name="cwet_test"></a>

작업 대기열에 작업을 제출하여 EventBridge 구성을 테스트할 수 있습니다. 모두 제대로 구성된 경우 Lambda 함수가 트리거되고 해당 함수에 대한 CloudWatch Logs 로그 스트림에 이벤트 데이터를 씁니다.

**구성을 테스트하려면**

1. [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/)에서 AWS Batch 콘솔을 엽니다.

1. 새 AWS Batch 작업을 제출합니다. 자세한 내용은 [자습서: 작업 제출](submit_job.md) 섹션을 참조하세요.

1. [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)에서 CloudWatch 콘솔을 엽니다.

1. 탐색 창에서 **로그**를 선택하고 Lambda 함수의 로그 그룹을 선택합니다(예: **/aws/lambda/***my-function*).

1. 이벤트 데이터를 보려면 로그 스트림을 선택합니다.

# 자습서: 실패한 작업 이벤트에 대한 Amazon Simple Notification Service 알림 보내기
<a name="batch_sns_tutorial"></a>

이 자습서에서는 작업이 `FAILED` 상태로 변경된 작업 이벤트만 캡처하는 Amazon EventBridge 이벤트 규칙을 구성합니다. 이 자습서를 마치면 선택적으로 이 작업 대기열에 작업을 제출할 수도 있습니다. 이는 Amazon SNS 알림을 올바르게 구성했는지 테스트합니다.

## 사전 조건
<a name="batch_sns_prereq"></a>

이 자습서에서는 작업을 수락할 준비가 된 작업 중인 컴퓨팅 환경과 작업 대기열이 있다고 가정합니다. 이벤트를 캡처할 실행 중인 컴퓨팅 환경 및 작업 대기열이 없는 경우 [AWS Batch 자습서 시작하기](Batch_GetStarted.md)의 단계에 따라 하나를 생성합니다.

**Topics**
+ [사전 조건](#batch_sns_prereq)
+ [자습서: Amazon SNS 주제 생성 및 구독](batch_sns_create_topic.md)
+ [자습서: 이벤트 규칙 등록](batch_sns_reg_rule.md)
+ [자습서: 규칙 테스트](batch_sns_test_rule.md)
+ [대체 규칙: 배치 작업 대기열 차단됨](#test_blocked_job_queue)

# 자습서: Amazon SNS 주제 생성 및 구독
<a name="batch_sns_create_topic"></a>

 본 자습서를 위해 새 이벤트 규칙의 이벤트 대상으로 사용할 Amazon SNS 주제를 구성합니다.

**Amazon SNS 주제를 생성하려면**

1. [https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home)에서 Amazon SNS 콘솔을 엽니다.

1. **주제(Topics)**, **주제 생성(Create topic)**을 차례로 선택합니다.

1. **유형**에서 **표준**을 선택합니다.

1. **주제 이름**에 **JobFailedAlert**(을)를 입력하고 **주제 생성**을 선택합니다.

1. **JobFailedAlert** 화면에서 **구독 생성**을 선택합니다.

1. **프로토콜(Protocol)**에서 **이메일(Email)**을 선택합니다.

1. **엔드포인트(Endpoint)**에 현재 액세스 권한이 있는 이메일 주소를 입력하고 **구독 생성(Create subscription)**을 선택합니다.

1. 이메일 계정을 확인하고 구독 확인 이메일 메시지를 기다립니다. 메시지를 수신하면 **구독 확인(Confirm subscription)**을 선택합니다.

# 자습서: 이벤트 규칙 등록
<a name="batch_sns_reg_rule"></a>

 다음으로 작업 실패 이벤트만 캡처하는 이벤트 규칙을 등록합니다.

**EventBridge 규칙을 등록하려면**

1. [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/)에서 Amazon EventBridge 콘솔을 엽니다.

1. 탐색 창에서 **규칙**을 선택합니다.

1. **규칙 생성**을 선택합니다.

1. 규칙에 대해 이름과 설명을 입력하세요.

   규칙은 동일한 지역과 동일한 이벤트 버스의 다른 규칙과 동일한 이름을 가질 수 없습니다.

1. **이벤트 버스**에서 이 규칙과 연결할 이벤트 버스를 선택합니다. 이 규칙이 자신의 계정에서 발생하는 이벤트와 일치하도록 하려면 **AWS 기본 이벤트 버스(default event bus)**를 선택합니다. 계정의 AWS 서비스가 이벤트를 출력하면 항상 계정의 기본 이벤트 버스로 이동합니다.

1. **규칙 유형(Rule type)**에서 **이벤트 패턴이 있는 규칙(Rule with an event pattern)**을 생성합니다.

1. **다음**을 선택합니다.

1. **이벤트 소스**에서 **기타**를 선택합니다.

1. **이벤트 패턴**에서 **사용자 지정 패턴(JSON 편집기)**을 선택합니다.

1. 다음 이벤트 패턴을 텍스트 영역에 붙여 넣습니다.

   ```
   {
     "detail-type": [
       "Batch Job State Change"
     ],
     "source": [
       "aws.batch"
     ],
     "detail": {
       "status": [
         "FAILED"
       ]
     }
   }
   ```

   이 코드는 작업 상태가 `FAILED`인 이벤트를 일치시키는 EventBridge 규칙을 정의합니다. 이벤트 패턴에 대한 자세한 내용은 *Amazon EventBridge 사용 설명서*에서 [이벤트 및 이벤트 패턴](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)을 참조하세요.

1. **다음**을 선택합니다.

1. **대상 유형**에서 **AWS서비스**를 선택합니다.

1. **대상 선택**에서 **SNS 주제**를 선택하고, **주제**에 대해 **JobFailedAlert**를 선택합니다.

1. (선택 사항)**추가 설정**에서 다음을 수행합니다.

   1. **최대 이벤트 기간(Maximum age of event)**에 1분(00:01)에서 24시간(24:00) 사이의 값을 입력합니다.

   1. **재시도(Retry attempts)**에 0에서 185 사이의 숫자를 입력합니다.

   1. **배달 못한 편지 대기열(Dead-letter queue)**에서 표준 Amazon SQS 대기열을 배달 못한 편지 대기열로 사용할지를 선택합니다. 이벤트가 대상에 성공적으로 전달되지 않은 경우 EventBridge는 이 규칙과 일치하는 이벤트를 배달 못한 편지 대기열로 보냅니다. 다음 중 하나를 수행합니다.
      + 배달 못한 편지 대기열을 사용하지 않으려면 **없음(None)**을 선택합니다.
      + **현재 AWS 계정에서 DLQ(Dead Letter Queue)로 사용할 Amazon SQS 대기열 선택(Select an Amazon SQS queue in the current account to use as the dead-letter queue)**을 선택하고 드롭다운에서 사용할 대기열을 선택합니다.
      + **다른 AWS 계정에서 배달 못한 편지 대기열로 사용할 Amazon SQS 대기열 선택**을 선택한 다음, 사용할 대기열의 ARN을 입력합니다. 메시지를 보낼 수 있는 EventBridge 권한을 부여하는 리소스 기반 정책을 대기열에 연결해야 합니다. 자세한 정보는 *Amazon EventBridge 사용 설명서*의 [DLQ(Dead Letter Queue)에 대한 권한 부여](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rule-dlq.html#eb-dlq-perms)를 참조하세요.

1. **다음**을 선택합니다.

1. (선택 사항)규칙에 대해 하나 이상의 태그를 입력하세요. 자세한 정보는 *Amazon EventBridge 사용 설명서*의 [Amazon EventBridge 태그](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-tagging.html)를 참조하세요.

1. **다음**을 선택합니다.

1. 규칙의 세부 정보를 검토하고 **규칙 생성**을 선택합니다.

# 자습서: 규칙 테스트
<a name="batch_sns_test_rule"></a>

규칙을 테스트하려면 0이 아닌 종료 코드로 시작한 직후에 종료되는 작업을 제출합니다. 이벤트 규칙이 올바로 구성되었다면 몇 분 후에 이벤트 텍스트가 포함된 이메일 메시지를 수신할 것입니다.

**규칙을 테스트하려면**

1. [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/)에서 AWS Batch 콘솔을 엽니다.

1. 새 AWS Batch 작업을 제출합니다. 자세한 내용은 [자습서: 작업 제출](submit_job.md) 섹션을 참조하세요. 작업 명령의 경우 이 명령을 대체하여 종료 코드가 1인 컨테이너를 종료합니다.

   ```
   /bin/sh, -c, 'exit 1'
   ```

1. 이메일에서 작업 실패 알림에 대한 이메일 알림이 수신되었는지 확인합니다.

## 대체 규칙: 배치 작업 대기열 차단됨
<a name="test_blocked_job_queue"></a>

배치 작업 대기열 차단됨을 모니터링하는 이벤트 규칙을 생성하려면 다음 대체 방법을 사용하여 이 자습서를 반복합니다.**

1. **[자습서: Amazon SNS 주제 생성 및 구독](batch_sns_create_topic.md)**에서 주제 이름으로 *BlockedJobQueue*를 사용합니다.

1. **[자습서: 이벤트 규칙 등록](batch_sns_reg_rule.md)**에서 JSON 편집기에서 다음 패턴을 사용합니다.

   ```
   {
      "detail-type": [
        "Batch Job Queue Blocked"
      ],
      "source": [
        "aws.batch"
      ]
   }
   ```