기술 이모저모/[AWS] Workshop

[AWS][SNS] Cloudwatch 경보 Slack 연동[2/2]

Kobby 2022. 5. 6. 19:23
■ 최종 서비스 구현 : WAF에서 특정 이벤트 발생 시, Lambda를 통해 Slack으로 관련 데이터 전송
■ 준비 과정
 1. WEB Server ALB 설정 : [AWS][ALB] WEB SERVER ALB 구성 :: 하다 보면 늘어나는 업무 지식 (tistory.com)
 2. WAF 설정 : [AWS][WAF] WEB SERVER WAF 설정 :: 하다 보면 늘어나는 업무 지식 (tistory.com)
 3. Slack, Lambda 테스트 : [AWS][SNS] Cloudwatch 경보 Slack 연동[1/2] :: 하다 보면 늘어나는 업무 지식 (tistory.com)

위 준비과정 3에서 Slack, Lambda 테스트까지 끝났다!!

 

이제 Clouwatch에서 경보알람 설정만 하면 된다.

1. Slack Webhook Key 확보
2. AWS SNS 주제 설정
3. Slack 알람용 Lambda 테스트 및 설정
4 Cloudwatch 경보알람 설정
5. 테스트 및 운영!!
  - 실제 알람은 다음과 같은 순서로 진행된다. WAF → Cloudwatch로 데이터 전송 → Cloudwatch에서 경보알람 발생 →
     SNS 작업 호출 → Lambda 구독 호출  → Slack 알람 전송

 

4. Cloudwatch 경보알람 설정

Cloudwatch에서 경보 설정하는 것도, 어느정도 정형화되어 있는 지료가 있다.

필자는 WAF 로그 기반으로 경보를 설정할 것이기에, 찾아보기에서 WAF를 검색해서 설정했다.

Clouwatch 경보 설정 - 1

Cloudwatch에서 가장 중요한 부분이라고 생각한다. WAF 로그를 기반으로 어떤 임계치일 때 경보알람을 줄지 설정하는것이다.

Cloudwatch 경보 설정 - 2
Cloudwatch 경보 설정 - 3

결과적으로 위 2, 3 그림처럼 경보 알람이 발생하는데 위 설정대로만 보면

"WAF 로그 개수가 5분안에 1개 이상일 경우, 알람이 발생하는 것이다."

 

물론 생성 이후에 얼마든지 수정이 가능하고, 운영을 해보니 위 설정으로는 운영하기가 어려워서

아래와 같이 수정하여 운영하고 있다. TEST 하면서 최적의 경보 설정을 찾아가면 된다.

CloudWatch 경보 알람 - 4

 

위 과정을 따르면, 90% 끝이 났다고 보면 된다.

 

Cloudwatch에서 경보 알람을 설정하고, 특정 임계치 이상의 WAF 로그가 확인될 경우

AWS SNS 주제를 호출하고, 해당 주제에 엮어있는 구독 서비스(Lambda)가 호출되서 Slack으로 알람을 준다.

 

5. 테스트 및 운영

이제 실제로 내가 만든 이벤트를 발생시킬 수 있는 로그를 발생시켜서 알람에 제대로 오는지 테스트 해보면 된다!!

 

끝!!