AWS X-Ray API로 샘플링, 그룹 및 암호화 설정 구성 - AWS X-Ray

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

AWS X-Ray API로 샘플링, 그룹 및 암호화 설정 구성

AWS X-Ray는 샘플링 규칙, 그룹 규칙 및 암호화 설정을 구성하기 위한 API를 제공합니다.

암호화 설정

암호화에 사용할 AWS Key Management Service (AWS KMS) 키를 지정하는 데 PutEncryptionConfig를 사용합니다.

참고

X-Ray는 비대칭 KMS 키를 지원하지 않습니다.

$ aws xray put-encryption-config --type KMS --key-id alias/aws/xray { "EncryptionConfig": { "KeyId": "arn:aws:kms:us-east-2:123456789012:key/c234g4e8-39e9-4gb0-84e2-b0ea215cbba5", "Status": "UPDATING", "Type": "KMS" } }

키 ID로는 예제에 나온 것처럼 별칭이나 키 ID, 또는 Amazon 리소스 이름(ARN)을 사용할 수 있습니다.

GetEncryptionConfig를 사용하여 현재 구성을 가져옵니다. X-Ray가 설정 적용을 마치면 상태는 UPDATING에서 ACTIVE로 바뀝니다.

$ aws xray get-encryption-config { "EncryptionConfig": { "KeyId": "arn:aws:kms:us-east-2:123456789012:key/c234g4e8-39e9-4gb0-84e2-b0ea215cbba5", "Status": "ACTIVE", "Type": "KMS" } }

KMS 키 사용을 중단하고 기본 암호화를 사용하려면 암호화 유형을 NONE으로 설정합니다.

$ aws xray put-encryption-config --type NONE { "EncryptionConfig": { "Status": "UPDATING", "Type": "NONE" } }

샘플링 규칙

X-Ray API로 계정의 샘플링 규칙을 관리할 수 있습니다. 태그 추가 및 관리에 대한 자세한 내용은 X-Ray 샘플링 규칙 및 그룹 태그 지정하기 섹션을 참조하세요.

GetSamplingRules로 모든 샘플링 규칙을 가져옵니다.

$ aws xray get-sampling-rules { "SamplingRuleRecords": [ { "SamplingRule": { "RuleName": "Default", "RuleARN": "arn:aws:xray:us-east-2:123456789012:sampling-rule/Default", "ResourceARN": "*", "Priority": 10000, "FixedRate": 0.05, "ReservoirSize": 1, "ServiceName": "*", "ServiceType": "*", "Host": "*", "HTTPMethod": "*", "URLPath": "*", "Version": 1, "Attributes": {} }, "CreatedAt": 0.0, "ModifiedAt": 1529959993.0 } ] }

기본 규칙은 다른 규칙과 일치하지 않는 모든 요청에 적용됩니다. 우선 순위가 가장 낮은 규칙으로 삭제할 수 없습니다. 그러나 UpdateSamplingRule로 비율과 리저버 크기를 변경할 수 있습니다.

UpdateSamplingRule에 대한 API 입력 – 10000-default.json
{ "SamplingRuleUpdate": { "RuleName": "Default", "FixedRate": 0.01, "ReservoirSize": 0 } }

다음 예제에서는 이전 파일을 입력으로 사용하여 기본 규칙을 리저버가 없는 1퍼센트로 변경합니다. 태그는 선택 사항입니다. 태그를 추가하는 경우 태그 키가 필요하며 태그 값은 선택 사항입니다. 샘플링 규칙에서 기존 태그를 제거하려면 UntagResource를 사용하세요.

$ aws xray update-sampling-rule --cli-input-json file://1000-default.json --tags [{"Key": "key_name","Value": "value"},{"Key": "key_name","Value": "value"}] { "SamplingRuleRecords": [ { "SamplingRule": { "RuleName": "Default", "RuleARN": "arn:aws:xray:us-east-2:123456789012:sampling-rule/Default", "ResourceARN": "*", "Priority": 10000, "FixedRate": 0.01, "ReservoirSize": 0, "ServiceName": "*", "ServiceType": "*", "Host": "*", "HTTPMethod": "*", "URLPath": "*", "Version": 1, "Attributes": {} }, "CreatedAt": 0.0, "ModifiedAt": 1529959993.0 },

CreateSamplingRule로 추가 샘플링 규칙을 만듭니다. 규칙을 만들 때 대부분의 규칙 필드는 필수입니다. 다음 예제에서는 규칙 두 개를 만듭니다. 이 첫 번째 규칙은 Scorekeep 샘플 애플리케이션의 기본 비율을 설정하며, 우선 순위가 더 높은 규칙과 일치하지 않는 API에서 처리하는 모든 요청과 일치합니다.

UpdateSamplingRule에 대한 API 입력 – 9000-base-scorekeep.json
{ "SamplingRule": { "RuleName": "base-scorekeep", "ResourceARN": "*", "Priority": 9000, "FixedRate": 0.1, "ReservoirSize": 5, "ServiceName": "Scorekeep", "ServiceType": "*", "Host": "*", "HTTPMethod": "*", "URLPath": "*", "Version": 1 } }

두 번째 규칙은 Scorekeep에도 적용되지만, 우선 순위가 더 높고 구체적입니다. 이 규칙은 폴링 요청에 대해 매우 낮은 샘플링 비율을 설정합니다. 게임 상태에 변경 사항이 있는지 확인하기 위해 클라이언트가 몇 초마다 수행하는 GET 요청입니다.

UpdateSamplingRule에 대한 API 입력 – 5000-polling-scorekeep.json
{ "SamplingRule": { "RuleName": "polling-scorekeep", "ResourceARN": "*", "Priority": 5000, "FixedRate": 0.003, "ReservoirSize": 0, "ServiceName": "Scorekeep", "ServiceType": "*", "Host": "*", "HTTPMethod": "GET", "URLPath": "/api/state/*", "Version": 1 } }

태그는 선택 사항입니다. 태그를 추가하는 경우 태그 키가 필요하며 태그 값은 선택 사항입니다.

$ aws xray create-sampling-rule --cli-input-json file://5000-polling-scorekeep.json --tags [{"Key": "key_name","Value": "value"},{"Key": "key_name","Value": "value"}] { "SamplingRuleRecord": { "SamplingRule": { "RuleName": "polling-scorekeep", "RuleARN": "arn:aws:xray:us-east-1:123456789012:sampling-rule/polling-scorekeep", "ResourceARN": "*", "Priority": 5000, "FixedRate": 0.003, "ReservoirSize": 0, "ServiceName": "Scorekeep", "ServiceType": "*", "Host": "*", "HTTPMethod": "GET", "URLPath": "/api/state/*", "Version": 1, "Attributes": {} }, "CreatedAt": 1530574399.0, "ModifiedAt": 1530574399.0 } } $ aws xray create-sampling-rule --cli-input-json file://9000-base-scorekeep.json { "SamplingRuleRecord": { "SamplingRule": { "RuleName": "base-scorekeep", "RuleARN": "arn:aws:xray:us-east-1:123456789012:sampling-rule/base-scorekeep", "ResourceARN": "*", "Priority": 9000, "FixedRate": 0.1, "ReservoirSize": 5, "ServiceName": "Scorekeep", "ServiceType": "*", "Host": "*", "HTTPMethod": "*", "URLPath": "*", "Version": 1, "Attributes": {} }, "CreatedAt": 1530574410.0, "ModifiedAt": 1530574410.0 } }

샘플링 규칙을 삭제하려면 DeleteSamplingRule을 사용합니다.

$ aws xray delete-sampling-rule --rule-name polling-scorekeep { "SamplingRuleRecord": { "SamplingRule": { "RuleName": "polling-scorekeep", "RuleARN": "arn:aws:xray:us-east-1:123456789012:sampling-rule/polling-scorekeep", "ResourceARN": "*", "Priority": 5000, "FixedRate": 0.003, "ReservoirSize": 0, "ServiceName": "Scorekeep", "ServiceType": "*", "Host": "*", "HTTPMethod": "GET", "URLPath": "/api/state/*", "Version": 1, "Attributes": {} }, "CreatedAt": 1530574399.0, "ModifiedAt": 1530574399.0 } }

그룹

X-Ray API를 이용해 계정의 그룹을 관리할 수 있습니다. 그룹은 필터 표현식으로 정의한 추적 모음입니다. 그룹을 사용하여 추가 서비스 그래프를 작성하고 Amazon CloudWatch 지표를 제공할 수 있습니다. X-Ray API를 통한 서비스 그래프 및 지표 작업에 대한 자세한 내용은 에서 데이터 가져오기 AWS X-Ray 항목을 참조하십시오. 그룹에 대한 자세한 정보는 그룹 구성 섹션을 참조하세요. 태그 추가 및 관리에 대한 자세한 내용은 X-Ray 샘플링 규칙 및 그룹 태그 지정하기 섹션을 참조하세요.

CreateGroup이(가) 있는 그룹 생성 태그는 선택 사항입니다. 태그를 추가하는 경우 태그 키가 필요하며 태그 값은 선택 사항입니다.

$ aws xray create-group --group-name "TestGroup" --filter-expression "service(\"example.com\") {fault}" --tags [{"Key": "key_name","Value": "value"},{"Key": "key_name","Value": "value"}] { "GroupName": "TestGroup", "GroupARN": "arn:aws:xray:us-east-2:123456789012:group/TestGroup/UniqueID", "FilterExpression": "service(\"example.com\") {fault OR error}" }

GetGroups로 기존 그룹을 모두 가져옵니다.

$ aws xray get-groups { "Groups": [ { "GroupName": "TestGroup", "GroupARN": "arn:aws:xray:us-east-2:123456789012:group/TestGroup/UniqueID", "FilterExpression": "service(\"example.com\") {fault OR error}" }, { "GroupName": "TestGroup2", "GroupARN": "arn:aws:xray:us-east-2:123456789012:group/TestGroup2/UniqueID", "FilterExpression": "responsetime > 2" } ], "NextToken": "tokenstring" }

UpdateGroup이(가) 있는 그룹 업데이트 태그는 선택 사항입니다. 태그를 추가하는 경우 태그 키가 필요하며 태그 값은 선택 사항입니다. 그룹에서 기존 태그를 제거하려면 UntagResource를 사용하세요.

$ aws xray update-group --group-name "TestGroup" --group-arn "arn:aws:xray:us-east-2:123456789012:group/TestGroup/UniqueID" --filter-expression "service(\"example.com\") {fault OR error}" --tags [{"Key": "Stage","Value": "Prod"},{"Key": "Department","Value": "QA"}] { "GroupName": "TestGroup", "GroupARN": "arn:aws:xray:us-east-2:123456789012:group/TestGroup/UniqueID", "FilterExpression": "service(\"example.com\") {fault OR error}" }

DeleteGroup이(가) 있는 그룹 삭제

$ aws xray delete-group --group-name "TestGroup" --group-arn "arn:aws:xray:us-east-2:123456789012:group/TestGroup/UniqueID" { }