AWS Certified Developer - Associate (DVA-C02) #12 Domain 4-1 트러블슈팅과 최적화: 관측

5 분 소요

#11 배포 전략까지 다루며 배포 도메인을 마쳤습니다. 마지막 도메인은 18%의 트러블슈팅과 최적화입니다. 첫 글은 관측(observability), 즉 “무슨 일이 일어나고 있는지 보는 도구"입니다. 장애를 추적하려면 먼저 로그,지표,추적을 읽을 수 있어야 합니다.

CloudWatch Logs #

애플리케이션,서비스의 로그를 수집,검색,보관합니다.

개념의미
로그 그룹(Log Group)같은 애플리케이션,함수의 로그 묶음. 보존 기간 설정
로그 스트림(Log Stream)한 소스(인스턴스,실행 환경)의 로그 시퀀스
Logs Insights로그를 쿼리 언어로 검색,집계
구독 필터로그를 실시간으로 Lambda/Kinesis로 스트리밍
  • Lambda는 로그를 자동으로 CloudWatch Logs에 기록합니다(실행 역할에 로그 권한 필요).
  • EC2,온프레미스는 CloudWatch Agent를 설치해야 로그,메모리,디스크 지표를 보냅니다.

시험 함정: EC2의 메모리,디스크 사용률은 기본 지표가 아닙니다. CloudWatch Agent를 깔아야 커스텀 지표로 올라옵니다. CPU,네트워크는 기본 제공입니다.

CloudWatch Metrics #

시스템,애플리케이션의 수치를 시계열로 수집합니다.

  • 표준 지표. AWS 서비스가 자동 제공(EC2 CPU, Lambda 호출 수,오류,지속시간 등).
  • 커스텀 지표. PutMetricData로 직접 올립니다(주문 수 등 비즈니스 지표).
  • 고해상도(High-Resolution). 1초 단위까지. 기본은 1분(또는 5분).
  • 차원(Dimension). 지표를 함수명,환경 등으로 분류하는 키-값.

CloudWatch Alarms #

지표가 임계치를 벗어나면 동작합니다.

  • 상태: OK / ALARM / INSUFFICIENT_DATA.
  • 액션: SNS 알림, Auto Scaling, EC2 액션, 배포 자동 롤백.
  • 복합 알람으로 여러 알람을 논리 조건으로 묶을 수 있습니다.

X-Ray: 분산 추적 #

마이크로서비스,서버리스에서 요청이 여러 서비스를 지나며 어디서 느려지고 어디서 실패하는지를 추적합니다.

개념의미
세그먼트(Segment)한 서비스가 처리한 작업 단위
서브세그먼트(Subsegment)세그먼트 안의 세부 호출(DB 쿼리, 외부 API 등)
트레이스(Trace)한 요청이 만든 세그먼트 전체
서비스 맵(Service Map)서비스 간 호출 관계,지연,오류 시각화
샘플링(Sampling)일부 요청만 추적해 비용,부하 절감
  • Lambda는 활성화 토글 + 실행 역할 권한으로 X-Ray를 켭니다. 코드에 SDK를 넣으면 외부 호출까지 서브세그먼트로 잡힙니다.
  • EC2/ECS/온프레미스는 X-Ray 데몬을 실행해 추적 데이터를 전송합니다.
  • “여러 서비스를 거치는 요청에서 병목 구간을 찾고 싶다"의 답은 X-Ray입니다.

EMF: Embedded Metric Format #

로그에 구조화된 JSON으로 지표를 함께 기록하면, CloudWatch가 그 로그에서 자동으로 커스텀 지표를 추출합니다.

  • 별도 PutMetricData API 호출 없이, 로그를 쓰는 것만으로 지표 생성.
  • 고카디널리티 컨텍스트(요청 ID 등)를 로그로 남기면서 동시에 집계 지표를 얻습니다.
  • 서버리스에서 API 호출 비용,지연 없이 커스텀 지표를 만드는 권장 방식입니다.

CloudTrail과의 구분 #

관측 도구를 고르는 문항에서 자주 헷갈리는 쌍입니다.

서비스무엇을 보는가
CloudWatch성능,로그(“얼마나 빠른가/무슨 로그가 났나”)
X-Ray요청 경로,병목(“어디서 느린가”)
CloudTrailAPI 호출 감사(“누가 무슨 API를 호출했나”)

“누가 이 리소스를 삭제했나"는 CloudTrail, “왜 느린가"는 X-Ray/CloudWatch입니다.

시험 출제 패턴 #

  • “여러 마이크로서비스를 지나는 요청의 병목을 찾는다.” → X-Ray(서비스 맵).
  • “EC2 메모리 사용률을 모니터링.” → CloudWatch Agent(커스텀 지표).
  • “로그를 쿼리로 검색,집계.” → CloudWatch Logs Insights.
  • “API 호출 없이 서버리스 커스텀 지표 생성.” → EMF.
  • “누가 S3 버킷을 지웠는지.” → CloudTrail.
  • “오류율이 임계치를 넘으면 알림.” → CloudWatch Alarm + SNS.
  • “비즈니스 지표(주문 수)를 직접 기록.” → 커스텀 지표(PutMetricData) 또는 EMF.

자주 만나는 함정 #

1) EC2 메모리가 기본 지표라는 오해 #

CPU,네트워크는 기본, 메모리,디스크는 Agent 필요입니다.

2) CloudWatch와 CloudTrail 혼동 #

성능,로그는 CloudWatch, API 감사는 CloudTrail입니다.

3) X-Ray를 코드만으로 켰다고 생각 #

Lambda는 추적 활성화 + 실행 역할에 X-Ray 권한이 필요합니다.

정리 #

이번 글에서 잡은 것:

  • CloudWatch Logs(그룹,스트림,Logs Insights,구독 필터), EC2 메모리는 Agent 필요
  • Metrics(표준,커스텀,고해상도,차원)와 Alarms(SNS,롤백 연계)
  • X-Ray. 세그먼트,서브세그먼트,서비스 맵,샘플링으로 병목 추적
  • EMF. 로그만으로 커스텀 지표 추출(서버리스 권장)
  • CloudWatch(성능),X-Ray(경로),CloudTrail(API 감사) 구분

다음: Domain 4-2 최적화와 문제 해결 #

무엇이 일어나는지 보는 법을 익혔으니, 마지막은 그것을 개선하고 흔한 오류를 해결하는 법입니다. #13 최적화와 문제 해결에서는 캐싱 계층, Lambda 성능 튜닝, 그리고 시험에 자주 나오는 오류 코드와 트러블슈팅 패턴을 정리하겠습니다.

X