본문 바로가기

퍼블릭 클라우드

[aws] EC2 인스턴스에 접속할 때마다 슬랙으로 알림을 보내는 방법

반응형

EC2 인스턴스에 접속할 때마다 슬랙으로 알림을 보내는 방법

1. CloudWatch 이벤트 규칙 생성

먼저 CloudWatch 콘솔에서 이벤트 규칙을 생성합니다. 이벤트 규칙을 생성하면 EC2 인스턴스에 대한 모든 이벤트에 대한 알림을 받을 수 있습니다.

1-1. CloudWatch 콘솔에서 [이벤트] > [규칙]을 선택합니다.

1-2. [규칙 생성] 버튼을 클릭합니다.

1-3. 이벤트 규칙의 이름을 입력합니다.

1-4. 이벤트 패턴을 선택합니다.

1-5. 이벤트 대상으로 "SNS 주제"를 선택합니다.

1-6. 새로운 SNS 주제를 만들거나 기존 주제를 선택합니다.

1-7. 규칙을 만듭니다.

2. SNS 주제 구독

이제 SNS 주제에 대한 구독을 설정해야 합니다. 이를 통해 알림을 받을 수 있습니다.

2-1. SNS 콘솔에서 해당 주제를 선택합니다.

2-2. [구독 생성] 버튼을 클릭합니다.

2-3. 이메일 주소 또는 슬랙 webhook URL을 입력합니다.

2-4. [구독 생성] 버튼을 클릭합니다.

2-5. 입력한 주소로 확인 링크를 클릭하여 구독을 확인합니다.

3. EC2 인스턴스에 스크립트 설치

이제 EC2 인스턴스에 스크립트를 설치하여 이벤트를 SNS 주제로 보낼 수 있습니다.

3-1. EC2 인스턴스에 로그인합니다.

3-2. SNS 주제에 대한 권한을 부여합니다.

3-3. 다음 스크립트를 EC2 인스턴스에 설치합니다.

#!/bin/bash
INSTANCE_ID=$(curl http://169.254.169.254/latest/meta-data/instance-id)
aws ec2 describe-instances --instance-id $INSTANCE_ID | jq -c '.Reservations[].Instances[] | {id: .InstanceId, state: .State.Name, name: (.Tags[] | select(.Key=="Name").Value)}' | aws sns publish --topic-arn [SNS 주제 ARN] --message "$(cat)"

3-4. 스크립트에서 [SNS 주제 ARN]을 SNS 주제 ARN으로 대체합니다.

 

이제 EC2 인스턴스에 대한 로그인 이벤트가 발생하면 SNS 주제로 메시지가 전송되어 슬랙으로 알림을 받을 수 있습니다.

 

참고URL

- EC2 접속 시 슬랙으로 알림 : https://scbyun.com/1144

 

728x90
반응형