Cloud Trace로 아웃바운드 트래픽 추적

이 문서에서는 Cloud Trace를 사용하여 Secure Web Proxy의 분산 요청 추적을 구성하는 방법을 설명합니다.

개념, 주요 이점, 아키텍처 세부정보에 관한 자세한 내용은 분산 추적 개요를 참고하세요.

시작하기 전에

  1. 초기 설정 단계를 완료합니다.
  2. 프로젝트에서 Compute Engine API, Network Services API, Cloud Trace API를 사용 설정합니다.

    gcloud services enable \
        compute.googleapis.com \
        networkservices.googleapis.com \
        cloudtrace.googleapis.com
    
  3. 활성 Secure Web Proxy 게이트웨이 인스턴스가 배포되어 있는지 확인합니다. 자세한 내용은 Secure Web Proxy 인스턴스 배포를 참고하세요.

  4. HTTP 수준 분산 추적 스팬을 생성하고 HTTPS 요청에 대해 W3C 추적 컨텍스트 헤더를 전파하려면 Secure Web Proxy 게이트웨이에서 TLS 검사를 사용 설정해야 합니다.

역할 및 권한

원격 분석 정책을 구성하고 트레이스를 보는 데 필요한 권한을 얻으려면 관리자에게 다음 Identity and Access Management (IAM) 역할을 부여해 달라고 요청하세요.

  • 원격 분석 정책을 만들거나 업데이트하거나 삭제하려면 네트워크 서비스 관리자(roles/networkservices.admin) 또는 컴퓨트 네트워크 관리자(roles/compute.networkAdmin)가 필요합니다.
  • Google Cloud 콘솔에서 추적 스팬을 보고 분석하려면 Cloud Trace 사용자(roles/cloudtrace.user) 권한이 필요합니다.
  • Trace로 trace 스팬을 내보내려면 다음 서비스 계정에 Cloud Trace 에이전트 역할(roles/cloudtrace.agent)이 있는지 확인하세요.

    • Compute Engine 서비스 에이전트: service-PROJECT_NUMBER@compute-system.
    • 네트워크 보안 서비스 에이전트: service-PROJECT_NUMBER@gcp-sa-networksecurity.
    • 클라이언트 애플리케이션이 스팬을 생성하거나 전파하는 경우 클라이언트 가상 머신 (VM) 서비스 계정

원격 분석 정책 구성 스키마

YAML 파일에서 원격 분석 정책을 정의하려면 다음 스키마를 사용하세요.

    name: projects/PROJECT_ID/locations/REGION/telemetryPolicies/POLICY_NAME
    telemetryTarget:
      resources:
      - "//networkservices.googleapis.com/projects/PROJECT_ID/locations/REGION/gateways/GATEWAY_NAME"
    description: "OPTIONAL_DESCRIPTION"
    tracingConfiguration:
      samplingRate: SAMPLING_RATE
      parentBasedSampling:
        enabled: true
  

다음 표에서는 원격 분석 정책의 필드를 설명합니다.

필드 유형 설명
name 문자열 원격 분석 정책의 고유 식별자입니다.
telemetryTarget.resources 문자열 목록 이 정책이 적용되는 Secure Web Proxy 게이트웨이의 리소스 URL입니다. 게이트웨이는 정책과 동일한 리전에 있어야 합니다.

형식: //networkservices.googleapis.com/projects/PROJECT_ID/locations/REGION/gateways/GATEWAY_NAME

또는 projects/PROJECT_ID/locations/REGION/gateways/GATEWAY_NAME과 같은 닉네임 형식을 사용합니다.

description 문자열 (선택사항) 이 필드는 원격 분석 정책에 대한 사람이 읽을 수 있는 설명을 제공합니다.
tracingConfiguration.samplingRate 부동 소수점 수 추적할 요청의 비율로, 0.0 (0%)와 1.0 (100%) 사이의 십진수로 지정됩니다. 예를 들어 0.01는 요청의 1% 를 샘플링합니다.
tracingConfiguration.parentBasedSampling.enabled 불리언 업스트림 추적 샘플링 결정(true 또는 false)을 사용 설정할지 여부를 나타냅니다.

분산 추적 구성

Google Cloud CLI를 사용하여 추적 정책을 Secure Web Proxy 게이트웨이에 적용하려면 다음을 실행하세요.

  1. swp-tracing-policy.yaml이라는 YAML 정책 파일을 만듭니다.

    cat <<EOF > swp-tracing-policy.yaml
    name: projects/PROJECT_ID/locations/REGION/telemetryPolicies/my-swp-tracing-policy
    telemetryTarget:
      resources:
        - "//networkservices.googleapis.com/projects/PROJECT_ID/locations/REGION/gateways/GATEWAY_NAME"
    description: "Distributed tracing policy for the Secure Web Proxy gateway"
    tracingConfiguration:
      samplingRate: 0.01
      parentBasedSampling:
        enabled: true
    EOF
    

    다음을 바꿉니다.

    • PROJECT_ID: Google Cloud 프로젝트 ID
    • REGION: Secure Web Proxy 게이트웨이가 배포된 리전(예: us-central1)
    • GATEWAY_NAME: Secure Web Proxy 게이트웨이 인스턴스의 이름
  2. gcloud beta network-services telemetry-policies import 명령어를 사용하여 원격 분석 정책을 가져옵니다.

    gcloud beta network-services telemetry-policies import my-swp-tracing-policy \
        --source=swp-tracing-policy.yaml \
        --location=REGION
    
  3. gcloud beta network-services telemetry-policies describe 명령어를 사용하여 정책이 적용되었는지 확인합니다.

    gcloud beta network-services telemetry-policies describe my-swp-tracing-policy \
        --location=REGION
    

타겟 게이트웨이 연결 또는 분리

정책 정의를 업데이트하거나 여러 리전 게이트웨이를 연결하려면 다음 단계를 따르세요.

  1. swp-tracing-policy.yaml 파일의 telemetryTarget.resources 목록을 업데이트하여 모든 타겟 게이트웨이 리소스 URI를 포함합니다.

    telemetryTarget:
      resources:
        - "//networkservices.googleapis.com/projects/PROJECT_ID/locations/us-central1/gateways/prod-swp-uc1"
        - "//networkservices.googleapis.com/projects/PROJECT_ID/locations/us-central1/gateways/staging-swp-uc1"
    
  2. gcloud beta network-services telemetry-policies import 명령어를 사용하여 업데이트된 원격 분석 정책을 가져옵니다.

    gcloud beta network-services telemetry-policies import my-swp-tracing-policy \
        --source=swp-tracing-policy.yaml \
        --location=REGION
    

    다음을 바꿉니다.

    • PROJECT_ID: Google Cloud 프로젝트 ID
    • REGION: Secure Web Proxy 게이트웨이가 배포된 리전(예: us-central1)

Trace에서 트레이스 보기 및 분석

  1. Google Cloud 콘솔에서 Trace 탐색기 페이지로 이동합니다.

    trace 탐색기로 이동

  2. Google Cloud 프로젝트를 선택합니다.

  3. 필터 필드에서 다양한 속성을 사용하여 트레이스를 검색합니다.

  4. 분산형 차트 또는 타임라인 뷰에서 trace를 클릭하여 총 지속 시간, 프록시 처리 지연 시간, 외부 서버 IP 세부정보와 같은 스팬 세부정보를 검사합니다.

trace와 로그 및 측정항목의 상관관계 파악

Secure Web Proxy는 트레이스, 로그, 측정항목 간의 상관관계를 제공합니다.

  • 로그-트레이스 상관관계: Cloud Logging에 기록된 모든 프록시 트랜잭션 로그 항목에는 projects/PROJECT_ID/traces/TRACE_ID 형식의 trace 필드가 포함됩니다.

    • 로그 탐색기에서 로그 항목을 클릭한 다음 trace 세부정보 보기를 선택하여 Trace의 해당 스팬으로 바로 이동합니다.
    • Trace의 Trace 세부정보 창에서 로그 표시를 클릭하여 해당 요청과 연결된 모든 트랜잭션 로그를 확인합니다.
  • 측정항목 상관관계: Cloud Monitoring 측정항목(예: networkservices.googleapis.com/https/total_latencies)에서 관찰된 지연 시간 급증을 추적 스팬 분석과 비교하여 지연 시간 급증이 프록시 내에서 발생했는지 아니면 외부 원본 서버에서 발생했는지 확인합니다.

다음 단계