API Gateway REST API를 사용하여 AWS X-Ray 설정 - Amazon API Gateway

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

API Gateway REST API를 사용하여 AWS X-Ray 설정

이 단원에서는 API Gateway REST API를 사용하여 AWS X-Ray를 설정하는 방법에 대한 자세한 내용을 알아볼 수 있습니다.

API Gateway에 대한 X-Ray 추적 모드

애플리케이션을 경유하는 요청 경로는 트레이스 ID로 트레이스됩니다. 트레이스는 단일 요청(보통 HTTP GET 또는 POST 요청)에 의해 생성된 모든 세그먼트를 수집합니다.

API Gateway API에 대한 두 가지 추적 모드가 있습니다.

  • 수동: API 단계에서 X-Ray 추적을 활성화하지 않은 경우 이 모드가 기본 설정입니다. 이 접근 방식에서는 업스트림 서비스에서 X-Ray를 활성화한 경우에만 API Gateway API를 추적합니다.

  • 활성: API Gateway API 단계에 이 설정이 있으면 API Gateway는 X-Ray에서 지정한 샘플링 알고리즘을 기반으로 API 호출 요청을 자동으로 샘플링합니다.

    단계에서 활성 추적을 활성화할 때 역할이 이미 존재하지 않으면, API Gateway가 사용자의 계정에 서비스 연결 역할을 생성합니다. 그 역할의 이름은 AWSServiceRoleForAPIGateway이고 이 역할에는 APIGatewayServiceRolePolicy 관리형 정책이 연결됩니다. 서비스 연결 역할에 대한 자세한 내용은 서비스 연결 역할 사용 단원을 참조하십시오.

    참고

    X-Ray는 API가 수신하는 요청의 대표 샘플을 여전히 제공하면서 추적이 효율적으로 수행되도록 샘플링 알고리즘을 적용합니다. 기본 샘플링 알고리즘은 초당 1회 요청인데, 요청의 5%가 이 제한을 넘어서 샘플링됩니다.

API Gateway 관리 콘솔, API Gateway CLI 또는 AWS SDK를 사용하여 API에 대한 추적 모드를 변경할 수 있습니다.

X-Ray 추적에 대한 권한

단계에서 활성 추적을 활성화할 때 역할이 이미 존재하지 않으면, API Gateway가 사용자의 계정에 서비스 연결 역할을 생성합니다. 그 역할의 이름은 AWSServiceRoleForAPIGateway이고 이 역할에는 APIGatewayServiceRolePolicy 관리형 정책이 연결됩니다. 서비스 연결 역할에 대한 자세한 내용은 서비스 연결 역할 사용 단원을 참조하십시오.

API Gateway 콘솔에서 X-Ray 추적 활성화

Amazon API Gateway 콘솔을 사용하여 API 단계에서 활성 추적을 활성화할 수 있습니다.

이러한 단계에서는 단계에 API를 이미 배포한 것으로 가정합니다.

  1. https://console.aws.amazon.com/apigateway에서 API Gateway 콘솔에 로그인합니다.

  2. API를 선택하고 기본 탐색 창에서 스테이지를 선택합니다.

  3. 스테이지 창에서 스테이지를 선택합니다.

  4. 로그 및 추적 섹션에서 편집을 선택합니다.

  5. 활성 X-Ray 추적을 활성화하려면 X-Ray 추적에서 X-Ray 추적을 활성화합니다.

  6. 변경 사항 저장을 선택합니다.

API 단계에 대해 X-Ray를 활성화한 후에는 X-Ray 관리 콘솔을 사용하여 추적 및 서비스 맵을 볼 수 있습니다.

API Gateway CLI를 사용하여 AWS X-Ray 추적 활성화

스테이지를 생성할 때 AWS CLI를 사용하여 API 스테이지에 대해 활성 X-Ray 추적을 활성화하려면 다음 예제와 같이 create-stage 명령을 호출합니다.

aws apigateway create-stage \ --rest-api-id {rest-api-id} \ --stage-name {stage-name} \ --deployment-id {deployment-id} \ --region {region} \ --tracing-enabled=true

다음은 호출이 제대로 이루어진 경우의 예제 출력입니다.

{ "tracingEnabled": true, "stageName": {stage-name}, "cacheClusterEnabled": false, "cacheClusterStatus": "NOT_AVAILABLE", "deploymentId": {deployment-id}, "lastUpdatedDate": 1533849811, "createdDate": 1533849811, "methodSettings": {} }

스테이지를 생성할 때 AWS CLI를 사용하여 API 스테이지에 대해 활성 X-Ray 추적을 비활성화하려면 다음 예제와 같이 create-stage 명령을 호출합니다.

aws apigateway create-stage \ --rest-api-id {rest-api-id} \ --stage-name {stage-name} \ --deployment-id {deployment-id} \ --region {region} \ --tracing-enabled=false

다음은 호출이 제대로 이루어진 경우의 예제 출력입니다.

{ "tracingEnabled": false, "stageName": {stage-name}, "cacheClusterEnabled": false, "cacheClusterStatus": "NOT_AVAILABLE", "deploymentId": {deployment-id}, "lastUpdatedDate": 1533849811, "createdDate": 1533849811, "methodSettings": {} }

AWS CLI를 사용하여 이미 배포된 API에 대해 활성 X-Ray 추적을 활성화하려면 다음과 같이 update-stage 명령을 호출합니다.

aws apigateway update-stage \ --rest-api-id {rest-api-id} \ --stage-name {stage-name} \ --patch-operations op=replace,path=/tracingEnabled,value=true

AWS CLI를 사용하여 이미 배포된 API에 대해 활성 X-Ray 추적을 비활성화하려면 다음 예제와 같이 update-stage 명령을 호출합니다.

aws apigateway update-stage \ --rest-api-id {rest-api-id} \ --stage-name {stage-name} \ --region {region} \ --patch-operations op=replace,path=/tracingEnabled,value=false

다음은 호출이 제대로 이루어진 경우의 예제 출력입니다.

{ "tracingEnabled": false, "stageName": {stage-name}, "cacheClusterEnabled": false, "cacheClusterStatus": "NOT_AVAILABLE", "deploymentId": {deployment-id}, "lastUpdatedDate": 1533850033, "createdDate": 1533849811, "methodSettings": {} }

API 단계에 대해 X-Ray를 활성화한 후에는 X-Ray CLI를 사용하여 추적 정보를 가져옵니다. 자세한 내용은 AWS CLI를 통한 AWS X-Ray API 사용 단원을 참조하세요.