샘플링 규칙 구성 - AWS X-Ray

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

샘플링 규칙 구성

AWS X-Ray 콘솔을 사용하여 서비스의 샘플링 규칙을 구성할 수 있습니다. 샘플링 구성을 통한 능동적 추적을 AWS services 지원하는 X-Ray SDK는 샘플링 규칙을 사용하여 기록할 요청을 결정합니다.

샘플링 규칙 구성

다음 사용 사례에 대한 샘플링을 구성할 수 있습니다.

  • API 게이트웨이 진입점 — API 게이트웨이는 샘플링 및 활성 추적을 지원합니다. API 단계에서 적극 추적을 활성화하려면 Amazon API Gateway 액티브 트레이싱 지원 대상 AWS X-Ray 단원을 참조하십시오.

  • AWS AppSync— 샘플링 및 활성 추적을 AWS AppSync 지원합니다. AWS AppSync 요청에 대한 활성 추적을 활성화하려면 AWS X-Ray를 사용한 추적을 참조하십시오.

  • 컴퓨팅 플랫폼 기반 인스트루먼트 X-Ray SDK — Amazon EC2, Amazon ECS AWS Elastic Beanstalk또는 같은 컴퓨팅 플랫폼을 사용하는 경우 애플리케이션이 최신 X-Ray SDK로 계측된 경우 샘플링이 지원됩니다.

샘플링 규칙 사용자 정의

샘플링 규칙을 사용자 지정하여 기록하는 데이터의 양을 제어할 수 있습니다. 코드를 수정하거나 다시 배포하지 않고도 샘플링 동작을 수정할 수도 있습니다. 샘플링 규칙은 X-Ray SDK에 기준 세트에 대해 얼마나 많은 요청을 기록할지 알려줍니다. 기본적으로 X-Ray SDK는 매초 첫 번째 요청과 추가 요청의 5%를 기록합니다. 초당 하나의 요청은 리저버입니다. 이는 서비스가 요청을 처리 중인 동안 하나 이상의 트레이스가 매초 기록되도록 합니다. 5퍼센트는 리저버 크기를 넘는 추가 요청이 샘플링되는 비율입니다.

코드에 포함시키는 JSON 문서에서 샘플링 규칙을 읽도록 X-Ray SDK를 구성할 수 있습니다. 그러나 여러 서비스 인스턴스를 실행할 때 각 인스턴스는 독립적으로 샘플링을 수행합니다. 이로 인해 샘플링되는 요청의 전체 백분율이 증가합니다. 모든 인스턴스의 리저버가 함께 효과적으로 추가되기 때문입니다. 또한 로컬 샘플링 규칙을 업데이트하려면 코드를 다시 배포해야 합니다.

X-Ray 콘솔에서 샘플링 규칙을 정의하고 X-Ray 서비스에서 규칙을 읽도록 SDK를 구성하면 이러한 문제를 모두 피할 수 있습니다. 서비스는 각 규칙의 리저버를 관리하고, 서비스의 각 인스턴스에 할당량을 할당하여 실행 중인 인스턴스의 수에 따라 리저버를 고르게 배포합니다. 리저버 제한은 설정한 규칙에 따라 계산됩니다. 그리고 규칙이 서비스에 구성되어 있기 때문에 추가로 배포하지 않고도 규칙을 관리할 수 있습니다.

참고

X-Ray는 샘플링 규칙을 적용할 때 최선의 방법을 사용하며, 경우에 따라 유효 샘플링 속도가 구성된 샘플링 규칙과 정확히 일치하지 않을 수 있습니다. 하지만 시간이 지나면서 샘플링된 요청 수는 구성된 비율에 가까워야 합니다.

이제 Amazon CloudWatch 콘솔 내에서 X-Ray 샘플링 규칙을 구성할 수 있습니다. X-Ray 콘솔을 계속 사용할 수도 있습니다.

CloudWatch console
CloudWatch 콘솔에서 샘플링 규칙을 구성하려면
  1. https://console.aws.amazon.com/cloudwatch/ 에서 AWS Management Console 로그인하고 CloudWatch 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 설정을 선택합니다.

  3. X-Ray 추적 섹션의 샘플링 규칙에서 설정 보기를 선택합니다.

  4. 샘플링 규칙 생성을 선택하여 규칙을 생성합니다.

    규칙을 편집하려면 규칙을 선택한 다음 편집을 선택하여 편집합니다.

    규칙을 삭제하려면 규칙을 선택하고 삭제 를 선택하여 삭제합니다.

X-Ray console
X-Ray 콘솔에서 샘플링 규칙을 구성하려면
  1. X-Ray 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 Sampling(샘플링)을 선택합니다.

  3. 샘플링 규칙 생성을 선택하여 규칙을 생성합니다.

    규칙 이름을 선택하여 규칙을 편집합니다.

    규칙을 선택하고 작업메뉴를 사용하여 규칙을 삭제합니다.

샘플링 규칙 옵션

다음과 같은 옵션을 각 규칙에 사용할 수 있습니다. 문자열 값은 와일드카드를 사용하여 단일 문자(?) 또는 0개 이상의 문자(*)와 일치시킬 수 있습니다.

샘플링 규칙 옵션
  • 규칙 이름(문자열) - 규칙의 고유한 이름입니다.

  • 우선 순위(1~9999 사이의 정수) - 샘플링 규칙의 우선 순위입니다. 서비스에서 규칙의 우선 순위를 오름차순으로 평가하며 일치하는 첫 번째 규칙으로 샘플링을 결정합니다.

  • 리저버 (음수가 아닌 정수) – 고정 비율을 적용하기 전의 초당 구성과 일치하는 요청의 일정한 수. 리저버는 서비스에서 직접 사용하지 않지만 규칙을 총체적으로 사용하여 모든 서비스에 적용됩니다.

  • 속도(0~100 사이의 정수) - 리저버가 소진된 후, 계측과 일치하는 요청의 백분율입니다. 콘솔에서 샘플링 규칙을 구성할 때 0에서 100 사이의 백분율을 선택합니다. JSON 문서를 사용하여 클라이언트 SDK에서 샘플링 규칙을 구성할 때는 0에서 1 사이의 백분율 값을 입력합니다.

  • 서비스 이름 (문자열) - 추적 맵에 나타나는 계측 서비스의 이름입니다.

    • X-Ray SDK – 레코더에서 구성한 서비스 이름.

    • Amazon API Gateway – api-name/stage.

  • 서비스 유형 (문자열) - 추적 맵에 나타나는 서비스 유형입니다. X-Ray SDK의 경우 적절한 플러그인을 적용하여 서비스 유형을 설정합니다.

    • AWS::ElasticBeanstalk::Environment— AWS Elastic Beanstalk 환경 (플러그인).

    • AWS::EC2::Instance – Amazon EC2 인스턴스 (플러그인).

    • AWS::ECS::Container – 아마존 ECS 컨테이너 (플러그인).

    • AWS::APIGateway::Stage – Amazon API Gateway 단계

    • AWS::AppSync::GraphQLAPI — AWS AppSync API 요청.

  • 호스트(문자열) - HTTP 호스트 헤더에 있는 호스트 이름.

  • HTTP 메서드(문자열) – HTTP 요청 메서드.

  • URL 경로(문자열) - 요청의 URL 경로.

    • X-Ray SDK – HTTP 요청 URL의 경로 부분.

  • 리소스 ARN (문자열) - 서비스를 실행하는 AWS 리소스의 ARN입니다.

    • X-Ray SDK – 지원되지 않습니다. SDK는 리소스 ARN*로 설정된 규칙만 사용할 수 있습니다.

    • Amazon API Gateway – 스테이지 ARN.

  • (선택 사항) 속성(키와 값) – 샘플링 결정을 내릴 때 알려진 세그먼트 속성.

    • X-Ray SDK – 지원되지 않습니다. SDK는 속성을 지정하는 규칙을 무시합니다.

    • Amazon API Gateway – 원본 HTTP 요청의 헤더.

샘플링 규칙 예

예 – 리저버가 없고 비율이 낮은 기본 규칙

기본 규칙의 리저버와 비율을 수정할 수 있습니다. 기본 규칙은 다른 규칙과 일치하지 않는 요청에 적용됩니다.

  • 리저버: 0

  • 속도: 5 (JSON 문서를 사용하여 구성한 경우 0.05)

예 – 문제가 있는 경로에 대한 모든 요청을 추적하는 디버깅 규칙

디버깅을 위해 우선 순위가 높은 규칙이 일시적으로 적용되었습니다.

  • 규칙 이름: DEBUG – history updates

  • 우선 순위: 1

  • 리저버: 1

  • 속도: 100 (JSON 문서를 사용하여 구성한 경우 1)

  • 서비스 이름: Scorekeep

  • 서비스 유형: *

  • 호스트: *

  • HTTP 메서드: PUT

  • URL 경로: /history/*

  • 리소스 ARN: *

예 – POST에 대한 더 높은 최소 비율
  • 규칙 이름: POST minimum

  • 우선 순위: 100

  • 리저버: 10

  • 속도: 10 (JSON 문서를 사용하여 구성한 경우 .1)

  • 서비스 이름: *

  • 서비스 유형: *

  • 호스트: *

  • HTTP 메서드: POST

  • URL 경로: *

  • 리소스 ARN: *

샘플링 규칙을 사용하도록 서비스 구성

콘솔에서 구성한 샘플링 규칙을 사용하려면 X-Ray SDK에 추가 구성이 필요합니다. 샘플링 전략 구성에 대한 자세한 내용은 해당 언어의 구성 주제를 참조하십시오.

API 게이트웨이의 경우 Amazon API Gateway 액티브 트레이싱 지원 대상 AWS X-Ray 단원을 참조하십시오.

샘플링 결과 보기

X-Ray 콘솔 샘플링 페이지에는 서비스가 각 샘플링 규칙을 사용하는 방법에 대한 자세한 정보가 표시됩니다.

Trend(추세) 열에는 규칙이 지난 몇 분간 사용된 방법이 표시됩니다. 각 열에는 10초 동안의 통계가 표시됩니다.

샘플링 통계
  • 총 일치된 규칙: 이 규칙과 일치한 요청 수입니다. 이 수에는 이 규칙과 일치했을 수 있었지만 먼저 우선 순위가 더 높은 규칙과 일치한 요청은 포함되지 않습니다.

  • 총 샘플링 수: 기록된 요청 수입니다.

  • 고정 비율로 샘플링됨: 규칙의 고정 비율을 적용하여 샘플링된 요청 수입니다.

  • 리저버 한도로 샘플링됨: 가 할당한 할당량을 사용하여 샘플링된 요청 수입니다.

  • 리저버에서 빌림: 리저버에서 빌려 샘플링된 요청 수입니다. 서비스에서 요청을 규칙에 처음 일치시킬 때 X-Ray가 아직 할당량을 할당하지 않았습니다. 그러나 리저버가 1이상인 경우 X-Ray가 할당량을 할당할 때까지 서비스는 초당 트레이스 하나를 빌립니다.

샘플링 통계와 서비스가 샘플링 규칙을 사용하는 방법에 대한 자세한 내용은 X-Ray API에 샘플링 규칙 사용 단원을 참조하십시오.

다음 단계

X-Ray API를 사용하여 샘플링 규칙을 관리할 수 있습니다. API를 사용하여 일정을 기반으로 또는 경보나 알림에 대한 응답으로 규칙을 프로그래밍 방식으로 생성하고 업데이트할 수 있습니다. 지침 및 추가 규칙 예제는 AWS X-Ray API로 샘플링, 그룹 및 암호화 설정 구성 단원을 참조하십시오.

X-Ray SDK와 X-Ray API를 사용하여 샘플링 규칙을 읽고, 샘플링 결과를 보고하고, 샘플링 대상을 얻을 AWS services 수도 있습니다. 서비스는 각 규칙을 적용하는 빈도를 추적하고, 우선 순위에 따라 규칙을 평가하며, 요청이 X-Ray가 아직 서비스에 할당량을 할당하지 않은 규칙과 일치하는 경우 리저버에서 빌려야 합니다. 서비스가 샘플링에 API를 사용하는 방법에 대한 자세한 내용은 X-Ray API에 샘플링 규칙 사용 단원을 참조하십시오.

X-Ray SDK가 샘플링 API를 호출할 때, X-Ray 대몬(daemon)을 프록시로 사용합니다. TCP 포트 2000을 이미 사용하는 경우, 다른 포트에서 프록시를 실행하도록 데몬을 구성할 수 있습니다. 세부 정보는 AWS X-Ray 데몬 설정하기를 참조하세요.