

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

# AWS X-Ray API를 사용하여 샘플링, 그룹 및 암호화 설정 구성
<a name="xray-api-configuration"></a>

AWS X-Ray 는 [샘플링 규칙](xray-console-sampling.md), 그룹 규칙 및 [암호화 설정을](xray-console-encryption.md) 구성하기 위한 APIs 제공합니다.

**Topics**
+ [암호화 설정](#xray-api-configuration-encryption)
+ [샘플링 규칙](#xray-api-configuration-sampling)
+ [그룹](#xray-api-configuration-groups)

## 암호화 설정
<a name="xray-api-configuration-encryption"></a>

[https://docs.aws.amazon.com/xray/latest/api/API_PutEncryptionConfig.html](https://docs.aws.amazon.com/xray/latest/api/API_PutEncryptionConfig.html)를 사용하여 암호화에 사용할 AWS Key Management Service (AWS KMS) 키를 지정합니다.

**참고**  
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)을 사용할 수 있습니다.

[https://docs.aws.amazon.com/xray/latest/api/API_GetEncryptionConfig.html](https://docs.aws.amazon.com/xray/latest/api/API_GetEncryptionConfig.html)를 사용하여 현재 구성을 가져옵니다. 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"
    }
}
```

## 샘플링 규칙
<a name="xray-api-configuration-sampling"></a>

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

[https://docs.aws.amazon.com/xray/latest/api/API_GetSamplingRules.html](https://docs.aws.amazon.com/xray/latest/api/API_GetSamplingRules.html)로 모든 샘플링 규칙을 가져옵니다.

```
$ 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
        }
    ]
}
```

기본 규칙은 다른 규칙과 일치하지 않는 모든 요청에 적용됩니다. 우선 순위가 가장 낮은 규칙으로 삭제할 수 없습니다. 그러나 [https://docs.aws.amazon.com/xray/latest/api/API_UpdateSamplingRule.html](https://docs.aws.amazon.com/xray/latest/api/API_UpdateSamplingRule.html)로 비율과 리저버 크기를 변경할 수 있습니다.

**Example [https://docs.aws.amazon.com/xray/latest/api/API_UpdateSamplingRule.html](https://docs.aws.amazon.com/xray/latest/api/API_UpdateSamplingRule.html)에 대한 API 입력 – 10000-default.json**  

```
{
    "SamplingRuleUpdate": {
        "RuleName": "Default",
        "FixedRate": 0.01,
        "ReservoirSize": 0
    }
}
```

다음 예제에서는 이전 파일을 입력으로 사용하여 기본 규칙을 리저버가 없는 1퍼센트로 변경합니다. 태그는 선택 사항입니다. 태그를 추가하는 경우 태그 키가 필요하며 태그 값은 선택 사항입니다. 샘플링 규칙에서 기존 태그를 제거하려면 [UntagResource를](https://docs.aws.amazon.com/xray/latest/api/API_UntagResource.html) 사용하세요.

```
$ 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
        },
```

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

**Example [https://docs.aws.amazon.com/xray/latest/api/API_UpdateSamplingRule.html](https://docs.aws.amazon.com/xray/latest/api/API_UpdateSamplingRule.html)에 대한 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 요청입니다.

**Example [https://docs.aws.amazon.com/xray/latest/api/API_UpdateSamplingRule.html](https://docs.aws.amazon.com/xray/latest/api/API_UpdateSamplingRule.html)에 대한 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
    }
}
```

샘플링 규칙을 삭제하려면 [https://docs.aws.amazon.com/xray/latest/api/API_DeleteSamplingRule.html](https://docs.aws.amazon.com/xray/latest/api/API_DeleteSamplingRule.html)을 사용합니다.

```
$ 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
    }
}
```

## 그룹
<a name="xray-api-configuration-groups"></a>

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

`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를](https://docs.aws.amazon.com/xray/latest/api/API_UntagResource.html) 사용하세요.

```
$ 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" 
    {
    }
```