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)
시리즈 다른 편
- 1편 — IAM
- 2편 — 컴퓨팅
- 3편 — 스토리지
- 4편 — 데이터베이스
- 5편 — 네트워킹
- 6편 — 메시징
- 7편 — 서버리스
- 8편 — CI/CD
- 9편 — 모니터링 (현재 글)
- 10편 — 보안·암호화
- 11편 — 컨테이너
- 12편 — 개발자 도구
공식 문서: CloudWatch User Guide / X-Ray Developer Guide / CloudTrail User Guide 에서 더 깊이.
다음 글(10편)에서는 보안·암호화 — KMS 봉투 암호화·키 정책, SSM Parameter Store, Secrets Manager 자동 회전, IAM·STS 심화까지 풀어 갑니다.