Amazon ECS 작업 중지 이벤트에 대한 Amazon Simple Notification Service 알림 보내기
필수 컨테이너 중 하나가 종료되어 작업 실행이 중지된 작업 이벤트만 캡처하는 Amazon EventBridge 이벤트 규칙을 구성합니다. 이 이벤트는 특정 Amazon SNS 속성을 포함하는 작업 이벤트만 지정된 stoppedReason
주제로 전송합니다.
필수 조건: 테스트 클러스터 설정
이벤트를 캡처할 실행 클러스터가 없는 경우 Getting started with the console using Linux containers on AWS Fargate의 단계를 따라 클러스터를 하나 생성합니다. 본 자습서의 말미에서는 이 클러스터에서 태스크를 실행하여 Amazon SNS 주제와 EventBridge 이벤트 규칙이 올바로 구성되었는지 테스트합니다.
전제 조건: Amazon SNS 대한 권한 구성
EventBridge가 Amazon SNS 주제에 게시할 수 있도록 허용하려면 aws sns get-topic-attributes 및 aws sns set-topic-attributes 명령을 사용하세요.
권한을 추가하는 방법에 대한 자세한 내용은 Amazon Simple Notification Service 개발자 안내서의 Amazon SNS 권한을 참조하세요.
다음 권한을 추가합니다.
{ "Sid": "PublishEventsToMyTopic", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sns: Publish", "Resource": "arn:aws:sns:
region
:account-id
:TaskStoppedAlert", }
1단계: Amazon SNS 주제 생성 및 구독
본 자습서를 위해 새 이벤트 규칙의 이벤트 대상으로 사용할 Amazon SNS 주제를 구성합니다.
Amazon SNS 주제 생성 및 구독 방법에 대한 자세한 정보는 Amazon Simple Notification Service 개발자 안내서의 Amazon SNS 시작하기를 참조하고 다음 표를 사용하여 선택할 옵션을 결정하세요.
옵션 | 값 |
---|---|
유형 |
표준 |
명칭 |
TaskStoppedAlert |
프로토콜 | 이메일 |
엔드포인트 |
현재 액세스 권한이 있는 이메일 주소 |
2단계: 이벤트 규칙 등록
다음에는 컨테이너가 중지된 작업에 대한 작업 중지 이벤트만 캡처하는 이벤트 규칙을 등록합니다.
Amazon SNS 주제 생성 및 구독 방법에 대한 자세한 정보는 Amazon EventBridge User Guide(Amazon EventBridge 사용 설명서)의 Create a rule in Amazon EventBridge(Amazon EventBridge에서 규칙 생성)를 참조하고 다음 표를 사용하여 선택할 옵션을 결정하세요.
옵션 | 값 |
---|---|
규칙 타입 |
이벤트 패턴이 있는 규칙 |
이벤트 소스 | AWS 이벤트 또는 EventBridge 파트너 이벤트 |
이벤트 패턴 |
사용자 정의 패턴(JSON 편집기) |
이벤트 패턴 |
|
대상 유형 |
AWS 서비스 |
대상 | SNS 주제 |
주제 |
TaskStoppedAlert(1단계에서 생성한 주제) |
3단계: 규칙 테스트
규칙이 시작된 직후 종료되는 태스크를 실행하여 규칙이 작동하고 있는지 확인합니다. 이벤트 규칙이 올바로 구성되었다면 몇 분 후에 이벤트 텍스트가 포함된 이메일 메시지를 수신할 것입니다. 규칙 요구 사항을 충족할 수 있는 기존 태스크 정의가 있는 경우 이를 사용하여 태스크를 실행합니다. 없는 경우 다음 단계에 따라 Fargate 태스크 정의를 등록하고 실행할 수 있습니다.
https://console.aws.amazon.com/ecs/v2
에서 콘솔을 엽니다. -
탐색 창에서 작업 정의를 선택합니다.
-
새 태스크 정의 생성(Create new task definition), JSON으로 새 태스크 정의 생성(Create new task definition with JSON)을 선택합니다.
-
JSON 편집기 상자에서 JSON 파일을 편집하고 다음을 편집기에 복사합니다.
{ "containerDefinitions":[ { "command":[ "sh", "-c", "sleep 5" ], "essential":true, "image":"amazonlinux:2", "name":"test-sleep" } ], "cpu":"256", "executionRoleArn":"arn:aws:iam::
012345678910
:role/ecsTaskExecutionRole
", "family":"fargate-task-definition", "memory":"512", "networkMode":"awsvpc", "requiresCompatibilities":[ "FARGATE" ] } -
생성(Create)을 선택합니다.
콘솔에서 작업을 실행하려면 다음을 수행하세요.
https://console.aws.amazon.com/ecs/v2
에서 콘솔을 엽니다. -
클러스터 페이지에서 사전 조건에서 생성한 클러스터를 선택합니다.
-
작업(Tasks) 탭에서 새 작업 실행(Run new task)을 선택합니다.
-
애플리케이션 유형(Application type)에서 작업(Task)을 선택합니다.
-
작업 정의에서 fargate-task-definition을 선택합니다.
-
원하는 작업(Desired tasks)에 시작할 작업 수를 입력합니다.
-
생성(Create)을 선택합니다.