

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

# 자습서: 실패한 작업 이벤트에 대한 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"
      ]
   }
   ```