오늘은CloudWatch의 이상 동작 인터넷 바카라 기능을 통해 갑작스러운 패턴 변화 등을 감지하여 모니터링하는 시스템에 대해 이야기해보려고 합니다. 특히 로그 수집 시스템으로 각광받고 있는ElasticStack과의 연동을 통해서 애플리케이션에서 발생하는 슬로우 인터넷 바카라의 패턴을 분석하는 과정을 그려 나가 보겠습니다.
CloudWatch의 이상 동작 인터넷 바카라 기능 예제
ElasticStack
본격적인 이야기에 앞서ElasticStack을 활용한 애플리케이션 인터넷 바카라 수집 시스템에 대해 살펴보겠습니다. 아래는 시스템의 구성도 입니다.
ElasticStack 시스템 구성도
구성은 간단합니다. 애플리케이션 서버에는filebeat가 설치되어 발생하는 인터넷 바카라들을 전부kafka로 보냅니다. 그리고logstash가 kafka에서 인터넷 바카라들을꺼내서 JSON 문서로 만들고ElasticSearch에 저장합니다. 그리고이렇게 저장된 인터넷 바카라들은kibana를 이용해서 확인합니다. 그럼 아래와 같이kibana를 통해서 인터넷 바카라를 조회하고 모니터링에 활용할 수 있게 됩니다.
kibana 화면 예제
CloudWatch PutMetricData
이제ElasticStack에 저장되고 있는애플리케이션의슬로우 인터넷 바카라들에 대한 지표를CloudWatch에 Custom Metric으로 쌓아 보겠습니다.
먼저 전체 인터넷 바카라 수를 가져오는 쿼리입니다. 현재 시간으로부터 1분 이내에 수집된 모든 인터넷 바카라의 수를 계산합니다.
전체 인터넷 바카라 수 가져오기
그리고 응답 속도가 1초를 넘는 슬로우 인터넷 바카라의 수를 가져오는 쿼리입니다. 각각의 필드명과 슬로우 인터넷 바카라 기준 값은 각자의 환경에 맞게 변경하면 됩니다.
슬로우 인터넷 바카라 가져오기
이렇게 두 개의 쿼리를 이용해서 1분 동안의 전체 인터넷 바카라 수와 슬로우 인터넷 바카라 수를 가져온 후 비율을 계산합니다.
비율 계산 하기
그리고 계산된 비율을CloudWatch에 PutMetricData API를 이용해서 저장합니다.
Put Metric API 사용 예제
PutMetricData API는 Namespace, MetricName, Dimensions와 같은 지시자를 필요로 합니다. 각각의 관계는 아래와 같습니다.
NS, Dim, Metric의 관계
Namespace가 가장 큰 개념이고 그 아래로Dimension들이 위치하고 있으며 실제 저장되는Metric의 이름과 값은MetricName, Value로 정의합니다.
물론 위와 같은 작업을 하기 위해서는 EC2 혹은Lambda 함수에 아래와 같은 PutMetricData권한이 있어야 합니다.
PutMetricData 권한 주기
여기까지 완료되면 아래와 같은CloudWatch메트릭을 그래프로 볼 수 있게 됩니다.
CloudWatch Metric Graph
이제 본격적으로 이상 인터넷 바카라 기능을 사용해 볼 차례가 되었습니다.
anomaly detection 활성화
CloudWatch에 메트릭을 보게 되면 아래와 같은 그래프 형태의 아이콘을 볼 수 있습니다.
이상 인터넷 바카라 기능의 활성화 버튼
해당 버튼을 클릭하면 이상 인터넷 바카라 기능이 활성화되며 아래와 같이 메트릭이 하나 더 생성됩니다.
이상 인터넷 바카라 기능 활성화
Details에 보면ANOMALY_DETECTION_BAND라고 되어 있는데 이는CloudWatch에서 제공하는 함수 중 하나입니다.첫 번째 값인 m1은 이상 인터넷 바카라 기능의 베이스가 되는 값을 가리키는데위 그림에서는 ID가 m1인 첫 번째 값을 바탕으로 이상 인터넷 바카라를 한다는 의미입니다.두 번째 값인 2는 이상 인터넷 바카라 기능의 범위를 결정하게 되는데 이 값이 크면 클수록 회색 음영의 범위가 넓어지게 됩니다.
두 번째 값의 변화에 따른 음영 지대의 변화
위 그림에서는 회색 음영이 바로 나타난 것처럼 보이지만 실제로 이상 인터넷 바카라 기능을 활성화하게 되면 학습하는 데에 시간이 소요되기 때문에 처음에는 회색 음영이 보이지 않습니다. 또한 이상 인터넷 바카라 기능은 머신 러닝을 기반으로 하기 때문에 시간이 지나면 지날수록 음영의 영역이 더욱 정교해지고 정상적인 패턴을 따라가게 됩니다.
이상 인터넷 바카라 알럿 보내기
지금까지의 예제를 통해서CloudWatch의 이상 인터넷 바카라 기능을 활성화했다면 이제 이상 인터넷 바카라 기능에 의해 인터넷 바카라된 비정상 패턴들을알럿팅 해주어야 합니다. 이 작업은CloudWatch와 SNS, 그리고Lambda함수를 이용해서 구축할 수 있습니다.
알럿 시스템 구성도
우선은 시스템 구성도만 먼저 공유하고 SNS, Lambda를 통해서 Slack으로 알람을 발송하는 구체적인 과정은 두 번째 글로 이어 가겠습니다.