[AWS][SNS] Cloudwatch 경보 Slack 연동[2/2]
■ 최종 서비스 구현 : 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를 검색해서 설정했다.
Cloudwatch에서 가장 중요한 부분이라고 생각한다. WAF 로그를 기반으로 어떤 임계치일 때 경보알람을 줄지 설정하는것이다.
결과적으로 위 2, 3 그림처럼 경보 알람이 발생하는데 위 설정대로만 보면
"WAF 로그 개수가 5분안에 1개 이상일 경우, 알람이 발생하는 것이다."
물론 생성 이후에 얼마든지 수정이 가능하고, 운영을 해보니 위 설정으로는 운영하기가 어려워서
아래와 같이 수정하여 운영하고 있다. TEST 하면서 최적의 경보 설정을 찾아가면 된다.
위 과정을 따르면, 90% 끝이 났다고 보면 된다.
Cloudwatch에서 경보 알람을 설정하고, 특정 임계치 이상의 WAF 로그가 확인될 경우
AWS SNS 주제를 호출하고, 해당 주제에 엮어있는 구독 서비스(Lambda)가 호출되서 Slack으로 알람을 준다.
5. 테스트 및 운영
이제 실제로 내가 만든 이벤트를 발생시킬 수 있는 로그를 발생시켜서 알람에 제대로 오는지 테스트 해보면 된다!!
끝!!