EC2 인스턴스 CPU 사용률을 Slack으로 받아보기

EC2 인스턴스 CPU 사용률을 Slack으로 받아보는 과정을 정리해 봤습니다.
2021.09.18

안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 EC2 인스턴스 CPU 사용률을 CloudWatch와 SNS, Chatbot을 설정한 다음, Slack으로 받아보는 과정을 정리해 봤습니다. 설정 과정은

  • SNS 설정
  • CloudWatch 설정
  • AWS Chatbot에서 Slack 설정
  • stress로 CPU 사용률 테스트

순으로 진행 됩니다.

EC2 인스턴스 CPU 사용률을 Slack으로 알람을 받기까지의 흐름은 위 아키텍처를 참고해 주세요.

SNS 설정

먼저 SNS->주제로 들어온 다음, 주제 생성 버튼을 클릭합니다.

유형은 표준으로 선택하고 이름을 입력한 다음 주제 생성 버튼을 클릭합니다.

이제 구독을 만들기 위해「구독 생성」버튼을 클릭합니다.

「주제 ARN」은 조금 전 만들었던 SNS를 선택하고, 프로토콜은 이메일은 선택합니다. 마지막으로 엔드포인트는 알림을 수신할 이메일을 입력한 다음, 구독 생성 버튼을 클릭해서 구독을 생성합니다.

구독에서 입력한 이메일로 들어가서「Confirm subscription」을 클릭해서 구독 설정을 끝마칩니다.

구독 상태를 확인해 보면「확인됨」으로 바뀐 것을 볼 수 있습니다.

CloudWatch 설정

다음은 CloudWatch에서 경보 탭으로 들어와서「경보 생성」버튼을 클릭합니다.

「지표 선택」버튼을 클릭합니다.

EC2 인스턴스 ID로 검색한 다음, CPUUtilization을 선택합니다.

통계는 최대로 선택하고 기간은 5분으로 선택합니다.

5분 동안 최대 CPU 사용률이 10%를 넘으면 알람을 받도록 합니다.

경보 상태 트리거는「경보 상태」로 선택하고, 주제는「기존 SNS 주제 선택」을 클릭해서 이전에 만들어두었던 SNS를 선택합니다.

마지막으로 경보 이름을 입력하고 경보를 생성합니다.

여기까지 설정을 끝마쳤으면, 5분동안 최대 CPU 사용률이 10%를 넘으면 이메일로 알람을 받을 수 있습니다.

CPU 사용률이 10%를 넘으면 이메일로 이러한 알람을 통지받을 수 있습니다.

AWS Chatbot에서 Slack 설정

이제 Slack에서 알람을 받기 위해서, AWS Chatbot 서비스에서 채팅 클라이언트를 Slack으로 선택하고 클라이언트 구성 버튼을 클릭합니다.

Slack 아이디로 로그인 한 다음, AWS Chatbot과 Slack 연동을 끝마칩니다.

Slack 채널을 설정하기 위해「새 채널 구성」버튼을 클릭합니다.

구성 이름을 입력하고, Slack 채널을 선택합니다. 퍼블릭을 클릭하고 퍼블릭 채널 이름 리스트를 확인해 보면, 퍼블릭으로 만들어두었던 Slack 채널이 나옵니다. 알람을 받고 싶은 채널을 선택합니다.

IAM 역할은「템플릿을 사용하여 IAM 역할 생성」을 선택하고 역할 이름을 입력합니다.

마지막으로 SNS를 만들었던 리전을 선택하고, 주제를 선택한 다음「구성」버튼을 클릭합니다.

CPU 사용률을 Slack으로 받아보기

sudo amazon-linux-extras install epel -y
sudo yum install stress -y
sudo stress --cpu 1 --timeout 600

stress를 사용해서 강제로 CPU 사용률을 올려봅시다.  600초 동안 1개의 CPU를 최대한 사용합니다.

조금 기다려보면, Slack으로 CPU 사용률이 79% 라고 알람이 오는 것을 확인할 수 있습니다.

참고