분산 추적 개요

애플리케이션 부하 분산기의 분산 추적은 클라이언트에서 부하 분산기를 거쳐 백엔드 서비스로 이동하는 요청에 대한 엔드 투 엔드 가시성을 제공합니다.

Cloud Load Balancing은 Cloud Trace와 통합되어 부하 분산기가 처리하는 요청에 대한 trace 스팬을 생성합니다. 부하 분산기는 애플리케이션 트래픽의 진입점이므로 부하 분산기에서 트레이스 컨텍스트를 시작하고 전파하면 전체 요청 경로에서 진단 가시성이 보장됩니다. 이러한 trace를 사용하여 지연 시간 병목 현상을 식별하고, 실패한 홉을 격리하고, 다중 계층 아키텍처 전반에서 오류를 해결할 수 있습니다.

부하 분산기는 개방형 표준(W3C Trace Context 및 OpenTelemetry)을 준수하는 trace를 생성합니다. OpenTelemetry로 계측된 백엔드 서비스는 부하 분산기가 시작하는 trace를 계속할 수 있습니다.

주요 이점

Cloud Trace를 사용한 분산 추적은 다음과 같은 이점을 제공합니다.

  • 엔드 투 엔드 요청 가시성: 외부 및 내부 애플리케이션 부하 분산기와 트래픽을 라우팅하는 백엔드 서비스에서 요청 경로를 추적합니다.
  • 에지 모니터링 가능성: 부하 분산기가 백엔드를 선택하기 전에 전달 규칙에서 trace 스팬을 캡처하여 백엔드 계측에서 감지할 수 없는 에지 오류 및 지연 시간을 확인할 수 있습니다.
  • 분리된 원격 분석 구성: 부하 분산기의 라우팅 구성을 변경하지 않고 독립형 TelemetryPolicy 리소스에서 추적 설정을 정의합니다.
  • 교차 원격 분석 상관관계: trace 스팬을 Cloud Load Balancing 요청 로그 및 Cloud Monitoring 측정항목과 연결하여 지연 시간 또는 오류가 발생하는 위치를 정확히 파악합니다.

지원되는 부하 분산기

다음 표에는 분산 추적을 지원하는 부하 분산기와 각 부하 분산기에서 지원하는 샘플링 모드가 나와 있습니다.

부하 분산기 부하 분산 스키마 확률적 샘플링 상위 기반 샘플링
전역 외부 애플리케이션 부하 분산기 EXTERNAL_MANAGED
리전 외부 애플리케이션 부하 분산기 EXTERNAL_MANAGED
리전 내부 애플리케이션 부하 분산기 INTERNAL_MANAGED
리전 간 내부 애플리케이션 부하 분산기 INTERNAL_MANAGED

기본 애플리케이션 부하 분산기는 분산 추적을 지원하지 않습니다.

분산 추적 작동 방식

분산 추적을 구성하려면 Network Services API에서 TelemetryPolicy 리소스를 만듭니다. 텔레메트리 정책은 다음을 지정합니다.

  • 대상: 추적하려는 부하 분산기의 전달 규칙입니다.
  • 추적 구성: 부하 분산기가 추적하는 요청을 결정하는 샘플링 설정입니다.

요청이 텔레메트리 정책이 타겟팅하는 전달 규칙에 도달하면 부하 분산기는 요청을 샘플링할지 여부를 결정합니다. 요청이 샘플링되면 부하 분산기는 trace 스팬을 생성하고, 스팬을 Cloud Trace로 전송하고, W3C traceparent 요청 헤더의 백엔드에 trace 컨텍스트를 전파합니다.

전달 규칙 연결

텔레메트리 정책은 부하 분산기의 프런트엔드를 나타내는 부하 분산기의 전달 규칙을 타겟팅합니다. 전달 규칙에 추적을 연결하면 부하 분산기는 부하 분산기가 백엔드를 선택하기 전에 실패한 요청을 포함하여 가상 IP 주소 (VIP) 및 포트에 들어오는 모든 트래픽을 추적할 수 있습니다.

텔레메트리 정책에는 다음과 같은 특성이 있습니다.

  • 독립적인 수명 주기: 텔레메트리 정책은 백엔드 서비스, URL 맵, 대상 프록시와 별개입니다. 부하 분산기가 트래픽을 라우팅하는 방식을 변경하지 않고도 텔레메트리 정책을 만들거나 수정하거나 삭제할 수 있습니다.
  • 프런트엔드 간 재사용 가능: 단일 텔레메트리 정책이 여러 전달 규칙을 타겟팅할 수 있으므로 여러 부하 분산기 프런트엔드에 일관된 추적 설정을 적용할 수 있습니다.
  • 위치 범위: global 위치에 텔레메트리 정책을 만들어 전역 외부 애플리케이션 부하 분산기 및 리전 간 내부 애플리케이션 부하 분산기에서 사용하는 것과 같은 전역 전달 규칙을 타겟팅합니다. 리전 외부 애플리케이션 부하 분산기 및 리전 내부 애플리케이션 부하 분산기에서 사용하는 것과 같은 해당 리전의 리전 전달 규칙을 타겟팅하려면 리전에 텔레메트리 정책을 만듭니다.

샘플링 모드

분산 추적은 다음 샘플링 모드를 지원합니다. 각 부하 분산기에서 지원하는 샘플링 모드에 대한 자세한 내용은 이 문서의 지원되는 부하 분산기를 참조하세요.

  • 확률적 샘플링: 부하 분산기는 samplingRate 필드에 설정한 고정된 비율의 요청을 샘플링합니다. 예를 들어 0.01 값은 요청의 1% 를 샘플링합니다. 확률적 샘플링은 지원되는 모든 부하 분산기에서 지원됩니다.
  • 상위 기반 샘플링: 부하 분산기는 업스트림 클라이언트 또는 서비스에서 수신되는 traceparent 헤더의 샘플링 결정을 따릅니다. parentBasedSampling 필드에서 상위 기반 샘플링을 구성합니다. 상위 기반 샘플링은 내부 애플리케이션 부하 분산기에서만 지원됩니다.

    상위 기반 샘플링을 사용 설정하면 부하 분산기가 다음과 같이 요청을 처리합니다.

    • 수신 traceparent 헤더에 샘플링된 플래그가 설정된 경우 부하 분산기는 parentBasedSampling.samplingRate 필드에 지정된 비율로 요청을 샘플링합니다. 예를 들어 업스트림 서비스가 이미 샘플링한 모든 요청을 추적하려면 이 필드를 1.0로 설정합니다.
    • 수신 traceparent 헤더에 샘플링된 플래그가 설정되지 않은 경우 부하 분산기는 요청을 샘플링하지 않습니다. 이 동작은 업스트림 결정을 따르고 OpenTelemetry 사양을 따르므로 연결이 끊긴 trace가 Cloud Trace에 표시되지 않습니다.
    • 요청에 traceparent 헤더가 포함되지 않은 경우 부하 분산기는 기준 samplingRate를 적용합니다.

trace 컨텍스트 헤더 처리

부하 분산기는 W3C traceparent 헤더를 다음과 같이 처리합니다.

  • 추적이 사용 설정되지 않았거나 요청이 샘플링되지 않음: 부하 분산기가 수신 traceparent 헤더를 변경 없이 백엔드로 전달합니다.
  • 요청이 샘플링되고 traceparent 헤더를 포함하지 않음: 부하 분산기가 새 trace ID 및 스팬 ID를 생성하고 trace 플래그를 03 (무작위 및 샘플링)로 설정합니다.
  • 요청이 샘플링되고 traceparent 헤더가 포함됨: 부하 분산기는 수신 trace ID와 무작위 플래그를 보존하고, 새 스팬 ID를 생성하고, 샘플링된 플래그를 설정합니다.

W3C Trace Context 전파기와 함께 OpenTelemetry SDK를 사용하는 백엔드 서비스는 traceparent 헤더를 자동으로 읽고 trace를 계속합니다. 자세한 내용은 trace 컨텍스트를 참조하세요.

일반적인 사용 사례

이 섹션에서는 분산 추적의 일반적인 시나리오를 설명합니다.

매장 에지 모니터링

전자상거래 매장은 전역 외부 애플리케이션 부하 분산기를 사용하여 고객 트래픽을 수신합니다. 에지 지연 시간과 404 응답 및 TLS 오류와 같은 오류를 모니터링하려면 확률적 샘플링이 포함된 텔레메트리 정책을 온라인 상점의 전달 규칙에 연결합니다. 0.01 (1%)과 같은 낮은 샘플링 레이트는 트래픽이 급증하는 이벤트 중에 Cloud Trace 수집 비용을 예측 가능한 수준으로 유지합니다.

결제 서비스 전반에서 trace 연속성 유지

결제 요청은 매장에서 내부 애플리케이션 부하 분산기를 통해 내부 장바구니, 인벤토리, 결제 서비스로 이동합니다. 매장에서 샘플링된 결제 요청이 모든 내부 홉에서 추적되도록 하려면 parentBasedSampling.samplingRate이 1.0인 내부 부하 분산기에서 상위 기반 샘플링을 사용 설정합니다. 업스트림 샘플링 결정을 전달하지 않는 일상적인 내부 트래픽은 기준 samplingRate에서 샘플링됩니다.

지연 시간 병목 현상 격리

결제 지연 시간이 증가하거나 5xx 오류가 급증하면 Cloud Trace의 부하 분산기 스팬을 부하 분산기 요청 로그 및 지연 시간 측정항목과 비교합니다. 이 비교를 통해 문제가 부하 분산기 에지, 내부 부하 분산기 홉 또는 백엔드 서비스에서 발생하는지 확인할 수 있습니다.

가격 책정

부하 분산기는 trace 스팬 생성에 대해 요금을 청구하지 않습니다. 하지만 Cloud Trace는 Cloud Trace 가격 책정에 따라 trace 스팬 수집에 대한 요금을 청구합니다.

트래픽이 많은 프로덕션 워크로드의 수집 비용을 관리하려면 samplingRate를 0.01 (1%) 또는 0.001 (0.1%)로 설정하는 것이 좋습니다.

제한사항

미리보기 중에는 애플리케이션 부하 분산기의 분산 추적에 다음과 같은 제한사항이 있습니다.

  • 상위 기반 샘플링은 외부 애플리케이션 부하 분산기에서 지원되지 않습니다.
  • 커스텀 스팬 속성은 지원되지 않습니다.
  • Google Kubernetes Engine 게이트웨이 API 또는 Terraform을 사용하여 분산 추적을 구성할 수 없습니다.
  • 단일 텔레메트리 정책은 최대 50개의 리소스를 타겟팅할 수 있습니다.

Agent Gateway의 분산 추적

Agent Gateway를 사용하여 AI 에이전트의 트래픽을 관리하는 경우 에이전트 트래픽 모니터링에 대한 자세한 내용은 Agent Gateway를 통해 트래픽 모니터링을 참조하세요.

다음 단계