Amazon DVA-C02: 모니터링, 로깅 및 디버깅 (CloudWatch, X-Ray, 추적, 경보) — 학습 가이드

다음의 일부입니다: AWS Developer Associate DVA-C02 — 학습 가이드. 검증된 답안으로 연습하기: Amazon 시험 허브, 또는 다음에서 시간 제한 모의고사 풀기: ExamRoll.io.

CloudWatch Logs, 지표 및 로그 지표 필터

CloudWatch Logs는 애플리케이션 및 플랫폼 원격 측정(telemetry)을 위한 기본 파이프라인입니다. 개발자는 Metrics와 Insights가 로그를 안정적으로 파싱할 수 있도록 구조화된(JSON) 형식으로 로그를 설계해야 합니다. 사용자 지정 애플리케이션 지표의 경우, 즉각적인 차원(dimension)과 고해상도 요구사항을 위해 CloudWatch Embedded Metric Format (EMF) 또는 PutMetricData를 사용하는 것이 좋습니다. EMF는 로그 라인에 _aws JSON을 포함시켜 CloudWatch가 단일 PutLogEvents 호출로 여러 지표를 추출하게 하여 비용 및 처리량 효율성을 높입니다. 서비스 측에서 텍스트 로그로부터 지표를 도출해야 할 경우, 로그 그룹에 대해 필터 패턴을 MetricTransformations에 매핑하는 지표 필터(PutMetricFilter)를 생성하세요. 이를 통해 그래프 작성 및 경보 설정이 가능한 CloudWatch 지표가 생성됩니다. 일반적인 운영 API로는 CreateLogGroup, CreateLogStream, PutLogEvents(sequenceToken 및 PutLogEvents 배치 크기 제한에 유의), 그리고 저장 데이터 암호화를 위해 고객 관리형 KMS 키를 로그 그룹에 연결하는 AssociateKmsKey가 있습니다. IAM에 주의하세요: PutLogEvents와 PutMetricData는 명시적인 권한이 필요하며, KMS 권한 부여(grant)는 서비스 보안 주체(service principal)가 암호화를 위해 키를 사용할 수 있도록 허용해야 합니다. 보존 정책을 사용하여 비용을 제어하고, 분 단위 미만의 가시성이 필요한 경우에만 고해상도 지표(StorageResolution=1로 PutMetricData 사용)를 사용하세요.

분산 시스템을 위한 추적 및 X-Ray

분산 추적은 서비스 간의 요청 흐름을 계측(instrument)하여 지연 시간과 오류가 발생하는 위치를 파악하는 데 사용됩니다. AWS X-Ray는 이를 위한 통합 옵션입니다. Lambda 함수에서 활성 추적(Lambda TracingConfig Mode: Active)을 활성화하고, API Gateway 스테이지에서 X-Ray를 활성화하여 X-Ray 추적 헤더를 전파하세요. 런타임에서 AWS X-Ray SDK(Node의 경우 aws-xray-sdk-core, Python의 경우 aws_xray_sdk, Java의 경우 AWSXRayRecorder)를 사용하여 하위 세그먼트(subsegment)를 생성하고, 주석(annotation, 인덱싱됨, 작은 값)과 메타데이터(metadata, 인덱싱되지 않음, 큰 객체)를 추가하세요. AWS SDK 클라이언트를 X-Ray 레코더로 래핑하여 다운스트림 SDK 호출을 캡처하면, SDK가 S3, DynamoDB 및 HTTP 호출에 대한 요청을 자동으로 계측합니다. 컨테이너화된 워크로드의 경우 X-Ray 데몬을 사이드카로 실행하거나 데몬 레이어를 사용하세요. 이 데몬은 UDP 패킷(기본 포트 2000)을 수신하여 X-Ray 서비스로 일괄 전송합니다. 샘플링 규칙(CreateSamplingRule)을 구성하여 노이즈를 피하되, 항상 추적해야 하는 중요한 흐름에 대해서는 규칙을 조정하거나 SDK 재정의(override)를 사용하세요. 세그먼트 문서 크기 제한에 유의하고, 주석은 인덱싱되고 검색 가능하므로 개인 식별 정보(PII)를 절대 넣지 마세요.

경보, 알림 및 경보 설계

경보는 조치 가능한 이벤트를 감지하고, 노이즈를 줄이며, 런북(runbook)과 통합되어야 합니다. 기본 지표, 사용자 지정 지표(PutMetricData 또는 지표 필터에서 생성) 또는 지표 수학 표현식에 CloudWatch 경보를 사용하세요. 플래핑(flapping)을 방지하기 위해 DatapointsToAlarm 및 EvaluationPeriods를 조정하고, 경보 볼륨을 줄이기 위해 다중 신호 조건(다운스트림 장애 + 오류율 증가)에는 복합 경보(composite alarm)를 사용하는 것이 좋습니다. 경보 작업은 사람/자동화 워크플로를 위해 SNS 주제에 게시하거나, Auto Scaling 또는 Systems Manager OpsCenter(OpsItems 생성)를 호출하거나, 복잡한 플레이북을 위해 EventBridge 규칙(source: aws.cloudwatch)을 통해 라우팅할 수 있습니다. 신속한 온콜(on-call) 대응이 필요할 경우 SNS -> HTTP 엔드포인트 또는 PagerDuty 통합을 사용하고, 자동화된 해결 조치를 위해서는 최소 권한 IAM을 사용하여 EventBridge -> Step Functions 또는 Lambda를 사용하세요. 트래픽 기준선 설정을 위해 이상 탐지 모델을 고려하고, 히스테리시스(hysteresis)를 사용하여 OK 임계값을 설정하세요. 일반적인 함정으로는 너무 많은 차원별 경보를 생성하여 모니터링 비용이 폭증하는 것, 단일 데이터 포인트 트리거에만 의존하는 것, 알림 주제(SNS 액세스 정책)를 제대로 보호하지 않아 의도하지 않은 소비자에게 경보가 유출되는 것 등이 있습니다.

문제 해결 패턴 및 SDK/API 모범 사례

예상 타임라인과 관찰된 타임라인을 비교하여 문제 해결을 시작한 다음 로그, 지표, 추적을 연관 분석합니다. CloudWatch Logs Insights를 사용하여 임시 쿼리(필드 @timestamp, @message | parse … | stats count() by bin(1m))로 급증 구간을 찾은 다음, X-Ray 추적으로 전환하여 상세한 지연 시간을 확인합니다. Lambda 기반 API의 경우 콜드 스타트, VPC ENI 연결 시간(VPC 내 함수), 그리고 실패한 비동기 호출을 캡처하기 위해 Lambda 대상 또는 DLQ가 구성되었는지 확인합니다. 실패한 호출을 캡처하려면 Lambda 대상(onFailure 시 SNS, SQS 또는 EventBridge로 전송) 또는 비동기 DLQ를 사용하여 페이로드를 보존합니다. 코드를 계측할 때는 지터가 포함된 지수 백오프를 구현하여 API 쓰로틀링을 처리하고, 지표 필터나 EMF 카운터를 통해 429 오류를 모니터링합니다. 흔히 겪는 문제: PutLogEvents는 올바른 시퀀스 토큰이 필요하며 CreateLogStream을 먼저 호출해야 합니다. PutMetricData는 쓰로틀링될 수 있으므로 집계된 지표를 배치 처리하여 전송해야 합니다. X-Ray는 xray:PutTraceSegments 및 xray:PutTelemetryRecords 권한(관리형 정책 AWSXRayDaemonWriteAccess)이 필요합니다. 또한, 빈도는 낮지만 중요한 흐름에 대해 규칙을 조정하지 않으면 샘플링으로 인해 문제가 가려질 수 있습니다.

실제 문제: 사용 사례 시나리오

시나리오: Acme Retail은 API Gateway -> Lambda -> DynamoDB를 사용하여 AWS에서 서버리스 결제 서비스를 운영하고 있습니다. 팀은 중앙화된 CloudWatch Logs와 X-Ray를 사용하지만, 분당 디바이스 처리량 지표가 누락되었고 노이즈가 많은 경보를 생성하지 않으면서 API 지연 시간 급증에 대한 신뢰할 수 있는 경보가 필요합니다.

과제: 분당 디바이스/메시지 수를 거의 실시간으로 캡처하고, 느린 요청에 대한 엔드투엔드 추적을 보장하며, 자동화된 해결 Lambda를 트리거하고 온콜 담당자에게 알리는 노이즈가 적은 경보를 생성해야 합니다.

권장 접근 방식:

  1. 결제 Lambda를 계측하여 PutMetricData API를 사용해 사용자 지정 고해상도 지표를 전송합니다. 이때 Namespace=Acme/Checkout, MetricName=DeviceReportsPerMinute, Timestamp=now, Value=1, StorageResolution=1로 설정합니다. API 쓰로틀링을 피하기 위해 이를 인메모리에서 배치 처리하고 30초마다 플러시합니다.
  2. 또한 더 풍부한 차원(customerId, region)을 위해 Lambda 로그에 EMF JSON을 포함하고, CloudWatch Logs가 PutLogEvents 및 지표 필터(PutMetricFilter)를 통해 오류 수와 같은 추가 지표를 추출하도록 합니다.
  3. X-Ray 추적 활성화: Lambda TracingConfig 모드를 Active로 설정하고, API Gateway 스테이지에서 X-Ray를 활성화하며, X-Ray SDK를 사용하여 서드파티 API에 대한 외부 HTTP 호출 주변에 어노테이션(PII가 아닌 정보)과 하위 세그먼트를 추가합니다.
  4. 높은 95번째 백분위수 지연 시간 지표(지표 수학)와 DeviceReportsPerMinute의 급증을 결합하는 복합 CloudWatch 경보를 생성합니다. EvaluationPeriods=3, DatapointsToAlarm=2로 설정하고, Action으로 온콜 엔드포인트를 트리거하는 SNS 주제와 해결 Lambda(최소 권한 역할)를 호출하는 EventBridge 규칙을 지정합니다.

근거: 고해상도 지표와 EMF를 전송하면 즉각적인 분당 수치와 더 풍부한 차원을 모두 얻을 수 있습니다. X-Ray는 다운스트림 호출까지 지연 시간의 근본 원인을 제공합니다. 복합 경보는 경보 발생 전에 연관된 조건을 요구하여 노이즈를 줄이고 EventBridge를 통해 자동화를 허용합니다.


보안 · 모든 도메인 · 스토리지

이 문제 연습하기 → · ExamRoll.io에서 시간 제한 연습 →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

시험 합격하기 →

Amazon 찾아보기 →

Related guides

올인원 액세스

하나의 구독. 모든 시험.

모든 플랜은 무제한 답변 검색, 모의고사, AI 해설, 전체 자료 라이브러리를 20개 이상의 언어로 잠금 해제합니다.

월간
24.87
Just €0.83/day
모든 포함:
  • 무제한 답변 검색
  • 무제한 모의고사
  • AI 기반 해설
  • 전체 자료 라이브러리
  • 20개 이상의 언어
  • 주간 콘텐츠 업데이트
  • 보상 및 추천
  • 우선 지원
무료 체험 시작

신용카드 필요 없음*

최고의 가치
12개월
179.87
Just €0.49/daySave 40%
모든 포함:
  • 무제한 답변 검색
  • 무제한 모의고사
  • AI 기반 해설
  • 전체 자료 라이브러리
  • 20개 이상의 언어
  • 주간 콘텐츠 업데이트
  • 보상 및 추천
  • 우선 지원
무료 체험 시작

신용카드 필요 없음*

✓ 무료 플랜 포함 · ✓ 언제든지 취소 가능 · ✓ 모든 플랜은 전체 제품을 잠금 해제합니다