Sessions
입문Level 2002-3시간

Hands-on with Amazon CloudWatch

AWS 모니터링의 핵심 서비스인 CloudWatch를 처음 접하는 분들을 위한 가이드입니다. 메트릭, 로그, 알람, 대시보드의 기본 개념을 쉽게 설명합니다.

워크샵 바로가기

워크샵 개요

이 워크샵에서는 Amazon CloudWatch를 사용하여 AWS 리소스와 애플리케이션을 모니터링하는 방법을 배웁니다. 실시간 메트릭 수집, 로그 분석, 알람 설정, 대시보드 구성까지 관측성(Observability)의 핵심을 다룹니다.

💡 학습 목표: CloudWatch의 핵심 구성 요소(Metrics, Logs, Alarms, Dashboards)를 이해하고 실무에 적용할 수 있습니다.

아키텍처 개요

CloudWatch 아키텍처 개요
CloudWatch의 전체 구조와 데이터 흐름을 이해합니다.

┌─────────────────────────────────────────────────────────────────┐
│                        Data Sources                              │
├─────────────┬─────────────┬─────────────┬─────────────┬─────────┤
│   EC2       │   Lambda    │    RDS      │   ECS/EKS   │  Custom │
│  (Agent)    │  (Auto)     │   (Auto)    │  (Agent)    │   App   │
└──────┬──────┴──────┬──────┴──────┬──────┴──────┬──────┴────┬────┘
       │             │             │             │           │
       ▼             ▼             ▼             ▼           ▼
┌─────────────────────────────────────────────────────────────────┐
│                     Amazon CloudWatch                            │
├─────────────────────────────────────────────────────────────────┤
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────────┐  │
│  │   Metrics   │  │    Logs     │  │    Application Signals  │  │
│  │  (시계열)   │  │  (텍스트)   │  │      (APM/Traces)       │  │
│  └──────┬──────┘  └──────┬──────┘  └────────────┬────────────┘  │
│         │                │                      │                │
│         ▼                ▼                      ▼                │
│  ┌─────────────────────────────────────────────────────────────┐│
│  │                    분석 & 시각화                             ││
│  │  ┌─────────┐ ┌──────────┐ ┌─────────┐ ┌─────────────────┐  ││
│  │  │Dashboard│ │  Alarms  │ │Insights │ │ Anomaly Detection│  ││
│  │  └─────────┘ └────┬─────┘ └─────────┘ └─────────────────┘  ││
│  └───────────────────┼─────────────────────────────────────────┘│
└──────────────────────┼──────────────────────────────────────────┘
                       │
                       ▼
┌─────────────────────────────────────────────────────────────────┐
│                      Actions & Integrations                      │
├─────────────┬─────────────┬─────────────┬───────────────────────┤
│     SNS     │ Auto Scaling│   Lambda    │   EventBridge         │
│  (알림)     │  (스케일링) │  (자동화)   │   (이벤트 라우팅)     │
└─────────────┴─────────────┴─────────────┴───────────────────────┘

단계별 기본 지식

1

Step 1: CloudWatch 개요

Amazon CloudWatch의 핵심 개념과 구성 요소를 이해합니다.

🎓 CloudWatch란 무엇인가?
CloudWatch는 AWS 리소스와 애플리케이션을 실시간으로 모니터링하는 관측성(Observability) 서비스입니다.

Amazon CloudWatch

AWS의 통합 모니터링 서비스입니다. 메트릭 수집, 로그 관리, 알람 설정, 대시보드 시각화를 한 곳에서 제공합니다. EC2, RDS, Lambda 등 거의 모든 AWS 서비스와 연동됩니다.

🏥 비유: 병원의 환자 모니터링 시스템입니다. 심박수(CPU), 혈압(메모리), 체온(네트워크) 등 다양한 지표를 실시간으로 확인하고, 이상 시 알람이 울립니다.

Observability (관측성)

시스템의 내부 상태를 외부에서 측정 가능한 데이터로 파악하는 능력입니다. Metrics(지표), Logs(로그), Traces(추적) 세 가지 핵심 요소로 구성됩니다.

🔍 비유: 자동차 계기판입니다. 속도계(Metrics), 블랙박스(Logs), 내비게이션 경로(Traces)를 통해 차량 상태를 파악합니다.

📊 Observability의 3가지 기둥:
1. Metrics - 숫자로 표현되는 측정값 (CPU 80%, 응답시간 200ms)
2. Logs - 이벤트 기록 (에러 메시지, 접속 기록)
3. Traces - 요청의 흐름 추적 (API → Lambda → DynamoDB)

CloudWatch vs CloudTrail

CloudWatch는 '성능 모니터링'(CPU, 메모리, 에러율), CloudTrail은 '감사 로깅'(누가 언제 무엇을 했는지)입니다. 목적이 다릅니다.

📹 비유: CloudWatch는 '속도 측정 카메라', CloudTrail은 '블랙박스'입니다.

실무 팁

  • CloudWatch는 대부분의 AWS 서비스에서 기본 메트릭을 무료로 제공합니다 (5분 간격)
  • 상세 모니터링(1분 간격)은 추가 비용이 발생하니 필요한 리소스에만 활성화하세요
  • CloudWatch Agent를 설치하면 메모리, 디스크 사용량 등 OS 레벨 메트릭도 수집 가능합니다
2

Step 2: CloudWatch Metrics

메트릭의 개념과 Namespace, Dimension을 이해합니다.

🎓 Metrics 이해하기
메트릭은 시간에 따라 변하는 측정값입니다. CloudWatch의 가장 기본적인 데이터 단위입니다.

Metric (메트릭)

시간 순서대로 기록된 데이터 포인트의 집합입니다. 각 데이터 포인트는 타임스탬프와 값(선택적으로 단위)을 가집니다. 예: CPUUtilization 80% at 2024-01-15 10:00:00

📈 비유: 체중계 기록입니다. 매일 같은 시간에 측정한 몸무게를 그래프로 그리면 추세를 볼 수 있죠.

Namespace (네임스페이스)

메트릭을 그룹화하는 컨테이너입니다. AWS 서비스는 'AWS/서비스명' 형식을 사용합니다. 커스텀 메트릭은 자신만의 네임스페이스를 만들 수 있습니다.

📁 비유: 파일 폴더입니다. EC2 관련 메트릭은 'AWS/EC2' 폴더에, RDS는 'AWS/RDS' 폴더에 정리됩니다.

📂 주요 AWS Namespace 예시:
AWS/EC2 - EC2 인스턴스 메트릭
AWS/RDS - RDS 데이터베이스 메트릭
AWS/Lambda - Lambda 함수 메트릭
AWS/ELB - Load Balancer 메트릭
AWS/S3 - S3 버킷 메트릭
Custom/MyApp - 사용자 정의 메트릭

Dimension (차원)

메트릭을 고유하게 식별하는 이름/값 쌍입니다. 같은 메트릭이라도 Dimension으로 구분됩니다. 예: CPUUtilization 메트릭을 InstanceId로 구분하면 각 EC2별 CPU를 볼 수 있습니다.

🏷️ 비유: 상품의 태그입니다. '티셔츠'라는 상품도 색상=빨강, 사이즈=L 태그로 구분하듯이요.

🔖 Dimension 예시:
InstanceId=i-1234567890abcdef0 (특정 EC2)
AutoScalingGroupName=my-asg (특정 ASG)
LoadBalancer=app/my-alb/xxx (특정 ALB)

⚠️ 주의: Dimension 조합이 다르면 별개의 메트릭으로 취급됩니다

Period & Statistics

Period는 메트릭 집계 기간(60초, 300초 등), Statistics는 집계 방식(Average, Sum, Maximum, Minimum, SampleCount)입니다.

📊 비유: 성적표입니다. 1학기(Period) 동안의 평균(Average), 최고점(Maximum)을 계산하는 것과 같습니다.

실무 팁

  • EC2 기본 메트릭은 CPU, 네트워크, 디스크 I/O만 제공합니다. 메모리는 CloudWatch Agent 필요!
  • 커스텀 메트릭 비용은 메트릭 수 × Dimension 조합 수로 계산됩니다. Dimension을 과도하게 사용하면 비용 폭증!
  • High Resolution 메트릭(1초 단위)은 비용이 높으니 꼭 필요한 경우에만 사용하세요
3

Step 3: CloudWatch Logs

로그 수집, 저장, 분석의 기본 구조를 배웁니다.

🎓 Logs 이해하기
CloudWatch Logs는 AWS 서비스와 애플리케이션의 로그를 중앙에서 수집, 저장, 분석하는 서비스입니다.

Log Group (로그 그룹)

같은 보존 기간, 모니터링, 접근 제어 설정을 공유하는 로그 스트림의 그룹입니다. 보통 애플리케이션이나 서비스 단위로 생성합니다.

📚 비유: 도서관의 '서가'입니다. 같은 주제의 책(로그)들을 한 서가에 모아두는 것처럼요.

📁 Log Group 설정 항목:
- Retention Period: 1일 ~ 영구 보존 (비용 영향!)
- KMS 암호화: 민감한 로그 보호
- Metric Filter: 로그에서 메트릭 추출
- Subscription Filter: 실시간 로그 스트리밍

Log Stream (로그 스트림)

동일한 소스에서 발생한 로그 이벤트의 시퀀스입니다. 예: 각 EC2 인스턴스, 각 Lambda 실행, 각 ECS 컨테이너별로 별도 스트림이 생성됩니다.

📖 비유: 서가 안의 '개별 책'입니다. 각 서버가 자신만의 일기장을 쓰는 것과 같아요.

Log Event (로그 이벤트)

실제 로그 메시지입니다. 타임스탬프와 메시지 본문으로 구성됩니다. CloudWatch Logs에 저장되는 가장 작은 단위입니다.

📝 비유: 일기장의 '한 줄 기록'입니다.

Log Insights

CloudWatch Logs를 SQL과 유사한 쿼리 언어로 분석하는 기능입니다. 대용량 로그에서 패턴을 찾거나 통계를 추출할 때 유용합니다.

🔍 비유: 도서관의 '검색 시스템'입니다. 수만 권의 책에서 원하는 내용을 빠르게 찾아줍니다.

📝 Log Insights 쿼리 예시:

# 최근 에러 로그 조회
fields @timestamp, @message
| filter @message like /ERROR/
| sort @timestamp desc
| limit 20

# 시간대별 에러 수 집계
filter @message like /ERROR/
| stats count(*) by bin(1h)

실무 팁

  • 로그 보존 기간을 무제한으로 두면 비용이 계속 증가합니다. 적절한 보존 기간을 설정하세요
  • Lambda는 자동으로 /aws/lambda/함수명 로그 그룹을 생성합니다
  • EC2 로그 수집은 CloudWatch Agent 설치가 필요합니다
  • Log Insights 쿼리는 스캔한 데이터 양에 따라 과금됩니다
4

Step 4: CloudWatch Alarms

알람 설정과 자동화된 대응 방법을 학습합니다.

🎓 Alarms 이해하기
CloudWatch Alarms는 메트릭을 모니터링하고 임계값 초과 시 자동으로 알림을 보내거나 액션을 실행합니다.

Alarm States (알람 상태)

알람은 OK, ALARM, INSUFFICIENT_DATA 세 가지 상태를 가집니다. 메트릭 값이 임계값을 넘으면 ALARM, 정상이면 OK, 데이터가 없으면 INSUFFICIENT_DATA입니다.

🚦 비유: 신호등입니다. 초록(OK), 빨강(ALARM), 노랑(INSUFFICIENT_DATA)으로 상태를 표시합니다.

🚦 알람 상태 전이:
OK → ALARM: 임계값 초과 (예: CPU > 80%)
ALARM → OK: 정상 복귀 (예: CPU < 80%)
INSUFFICIENT_DATA: 메트릭 데이터 없음

⚠️ 주의: INSUFFICIENT_DATA도 알람 액션을 트리거할 수 있습니다

Threshold & Period

Threshold는 알람이 발생하는 기준값, Period는 평가 기간입니다. 'N개 Period 중 M개가 임계값 초과 시 알람' 형태로 설정합니다.

⚖️ 비유: 체중 관리입니다. '3일 연속(Period) 70kg(Threshold) 초과 시 다이어트 시작(Alarm)'

📐 알람 설정 예시:
- Metric: CPUUtilization
- Threshold: 80% (GreaterThanThreshold)
- Period: 300초 (5분)
- Evaluation Periods: 3
- Datapoints to Alarm: 2

→ '5분 간격으로 3번 평가해서 2번 이상 80% 초과 시 알람'

Alarm Actions

알람 상태 변경 시 실행할 작업입니다. SNS 알림, Auto Scaling, EC2 액션(중지/종료/재부팅), Systems Manager 자동화 등을 트리거할 수 있습니다.

🔔 비유: 화재 경보기입니다. 연기 감지(ALARM) 시 스프링클러 작동(Action)과 소방서 연락(SNS)이 자동으로 실행됩니다.

Composite Alarms

여러 알람을 AND/OR 논리로 조합한 알람입니다. 복잡한 조건을 표현하거나 알람 노이즈를 줄일 때 유용합니다.

🧩 비유: 복합 조건문입니다. 'CPU 높음 AND 메모리 높음'일 때만 알람을 울리게 할 수 있습니다.

실무 팁

  • 알람이 너무 민감하면 피로감이 생깁니다. Evaluation Periods를 적절히 설정하세요
  • SNS Topic을 통해 이메일, SMS, Slack, PagerDuty 등 다양한 채널로 알림 가능
  • 비용 알람은 us-east-1 리전에서만 설정 가능합니다 (Billing 메트릭 위치)
  • Anomaly Detection 알람을 사용하면 ML 기반으로 비정상 패턴을 자동 감지합니다
5

Step 5: CloudWatch Dashboards

대시보드를 만들어 메트릭을 시각화합니다.

🎓 Dashboards 이해하기
CloudWatch Dashboards는 메트릭과 알람을 한눈에 볼 수 있는 커스터마이징 가능한 시각화 도구입니다.

Dashboard

여러 위젯을 배치하여 시스템 상태를 한눈에 파악할 수 있는 화면입니다. 여러 리전, 여러 계정의 메트릭을 하나의 대시보드에 표시할 수 있습니다.

🖥️ 비유: 자동차 계기판입니다. 속도, 연료, 엔진 온도 등 중요한 정보를 한 화면에서 확인합니다.

Widget Types

Line(선 그래프), Stacked Area(누적 영역), Number(단일 숫자), Gauge(게이지), Text(마크다운), Alarm Status, Logs Table 등 다양한 위젯을 제공합니다.

📊 비유: 엑셀 차트 종류입니다. 데이터 특성에 맞는 차트를 선택하면 더 효과적으로 정보를 전달할 수 있습니다.

📈 위젯 선택 가이드:
Line: 시간에 따른 추세 (CPU, 응답시간)
Stacked Area: 구성 요소별 비중 (메모리 사용 분포)
Number: 현재 값 강조 (활성 사용자 수)
Gauge: 목표 대비 현재 상태 (SLA 달성률)
Alarm Status: 알람 상태 한눈에 보기

Cross-Account & Cross-Region

CloudWatch 교차 계정 관측성을 설정하면 여러 AWS 계정과 리전의 메트릭을 하나의 대시보드에서 볼 수 있습니다.

🌍 비유: 글로벌 관제 센터입니다. 전 세계 지사의 상황을 본사에서 한 화면으로 모니터링합니다.

Automatic Dashboards

AWS가 자동으로 생성하는 서비스별 대시보드입니다. EC2, Lambda, RDS 등 주요 서비스의 핵심 메트릭을 바로 확인할 수 있습니다.

🎁 비유: 기본 제공 템플릿입니다. 처음부터 만들 필요 없이 바로 사용할 수 있습니다.

실무 팁

  • 대시보드는 월 3개까지 무료, 이후 대시보드당 월 $3 과금
  • 대시보드를 JSON으로 내보내기/가져오기 가능 → 버전 관리 및 복제에 활용
  • 팀별, 서비스별로 대시보드를 분리하면 관리가 편합니다
  • 중요한 대시보드는 TV 모니터에 자동 새로고침으로 띄워두세요
6

Step 6: CloudWatch Agent

EC2에서 상세 메트릭과 로그를 수집하는 방법을 배웁니다.

🎓 CloudWatch Agent 이해하기
CloudWatch Agent는 EC2, 온프레미스 서버에서 시스템 레벨 메트릭과 로그를 수집하는 소프트웨어입니다.

CloudWatch Agent

EC2 기본 메트릭(CPU, 네트워크, 디스크 I/O)에 더해 메모리, 디스크 사용량, 프로세스 정보 등 OS 레벨 메트릭을 수집합니다. 또한 로그 파일을 CloudWatch Logs로 전송합니다.

🔌 비유: 서버에 설치하는 '건강 측정기'입니다. 기본 체온계(EC2 기본 메트릭)로는 알 수 없는 혈압, 혈당(메모리, 디스크)까지 측정합니다.

Agent Configuration

JSON 형식의 설정 파일로 수집할 메트릭, 로그 파일 경로, 수집 주기 등을 정의합니다. SSM Parameter Store에 저장하여 여러 서버에 동일 설정을 배포할 수 있습니다.

📋 비유: 건강검진 항목 체크리스트입니다. 어떤 검사를 받을지 미리 선택하는 것과 같습니다.

📝 Agent 설정 주요 섹션:
{
  "metrics": {
    "metrics_collected": {
      "mem": { "measurement": ["mem_used_percent"] },
      "disk": { "measurement": ["disk_used_percent"] }
    }
  },
  "logs": {
    "logs_collected": {
      "files": {
        "collect_list": [
          { "file_path": "/var/log/messages" }
        ]
      }
    }
  }
}

IAM Role for Agent

Agent가 CloudWatch에 데이터를 전송하려면 적절한 IAM 권한이 필요합니다. CloudWatchAgentServerPolicy 관리형 정책을 EC2 역할에 연결합니다.

🔑 비유: 출입증입니다. Agent가 CloudWatch 건물에 들어가 데이터를 전달하려면 출입증(IAM Role)이 필요합니다.

Collected Metrics

Agent로 수집 가능한 메트릭: 메모리(mem_used_percent), 디스크(disk_used_percent), 네트워크(netstat), 프로세스(procstat), GPU(nvidia_smi) 등

📊 비유: 확장된 건강검진 항목입니다. 기본 검진에 포함되지 않는 정밀 검사 항목들입니다.

실무 팁

  • Agent 설치: Systems Manager Run Command로 대량 서버에 한 번에 설치 가능
  • 설정 마법사: 'amazon-cloudwatch-agent-config-wizard' 명령으로 대화형 설정 생성
  • 메모리 메트릭은 Agent 없이는 수집 불가! 운영 서버에는 필수 설치
  • Agent 로그 위치: /opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log
✅ 핵심 정리
  • 1.Metrics: 숫자로 표현되는 측정값 (CPU 80%, 응답시간 200ms)
  • 2.Logs: 텍스트 기반 이벤트 기록 (에러 메시지, 접속 로그)
  • 3.Alarms: 임계값 기반 자동 알림 및 액션 실행
  • 4.Dashboards: 메트릭과 알람을 시각화하는 통합 뷰
  • 5.Agent: EC2에서 메모리, 디스크 등 상세 메트릭 수집에 필수
💰 비용 참고
  • 기본 메트릭: 무료 (5분 간격, 대부분의 AWS 서비스)
  • 상세 모니터링: 메트릭당 월 $0.30 (1분 간격)
  • 커스텀 메트릭: 메트릭당 월 $0.30
  • 대시보드: 월 3개 무료, 이후 대시보드당 월 $3
  • 로그 수집: GB당 $0.50 (수집) + GB당 $0.03 (저장)
  • 알람: 표준 알람 월 $0.10, 고해상도 알람 월 $0.30