My __ 노트

AWS PHD 알람 설정 (1) - 콘솔에서 SNS와 Chatbot을 이용하여 알람 전송 본문

클라우드/AWS(클라우드)

AWS PHD 알람 설정 (1) - 콘솔에서 SNS와 Chatbot을 이용하여 알람 전송

블루빔 2023. 10. 5. 10:00

AWS Service Health Dashboard(SHD) 모든 AWS 서비스의 현재 상태 및 상태 기록을 볼 수 있는 대시보드이며
AWS Personal Health Dashboard(PHD) 각 계정에서 사용 중인 AWS 서비스의 성능 및 가용성에 대한 보기를 제공하며 EventBridge 등을 통해 알람을 받을 수 있습니다.  

해당 글은 콘솔에서 SNS와 Chatbot을 이용하여 Slack에 알람을 보내는 방법에 대해 기재하였으며 아키텍처는 아래와 같습니다. 

목차
▶ Step 1 - SNS (Simple Notification Service) 설정
▶ Step 2 - EventBridge 설정
▶ Step 2 - ChatBot 설정
▶ 최종 확인

Step 1 - SNS (Simple Notification Service) 설정

SNS는 게시자에서 구독자에게 메시지를 전송하는 관리형 서비스이며 EventBridge와 연동하여서 사용해야 하기 때문에 표준 유형을 선택해야 합니다.

Step 2 - EventBridge 설정

EventBridge는 AWS 서비스로부터 이벤트를 수신하는 서버리스 이벤트 버스입니다. 이벤트를 일치시키고 AWS 서비스 또는 HTTP 엔드포인트와 같은 대상에 전달하도록 규칙을 설정할 수 있습니다. 그러므로 SNS 주제 생성 시 FIFO가 아닌 표준 유형을 선택해야 합니다.

EventBridge 규칙 생성 시 규칙 유형을 이벤트 패턴이 있는 규칙으로 지정합니다. 

이벤트 소스는 AWS 이벤트 또는 EventBridge 파트너 이벤트를 선택하고 

 

샘플 이벤트에서 AWS Health Event를 선택한 후 출력되는 코드를 메모장에 복사해 두면 최종 설정 후 정상 적용 여부를 확인 시 사용할 수 있습니다. 

생성 방법에는 패턴 양식 사용을 선택하고 이벤트 패턴에는 원하는 AWS 서비스를 선택하여 이벤트 유형을 다양하게 지정할 수 있습니다. 해당 글에서는 Health 서비스의 모든 이벤트 유형을 지정하였습니다. 

대상으로는 위에서 생성한 SNS 주제를 선택합니다. 

 

Step 3 - ChatBot 설정

알람을 Slack으로 전송하기 위해 ChatBot을 이용하여 채팅 클라이언트를 생성합니다. 

채팅 클라이언트가 생성되면 왼쪽 바에 Slack WorkSpace가 생성되며 채널 구성을 해줘야 합니다. 

◆ Slack 채널 유형에 따라 기재해야 하는 정보가 다릅니다. 

  • 퍼블릭 - 채널 이름으로 선택 가능
  • 프라이빗 - 채널 ID 또는 URL 입력

권한은 최소한으로 지정해 줍니다. 
알림 설정 시 step 1에서 생성한 SNS 주제의 리전 및 주제를 선택하면 설정이 끝납니다. 

확인은 구성 채널에서 테스트 메시지 전송을 통해 정상 적용되었는지 확인할 수 있습니다. 

 

최종확인

이제 PHD 알람 설정이 정상적으로 적용되었는지 테스트하기 위해 EventBridge 생성 시 복사해 두었던 샘플 코드를 사용하여 생성한 주제에 메시지 게시를 실행해 봅니다.

생성한 SNS 주제를 선택 후 메시지 게시를 통해 실제 PHD 알람과 유사한 형태로 알람이 전송되는지 확인해 봅니다. 

 

이벤트 유형은 accountNotification, issue,  scheduledChange로 3가지가 있으며 유형에 따라 알람의 아이콘도 다르게 표시됩니다.
슬랙 메시지에서 "eventTypeCategory": "TYPE값"에 따라 아이콘도 변경되므로 테스트 메시지 게시 시 아래와 같은 부분을 변경하면 다양하게 확인할 수 있습니다. 

"eventTypeCategory": "issue"

 

"eventTypeCategory": "accountNotification"

 

"eventTypeCategory": "scheduledChange”

 

AWS Health event  메시지를 이해하는데 도움이 된 링크도 함께 공유드립니다.  

https://docs.aws.amazon.com/ko_kr/health/latest/APIReference/API_Event.html