블로그 릴레이 - CloudWatch Alarm 의 이상 탐지에 대해 알아보자

블로그 릴레이 - CloudWatch Alarm 의 이상 탐지에 대해 알아보자

Clock Icon2025.07.20

안녕하세요! 클라우드 사업본부의 임채정입니다.

본 블로그는 당사의 한국어 블로그 릴레이의 2025년 24번째 블로그입니다.
이번 블로그의 주제는「CloudWatch Alarm 의 이상 탐지에 대해 알아보자」입니다.

CloudWatch Alarm 을 사용하다 보면 정적 조건을 사용하는 경우는 많지만 이상 탐지를 사용하는 경우는 거의 없습니다.
그래서 이번 블로그에서 이상 탐지란 무엇이고 어떻게 사용해야 하는지 정리하겠습니다.

CloudWatch Alarm 의 이상 탐지란

이상 탐지는 과거 지표 데이터를 분석해 시간, 일, 주 단위의 반복 패턴이나 추세를 학습합니다.
그리고 그 데이터를 바탕으로 정상 범위를 예측하고, 실제 값이 이 범위를 벗어나면 이상으로 감지합니다.
이상 탐지는 위의 정적 조건과는 다르게 임계값을 동적으로 설정해서 조건을 정의합니다.

이상 탐지의 장점으로는 다음이 있습니다.

  1. 동적 대응: 시스템의 정상적인 변동 패턴을 학습하여 불필요한 알람 감소
  2. 조기 발견: 패턴에서 벗어나는 이상 징후를 빠르게 감지
  3. 유연성: 계절성, 주기성 등 복잡한 패턴도 자동으로 학습

정적 vs 이상 탐지 (동적)

CloudWatch Alarm 에서 사용할 수 있는 조건은 두 가지입니다.

  • 정적
  • 이상 탐지 (동적)

둘을 비교하면 다음과 같습니다.

항목 정적 이상 탐지 (동적)
그래프(※1) ee11 ee12
동작 원리 사용자가 직접 임계값 지정 기계학습 기반 정상 범위 자동 산출
적용 상황 단순, 예측 가능한 지표 변동성, 계절성, 패턴이 있는 지표
임계값 고정된 값 (예: 80%) 시간대별로 달라질 수 있는 정상 범위 (예: 오전엔 40~60%, 오후엔 60~80% 등)
비용 $0.1/지표 당 $0.3/지표 당(※2)
예시 특정 값을 넘으면 감지 과거와 다른 비정상 패턴 감지
ex CPU 사용률이 n% 이상일 때 알람 CPU 사용률이 갑자기 30%에서 70%으로 올라갔을 때 알람

※1 그래프의 지표는 임의로 선택했습니다.
※2 이상 탐지의 비용 = 정적 지표×3 이라고 이해하면 쉽습니다.

  • ① 예상 동작의 상한 지표
  • ② 평가 중인 실제 지표
  • ③ 예상 동작의 하한 지표

ee14
비용에 대한 예시는 아래 Amazon CloudWatch 요금 페이지의 예제 11번 - 이상 탐지 경보 작동을 참고하세요
https://aws.amazon.com/ko/cloudwatch/pricing/

이상 탐지 설정 시에 고려해야 할 점

경보 조건 정의

이상 탐지에서는 알람이 발생하는 조건을 크게 3개로 나누고 있습니다.
조건 3개를 비교해서 표로 정리했습니다.

비교 항목 대역을 벗어남 대역보다 큼 대역보다 작음
그래프(※1) ee15정상 범위를 벗어났을 때 발생 ee16 예상 동작의 상한 지표보다 클 때 발생 ee17 예상 동작의 하한 지표보다 작을 때 발생
부호 > 또는 < 임계값 > 임계값 < 임계값
목적 「대역보다 큼」의 목적,
「대역보다 작음」 의 목적을 둘 다 포함
▪️ 성능 이슈 조기 발견 (CPU, 메모리, 디스크 사용률이 급증)
▪️ 리소스 부족 상황을 미리 감지하여 스케일링 준비할 때
▪️ 에러율이나 지연시간이 급증할 때
▪️ 대역폭 사용량이나 연결 수가 비정상적으로 증가할 때
▪️ 등등...
▪️ 정상적인 트래픽이 갑자기 줄어들 때
▪️ CPU, 메모리 사용률이 비정상적으로 낮아질 때
▪️ 요청 수나 처리량이 급감할 때
▪️DB 연결 수나 쿼리 수가 급감할 때
▪️ 외부 API 호출이나 서비스 연결이 끊어졌을 때
▪️ 등등...
예시 API Gateway의 API 호출 수가 갑자기 급증/ 급감하는 경우에 비정상적인 접근이나 네트워크 이슈 등의 장애를 의심할 수 있다. 트래픽/API 호출/네트워크가 평소보다 훨씬 많아질 때 급증했을 때 알람을 발생하도록 설정하면 오남용, 공격 등을 감지할 수 있다. 저녁 시간이 피크 타임인 서비스의 트래픽량 등이 갑자기 급감했을 때 운영상 이상, 혹은 잠재적인 장애가 발생했다고 의심할 수 있다.

※1 파란색은 정상 범위, 빨간색은 알람 발생 범위

추가로, 「대역을 벗어남」 조건을 사용하면 「대역보다 큼」과 「대역보다 작음」 조건을 모두 감지할 수 있습니다.
그렇기 때문에 단순히 「대역을 벗어남」 조건 하나만 사용하면 될 것처럼 생각할 수 있습니다.

하지만 왜 굳이 세분화된 조건을 사용할까요?

중요한 것은 모든 항목을 감시하는 것이 아닙니다.
각 서비스에 필요한 감시 항목이 있고, 불필요한 감시는 오히려 노이즈가 될 수 있습니다.

예를 들어:

  • 사내 시스템이므로 외부 트래픽이 급증할 가능성이 적다면, 리소스 문제만 확인하고 싶을 때는 「대역보다 큼」 감시가 불필요할 수 있습니다.
  • 반대로, 별도의 장애 감시 시스템이 있어서 이상 탐지로는 성능 이슈만 감지하고 싶다면, 「대역보다 작음」 감시는 중복 알람을 발생시킬 수 있습니다.

이처럼 각 리소스나 서비스의 특성에 따라 필요한 감시 항목은 달라지므로, 적절한 조건을 선택해야 합니다.

임계값

임계값은 정상 범위(예상값 밴드) 의 폭에 영향을 미치는 동적 기준값입니다.
임계값이 높아질수록 정상 범위가 넓어지고 낮아질수록 정상 범위도 좁아집니다.

임의의 지표를 통해 임계값에 따라 정상 범위가 어떻게 바뀌는지 시험해봤습니다.

  • 사용 지표 : EC2의 CPU 사용률 (가장 익숙하고 조절하기 쉽기 때문에 선택)

임계값 설정이 1 인 경우

먼저 임계값이 1이면 매우 좁은 정상 범위(0~4.x)를 가집니다.
그래프에서 보이는 것처럼 작은 변화에도 좁은 정상 범위에 의해 필요없는 알람이 발생합니다.
ee1

임계값 설정이 2 인 경우

임계값이 2로 설정했을 때도 정상 범위(0~7.x)는 좁지만 지표의 변화가 크게 변동되지는 않기 때문에 불필요한 알람은 발생되지 않게 되었습니다.
ee2

임계값 설정이 3 인 경우

임계값을 3으로 설정하면 2로 설정했을 때보다 더 넓은 정상 범위(0~10.x)를 가집니다.
ee3

임계값 설정이 5 인 경우

임계값을 5로 올리면 더 넓은 정상 범위(0~2x)를 가집니다.
ee5

임계값 설정이 10 인 경우

임계값이 10으로 올라가면 이제 더 이상 감시의 역할도 하지 못할 정도로 정상 범위가 늘어납니다.
지표가 아무리 급박하게 증가한다고 해도 알람이 발생할 이유가 없기 때문에 알람의 의미가 없게 됩니다.
ee50

정리를 하면 다음과 같습니다.

  • 너무 낮은 임계값

    • 정상 범위가 좁아져서 작은 변화에도 이상 경보가 발생하는 등 잘못된 탐지의 발생 가능성이 증가한다. ↓
      ee18
  • 너무 높은 임계값

    • 정상 범위가 넓어져서 잘못된 탐지, 알람이 줄어들지만 이상 감지가 덜 민감하다.↓
      ee19

정리하면 이상 탐지 조건을 사용해서 알람을 생성할 때에는 잘못된 탐지가 발생하지 않으면서, 적당한 민감도를 가지는 적절한 임계값을 설정해야 합니다.

이상 탐지 사용해보기

그럼 실제로 이상 탐지를 사용한 알람을 생성해서 어떤식으로 움직이는지 살펴보겠습니다.

테스트 전 준비

먼저 테스트를 위해 EC2 인스턴스를 생성했습니다. (관련없는 스펙은 생략했습니다.)

  • 이름 : Anomaly-detection-test
  • OS : Windows_Server 2025
  • 인스턴스타입 : t3.micro

CloudWatch Alarm 작성

그럼 실제로 알람을 작성하겠습니다.

지표 설정

지표는 아래 지표를 사용하겠습니다. (익숙하고 조절하기 쉽기 때문에 선택)

  • 네임스페이스 : AWS/EC2
  • 지표 : CPUUtilization

ee20

조건 설정

조건은 아래와 같이 설정합니다.

  • 조건 : 이상 탐지
  • 조건 정의 : 대역을 벗어남
  • 임계값 : 2

ee21

작업 구성

알람 테스트를 위해 트리거로 이메일 발송이 되도록 설정합니다.
ee22

경보 세부 정보 추가

이름은 임의로 입력해주고 알람을 생성합니다.
ee23

생성 확인하기

알람을 생성완료하면 실제로 어떻게 표시되는지 확인해보겠습니다.

알람이 작성되면 아래와 같이 회색으로 정상 범위가 표시되고 범위에서 벗어났을 때 알람을 발생시킵니다.
※ 알람 생성 후에 정상 범위가 표시될 때까지는 시간이 걸립니다.
ee25

이메일로 온 알람을 확인해봐도 다음과 같이 잘 전송된 것을 확인할 수 있습니다.
ee26

마무리

이상, 한국어 블로그 릴레이의 2025년 24번째 블로그「CloudWatch Alarm 의 이상 탐지에 대해 알아보자」편이었습니다. 다음 25번째 블로그 릴레이는 6월 첫째 주에 공개됩니다.

끝까지 읽어주셔서 감사합니다! 이상, 클라우드 사업본부의 임채정이었습니다.

블로그 릴레이

다른 블로그도 궁금하신 분은 아래 페이지를 참고해주세요.
https://dev.classmethod.jp/tags/korean-blog-relay/

문의 사항은 클래스메소드 코리아로!

클래스메소드 코리아에서는 다양한 세미나 및 이벤트를 진행하고 있습니다.
진행중인 이벤트는 아래 페이지를 참고해주세요.

https://classmethod.kr/board/library

AWS에 대한 상담 및 클래스 메소드 멤버스에 관한 문의사항은 아래 메일로 연락주시면 감사드립니다!
Info@classmethod.kr

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.