CloudWatch 이상 동작 탐지 기능 사용하기 #2
Amazon Web Service
지난 글에 이어 오늘은CloudWatch이상 동작 탐지 기능을 통해 발생한 알람을SNS와 바카라 에볼루션를 이용해 슬랙바카라 에볼루션 받아보는 과정에 대해서 살펴보겠습니다. 오늘 글의 내용은SNS와 바카라 에볼루션를 이용해 슬랙바카라 에볼루션 메시지를 전송하는 과정이기 때문에 꼭CloudWatch이상 동작 탐지가 아니라도 두루 사용할 수 있는 기능입니다.
SNS 토픽 만들기
먼저CloudWatch가 알람을 넘길SNS토픽을 만들어 줍니다.Amazon SNS Topics Create topic에서 아래와 같이 만들어 줍니다.
SNS토픽은 이름만 지정해서 생성하면 되기 때문에 매우 간단합니다.
물론 다양한 옵션이 있지만 이 글에서는 따로 다루지 않겠습니다.
이제 만들어진 토픽을 사용할바카라 에볼루션함수를 생성해야 합니다.
바카라 에볼루션 함수 만들기
앞에서 생성한SNS토픽을 Subscription 할바카라 에볼루션함수를 만들어야 합니다.바카라 에볼루션 Functions Create function을 클릭해서 함수를 만들어 줍니다.SNS토픽바카라 에볼루션 들어온 데이터를 슬랙바카라 에볼루션 발송하는바카라 에볼루션함수는 직접 만들지 않아도 됩니다.AWS에서 제공하는 예제바카라 에볼루션함수들 중에 해당 기능을 훌륭히 수행하는 함수가 이미 만들어져 있기 때문입니다.Use a blueprint를 클릭하고Slack이라는 단어로 검색하면 아래와 같이cloudwatch-alarm-to-slack-python이라는 함수가 검색됩니다. 이 함수를 체크하고 Configure 버튼을 클릭합니다.
Configure 버튼을 클릭하면 아래와 같이 생성하고자 하는 함수의 정보를 입력하게 됩니다.바카라 에볼루션역시IAM설정이 매우 중요한데, 우리는 특별한 기능을 필요로 하지 않으니 우선은Create a new role with basic 바카라 에볼루션 permissions를 선택해서 기본 정책을 바탕바카라 에볼루션 역할을 생성합니다.SNS Trigger의 토픽명은 우리가 위해서 생성한cloudwatch-anomaly-detection-alarm바카라 에볼루션 입력해 줍니다. 그리고Enable trigger를 클릭해 줍니다.
Enable trigger를 체크한 후 생성하게 되면SNS토픽을 Subcription 하기 위해 필요한 설정들을 자동바카라 에볼루션 해줍니다.
다음바카라 에볼루션 스크롤을 내려서 함수 생성에 사용되는 환경 변수 값들을 넣어 줍니다. 함수 코드를 조금 더 간단하게 수정해야 하지만 수정하기 위해서는 함수를 생성한 후에 가능하기 때문에 쓰레기 값을 넣어서 함수 생성만 먼저 진행합니다.
생성이 완료되면 아래와 같이 생성 완료 메시지와SNS토픽이 트리거로 걸린 모습을 볼 수 있습니다.
그리고SNS콘솔에 들어가 보면 Subscription도 자동바카라 에볼루션 생성되어 있는 것을 볼 수 있습니다.
이제 거의 다 되었습니다. 아까 생성한바카라 에볼루션함수의 코드를 약간 수정해 보겠습니다.KMS와의 연동 부분을 제거하고 슬랙 웹 훅 URL을 환경 변수에서 직접 입력할 수 있도록 수정하려고 합니다.
KMS에 암호화되어 저장된 HOOK_URL을 가져오는 로직에서 HOOK_URL을 환경 변수로 직접 설정해서 보내는 형태로 로직을 변경했습니다. 또한 슬랙 웹 훅 URL 중에는 채널을 명시하지 않아도 되는 웹 훅 URL이 있기 때문에 SLACK_CHANNEL이라는 환경 변수도 제거했습니다.
KMS 암호화 과정까지 설정하려면 바카라 에볼루션의 IAM 정책도 수정해야 하기 때문에 이번 글에서는 간단하게 환경 변수로 설정하도록 수정했습니다.
이제 마지막바카라 에볼루션 잘되는지 테스트해 볼 차례입니다.바카라 에볼루션는 테스트 이벤트를 생성해서 잘 동작하는지 확인할 수 있는 인터페이스를 제공합니다. 우측 상단에Select a test event를 클릭하면Configure test events메뉴가 나타납니다. 해당 메뉴를 클릭한 후Create new test event에서 아래와 같이 입력해 줍니다.
CloudWatch에서 발송하는Alarm과 동일한 형태의 테스트 이벤트 메시지입니다.
해당 메시지의 전문은https://github.com/blueimp/aws-바카라 에볼루션/blob/master/cloudwatch-alarm-to-slack/test-event.json이곳에서 확인할 수 있습니다.
테스트 이벤트가 생성된 후Test버튼을 클릭하면 아래와 같이 테스트가 정상적바카라 에볼루션 실행되었음을 보여 줍니다.
그리고 슬랙 채널에 가보면 아래와 같이 메시지가 정상적바카라 에볼루션 전달된 것을 볼 수 있습니다.
이제CloudWatch로부터 알람을 받아서 슬랙바카라 에볼루션 전송하기 위한 모든 준비가 끝났습니다. 마지막바카라 에볼루션CloudWatch에서 알람을 위한 룰을 만들어 보겠습니다.CloudWatch Alarms Create alarm에 들어가서 어떤 메트릭바카라 에볼루션 알람을 만들 것인지 선택합니다.
그리고 활성화 해 놓은 이상 동작 학습 메트릭을선택해 줍니다.
CloudWatch 알람은 한 번에 하나의 메트릭만 설정 가능합니다.
그리고 아래와 같이 추가 설정 값들을 알맞은 값바카라 에볼루션 설정합니다.
Statistic과 Period는 말 그대로 어떤 값을 기준바카라 에볼루션 할 것인지 그리고 데이터의 수집 주기를 어느 정도로 할 것인지를 설정합니다.
제일 중요한 건 Anomaly detection threshold인데 이 값이 커지면 커질수록 이상 동작을 탐지하기 위한 영역이 넓어집니다.
그리고 가장 중요한Notification설정을 해 줍니다.
우리가 앞 서 만들었던SNS토픽명을 입력해 주면 모든 설정이 끝납니다.
마치며
지금까지 두 번에 걸친 글을 통해서CloudWatch의 이상 동작 탐지 기능을 설정하고 알람을 받아볼 수 있는SNS + 바카라 에볼루션 형태의 파이프라인을 구축해 보았습니다. 특히 이번 글에서 설정한SNS+ 바카라 에볼루션파이프라인은CloudWatch의 모든 알람에 설정 가능하기 때문에 한 번만 잘 만들어 놓으면 모니터링을 위한 파이프라인바카라 에볼루션 재사용할 수 있습니다.
이 글이 많은 분들에게 도움이 되었으면 좋겠습니다. 긴 글 읽어 주셔서 감사합니다.