AWS DVA 모니터링 — CloudWatch·X-Ray·CloudTrail

2026-05-03확률과 통계 마스터 노트

AWS DVA-C02 마스터 노트 시리즈 9편. CloudWatch 메트릭·로그·알람·대시보드·Logs Insights, X-Ray 분산 추적과 SDK 통합, CloudTrail 감사 로그와 Management/Data Event 차이까지 — 운영 가시성의 자격증 핵심을 한 흐름으로.

이 글은 AWS DVA-C02 마스터 노트 시리즈의 아홉 번째 편입니다. 시험 도메인 4 "문제 해결 및 최적화"가 18%. 이 영역의 핵심 도구는 CloudWatch·X-Ray·CloudTrail — 회사 비유로 건강검진 체크표·환자 추적 기록·출입 일지.

CloudWatch — 통합 모니터링

비유 — 건강검진 체크표. AWS 리소스의 메트릭·로그·알람·대시보드.

4가지 핵심 기능

기능 용도
Metrics CPU·메모리·네트워크 등 수치
Logs 애플리케이션·시스템 로그
Alarms 메트릭 기준 알림·자동 액션
Dashboards 시각화·통합 보기

CloudWatch Metrics

기본 메트릭

대부분 AWS 서비스가 자동 송출.

EC2: CPUUtilization, NetworkIn, NetworkOut, DiskReadOps
Lambda: Invocations, Errors, Duration, Throttles
S3: BucketSizeBytes, NumberOfObjects
DynamoDB: ConsumedReadCapacityUnits, ThrottledRequests

표준 vs 상세

구분 표준 (Basic) 상세 (Detailed)
주기 5분 1분
비용 무료 (대부분) 추가 비용
활성 기본 명시 활성

커스텀 메트릭

애플리케이션 자체 메트릭 송출.

import boto3
cloudwatch = boto3.client('cloudwatch')

cloudwatch.put_metric_data(
    Namespace='MyApp',
    MetricData=[{
        'MetricName': 'OrderCount',
        'Value': 42,
        'Unit': 'Count',
        'Dimensions': [
            {'Name': 'Region', 'Value': 'ap-northeast-2'}
        ]
    }]
)

High-Resolution Metrics

표준 — 60초·5분
High-Resolution — 1초·5초·10초·30초

여기서 시험 함정이 하나 있어요. EC2 메모리·디스크 사용량은 기본 메트릭에 X. CloudWatch Agent 설치해서 수동 송출.

CloudWatch Logs

구조

Log Group
  └── Log Stream (인스턴스·함수별)
       └── Log Event (타임스탬프 + 메시지)

Log 송출 방법

방법 설명
CloudWatch Agent EC2·On-Premise
AWS SDK 코드에서 직접
Lambda 자동 자동 (실행 역할에 logs 권한 필요)
ECS·Fargate awslogs 드라이버

Subscription Filter

로그 실시간 처리. Lambda·Kinesis Streams·Kinesis Firehose로 전달.

Lambda 로그 → Subscription Filter (ERROR 패턴) → Kinesis → S3 분석

여기서 정말 중요한 시험 함정 — Subscription Filter 가 로그를 다른 시스템으로 보내는 표준. 실시간 분석·외부 도구 통합에 핵심.

Logs Insights — SQL 쿼리

fields @timestamp, @message
| filter @message like /ERROR/
| sort @timestamp desc
| limit 100

CloudWatch Logs를 SQL 비슷한 문법으로 쿼리. 운영 디버깅의 핵심.

로그 보존

기본 무제한. 비용 절감 위해 보존 기간 설정.

Log Group → Retention: 1 day, 1 week, 1 month, 1 year, ...

메트릭 필터 (Metric Filter)

로그에서 패턴 추출 → 메트릭 변환.

필터: [..., status_code=4*, ...]
메트릭: 4xx 에러 수
알람 → SNS 알림

CloudWatch Alarms

상태

상태 의미
OK 메트릭 정상
ALARM 임계값 위반
INSUFFICIENT_DATA 데이터 부족

액션

알람 발생 시:

  • SNS 알림
  • Auto Scaling (인스턴스 추가·제거)
  • EC2 Stop·Reboot·Terminate
  • Systems Manager OpsItem 생성

Composite Alarm

여러 알람 조합.

ALARM(High CPU) AND ALARM(High Memory) → Composite ALARM

알람 노이즈 줄임.

여기서 시험 함정이 하나 있어요. 알람의 Datapoints to alarm 설정. "5분 중 3번 위반 시" 같이 잠시 스파이크엔 반응 안 함.

CloudWatch Events / EventBridge

5편에서 본 EventBridge가 CloudWatch Events 후속. 같은 서비스라고 봐도 OK.

EC2 상태 변화 → CloudWatch Events → Lambda → 알림

X-Ray — 분산 추적

비유 — 환자 추적 기록. 마이크로서비스 요청이 어느 서비스 → 어느 함수 → DB까지 거치는지 시각화.

동작 원리

클라이언트 → API Gateway → Lambda A → Lambda B → DynamoDB
              (Trace ID 부착)
              (각 단계 Segment 기록)
              ↓
            X-Ray Console에서 시각화

핵심 개념

용어 설명
Trace 한 요청의 전체 경로
Segment 한 서비스 내 작업
Subsegment Segment 내 세부 작업 (DB 쿼리 등)
Sampling 일부만 추적 (비용 절감)

SDK 통합

from aws_xray_sdk.core import xray_recorder
from aws_xray_sdk.core import patch_all

patch_all()  # boto3·requests·MySQL 등 자동 추적

@xray_recorder.capture('process_order')
def process_order(order_id):
    # 자동 Segment 생성
    pass

Lambda 통합

Lambda 함수 → 활성 추적 (Active Tracing) 설정
            → 자동 Trace ID 부착

서비스 맵

X-Ray 콘솔의 그래프. 각 서비스의 평균 지연·에러율 시각화.

[API Gateway] → [Lambda A] → [DynamoDB]
                     ↓
                [Lambda B] → [S3]

병목·에러 원인 즉시 파악.

여기서 정말 중요한 시험 함정 — 분산 추적이 필요한 시나리오 = X-Ray. 단일 서버 디버깅은 CloudWatch Logs로 충분.

CloudTrail — 감사 로그

비유 — 출입 일지. AWS 계정의 모든 API 호출 기록.

자동 활성

기본 90일 이력 콘솔에서 조회 가능. 영구 보존 + 분석 = Trail 생성.

Trail

종류 설명
Single-Region Trail 한 리전
Multi-Region Trail 모든 리전 (권장)
Organization Trail 조직 전체 계정

이벤트 종류

종류 설명
Management Event 리소스 관리 (CreateBucket·RunInstance)
Data Event 데이터 액세스 (S3 GetObject·Lambda Invoke)
Insight Event 비정상 패턴 자동 감지 (스팸 API 호출 등)

여기서 정말 중요한 시험 함정 — Data Event는 기본 비활성입니다. S3 GetObject·Lambda Invoke 같은 빈번한 호출 추적은 명시 활성 + 추가 비용.

Trail 저장

S3 버킷에 자동 저장. CloudWatch Logs로 동시 송출 가능 (실시간 알람).

보안

  • KMS 암호화 (저장)
  • Log File Validation = 변조 감지

여기서 시험 함정이 하나 있어요. CloudTrail은 글로벌 서비스 + 리전 서비스 모두 기록. IAM 같은 글로벌 서비스 호출은 모든 리전 Trail에 동일하게 보임.

CloudWatch vs X-Ray vs CloudTrail

구분 CloudWatch X-Ray CloudTrail
비유 건강검진 환자 추적 출입 일지
자리 메트릭·로그·알람 분산 추적 API 호출 감사
시간 실시간 실시간 약 15분 지연
적합 성능·에러 마이크로서비스 디버깅 보안·컴플라이언스

시나리오 키워드 매핑

키워드 도구
"성능 저하·CPU·에러율" CloudWatch Metrics
"애플리케이션 로그·디버깅" CloudWatch Logs
"마이크로서비스 병목" X-Ray
"누가 무엇을 했나·감사" CloudTrail
"비정상 API 호출 패턴" CloudTrail Insight
"이벤트 기반 자동화" EventBridge

시험 직전 한 번 더 — 자주 헷갈리는 함정 모음

여기까지가 9편의 핵심입니다. 시험 직전 또는 실무에서 헷갈릴 때 다시 펼쳐 볼 수 있게 압축 노트로 마무리할게요.

  • 시험 도메인 4 (문제 해결·최적화) 18%
  • CloudWatch 4기능 — Metrics / Logs / Alarms / Dashboards
  • 표준 5분 / 상세 1분 (추가 비용)
  • High-Resolution = 1초~30초
  • EC2 메모리·디스크는 기본 X — CloudWatch Agent 필요
  • 커스텀 메트릭 = put_metric_data
  • Log Group → Log Stream → Log Event
  • Subscription Filter = 실시간 → Lambda·Kinesis 전달
  • Logs Insights = SQL 비슷한 쿼리
  • 로그 보존 — 기본 무제한, 비용 절감 위해 설정
  • 메트릭 필터 = 로그 패턴 → 메트릭 변환
  • 알람 상태 — OK / ALARM / INSUFFICIENT_DATA
  • 알람 액션 — SNS / Auto Scaling / EC2 Stop·Reboot
  • Composite Alarm = 여러 알람 AND/OR
  • Datapoints to alarm = "5분 중 3번 위반"으로 노이즈 감소
  • X-Ray = 분산 추적, 마이크로서비스 시각화
  • Trace / Segment / Subsegment / Sampling
  • SDK = xray_recorder.capture + patch_all()
  • Lambda Active Tracing 설정
  • 서비스 맵 = 그래프 시각화
  • CloudTrail = API 호출 감사 로그
  • 자동 90일 + Trail (영구 보존)
  • Single-Region / Multi-Region / Organization
  • Management Event (리소스 관리) / Data Event (S3·Lambda, 비활성 기본) / Insight Event (비정상 패턴)
  • Data Event는 추가 비용
  • S3 버킷 저장 + CloudWatch Logs 동시
  • KMS 암호화 / Log File Validation 변조 감지
  • 글로벌 서비스 호출도 모든 리전 Trail에 기록
  • 시나리오 키워드 — 성능(CW Metric) / 로그(CW Log) / 마이크로서비스(X-Ray) / 감사(CloudTrail)

시리즈 다른 편

공식 문서: CloudWatch User Guide / X-Ray Developer Guide / CloudTrail User Guide 에서 더 깊이.

다음 글(10편)에서는 보안·암호화 — KMS 봉투 암호화·키 정책, SSM Parameter Store, Secrets Manager 자동 회전, IAM·STS 심화까지 풀어 갑니다.

※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

답글 남기기

error: Content is protected !!