

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

# AWS X-Ray 를 사용하여 AWS AppSync에서 요청 추적
<a name="x-ray-tracing"></a>

[AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html)를 사용하여 AWS AppSync에서 실행되는 요청을 추적할 수 있습니다. X-Ray를 사용할 수 있는 모든 AWS 리전에서 AWS AppSync와 함께 X-Ray를 사용할 수 있습니다. X-Ray는 전체 GraphQL 요청에 대한 자세한 개요를 제공합니다. 이를 통해 API 및 기본 해석기와 데이터 원본의 지연 시간을 분석할 수 있습니다. X-Ray 서비스 맵을 사용하여 X-Ray와 통합된 AWS 서비스를 포함하여 요청의 지연 시간을 볼 수 있습니다. 또한 샘플링 규칙을 구성하여 지정한 기준에 따라 어떤 요청을 어떤 샘플링 속도로 기록할지를 X-Ray에 지시할 수도 있습니다.

X-Ray에서 샘플링에 대한 자세한 내용은 [AWS X-Ray 콘솔에서 샘플링 규칙 구성을 참조하세요](https://docs.aws.amazon.com/xray/latest/devguide/xray-console-sampling.html).

## 설정 및 구성
<a name="setup-and-configuration"></a>

 AWS AppSync 콘솔을 통해 GraphQL API에 대한 X-Ray 추적을 활성화할 수 있습니다.

1.  AWS AppSync 콘솔에 로그인합니다.

1. 탐색 창에서 **설정**을 선택합니다.

1. **X-Ray**에서 **Enable X-Ray(X-Ray 활성화)**를 설정합니다.

1. **저장**을 선택합니다. 이제 X-Ray 추적이 API에 대해 활성화됩니다.

 AWS CLI 또는를 사용하는 경우 `xrayEnabled` 속성을 로 설정하여 new AWS AppSync API를 생성하거나 기존 AWS AppSync API를 업데이트할 때 X-Ray 추적을 활성화할 수도 AWS CloudFormation있습니다`true`.

 AWS AppSync API에 대해 X-Ray 추적이 활성화되면 적절한 권한을 가진 AWS Identity and Access Management [서비스 연결 역할](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)이 계정에 자동으로 생성됩니다. 이렇게 하면 AWS AppSync가 트레이스를 안전한 방식으로 X-Ray로 전송할 수 있습니다.

## X-Ray로 API 추적
<a name="tracing-your-api-with-xray"></a>

### 샘플링
<a name="sampling"></a>

샘플링 규칙을 사용하여 AWS AppSync에 기록할 데이터의 양을 제어하고, 코드를 수정하거나 재배포하는 대신 즉석에서 샘플링 동작을 수정할 수 있습니다. 예를 들어, 이 규칙은 API ID `3n572shhcpfokwhdnq1ogu59v6`을 사용하여 GraphQL API에 대한 요청을 샘플링합니다.
+  **규칙 이름** - `test-sample` 
+  **우선 순위** - `10` 
+  **리저버 크기** - `10` 
+  **고정 비율** - `10` 
+  **서비스 이름** - `*` 
+  **서비스 유형** - `AWS::AppSync::GraphQLAPI` 
+  **HTTP 메서드** - `*` 
+  **리소스 ARN** - `arn:aws:appsync:us-west-2:123456789012:apis/3n572shhcpfokwhdnq1ogu59v6` 
+  **호스트** - `*` 

### 추적 이해
<a name="understanding-traces"></a>

GraphQL API에 대한 X-Ray 추적을 활성화하면 X-Ray 추적 세부 정보 페이지를 사용하여 API 요청에 대한 자세한 지연 시간 정보를 확인할 수 있습니다. 다음 예제에서는 이 특정 요청에 대한 서비스 맵과 함께 추적 보기를 보여 줍니다. 이 요청은 Post 유형으로 `postAPI`라는 API에 대해 수행되었으며, 이 API의 데이터는 `PostTable-Example`이라는 Amazon DynamoDB 테이블에 포함되어 있습니다.

다음 추적 이미지는 다음 GraphQL 쿼리에 해당합니다.

```
query getPost {
    getPost(id: "1") {
      id
      title
    }
}
```

`getPost` 쿼리에 대한 해석기는 기본 DynamoDB 데이터 소스를 사용합니다. 다음 추적 보기는 DynamoDB에 대한 호출과 쿼리 실행의 여러 부분에 대한 지연 시간을 보여 줍니다.

![\[Trace view showing client request, postAPI, and DynamoDB with durations and request details.\]](http://docs.aws.amazon.com/ko_kr/appsync/latest/devguide/images/xray-getpost-trace-view.png)

+ 앞의 이미지에서 `/getPost`는 해석 중인 요소의 전체 경로를 나타냅니다. 이 경우 `getPost`는 루트 `Query` 유형의 필드이므로 경로에서 루트 바로 뒤에 나타납니다.
+  `requestMappingTemplateEvaluation`은 AWS AppSync가 쿼리에서 이 요소에 대한 요청 매핑 템플릿을 평가하는 데 소요된 시간을 나타냅니다.
+  `Query.getPost`는 유형 및 필드(`Type.field` 형식)를 나타냅니다. 여기에는 API 구조와 추적 중인 요청에 따라 여러 하위 세그먼트가 포함될 수 있습니다.
  +  `DynamoDB`는 이 해석기에 연결된 데이터 원본을 나타냅니다. 여기에는 필드를 확인하기 위해 소요된 DynamoDB에 대한 네트워크 호출의 지연 시간이 포함되어 있습니다.
  +  `responseMappingTemplateEvaluation`은 AWS AppSync가 쿼리에서 이 요소에 대한 응답 매핑 템플릿을 평가하는 데 소요된 시간을 나타냅니다.

X-Ray에서 트레이스를 볼 때 하위 세그먼트를 선택하고 세부 보기를 탐색하여 AWS AppSync 세그먼트의 하위 세그먼트에 대한 추가 컨텍스트 및 메타데이터 정보를 얻을 수 있습니다.

깊이 중첩되거나 복잡한 특정 쿼리의 경우, AWS AppSync가 X-Ray에 전달하는 세그먼트는 세그먼트 문서에 정의된 대로 세그먼트 문서에 허용되는 최대 크기보다 클 수 있습니다[AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/xray-api-segmentdocuments.html). X-Ray는 제한을 초과하는 세그먼트를 표시하지 않습니다.