다음을 위한 애플리케이션 계측 AWS X-Ray - AWS X-Ray

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

다음을 위한 애플리케이션 계측 AWS X-Ray

애플리케이션 계측에는 각 요청에 대한 메타데이터와 함께 애플리케이션 내의 수신 및 발신 요청 및 기타 이벤트에 대한 추적 데이터를 전송하는 작업이 포함됩니다. 특정 요구 사항에 따라 여러 가지 계측 옵션을 선택하거나 조합할 수 있습니다:

  • 자동 계측 – 일반적으로 구성 변경, 자동 계측 에이전트 추가 또는 기타 메커니즘을 통해 코드 변경 없이 애플리케이션을 계측할 수 있습니다.

  • 라이브러리 계측 — 애플리케이션 코드 변경을 최소화하여 AWS SDK, Apache HTTP 클라이언트 또는 SQL 클라이언트와 같은 특정 라이브러리 또는 프레임워크를 대상으로 하는 사전 빌드된 계측을 추가할 수 있습니다.

  • 수동 계측 – 추적 정보를 전송하려는 각 위치에서 애플리케이션에 계측 코드를 추가합니다.

애플리케이션의 X-Ray 트레이싱을 위한 계측에 사용할 수 있는 여러 가지 SDK, 에이전트 및 도구가 있습니다.

배포판을 사용하여 애플리케이션을 계측하기 AWS OpenTelemetry

AWS 배포판 OpenTelemetry (ADOT) 은 클라우드 네이티브 컴퓨팅 재단 (CNCF) 프로젝트를 기반으로 하는 AWS 배포판입니다. OpenTelemetry OpenTelemetry 분산된 트레이스 및 메트릭을 수집할 수 있는 단일 오픈 소스 API, 라이브러리 및 에이전트 세트를 제공합니다. 이 툴킷은 에서 테스트, 최적화, 보안 및 지원하는 SDK, 자동 계측 에이전트 및 수집기를 포함한 업스트림 OpenTelemetry 구성 요소를 배포한 것입니다. AWS

ADOT를 사용하면 엔지니어가 애플리케이션을 한 번 계측하여 상관 관계가 있는 지표와 추적을 Amazon CloudWatch AWS X-Ray, Amazon OpenSearch Service를 포함한 여러 AWS 모니터링 솔루션으로 전송할 수 있습니다.

ADOT와 함께 X-Ray를 사용하려면 두 가지 구성 요소가 필요합니다. 하나는 X-Ray와 함께 사용할 수 있는 OpenTelemetry SDK이고 다른 하나는 X-Ray와 함께 사용할 수 있는 OpenTelemetry Collector용AWS 배포판입니다. OpenTelemetry with AWS X-Ray 및 AWS 서비스기타용 AWS 배포판 사용에 대한 자세한 내용은 설명서용 배포판을 참조하십시오.AWS OpenTelemetry

언어 지원 및 사용에 대한 자세한 내용은 AWS Observability on을 참조하십시오. GitHub

참고

이제 CloudWatch 에이전트를 사용하여 Amazon EC2 인스턴스 및 온프레미스 서버에서 지표, 로그 및 추적을 수집할 수 있습니다. CloudWatch 에이전트 버전 1.300025.0 이상에서는 또는 OpenTelemetryX-Ray 클라이언트 SDK에서 트레이스를 수집하여 X-Ray로 보낼 수 있습니다. AWS Distro for OpenTelemetry (ADOT) Collector 또는 X-Ray 데몬 대신 CloudWatch 에이전트를 사용하여 트레이스를 수집하면 관리하는 에이전트 수를 줄이는 데 도움이 될 수 있습니다. 자세한 내용은 CloudWatch 사용 설명서의 CloudWatch 에이전트 항목을 참조하십시오.

ADOT에는 다음이 포함됩니다:

현재 ADOT에는 JavaPython에 대한 자동 계측 지원이 포함되어 있습니다. 또한 ADOT를 사용하면 ADOT 관리형 AWS Lambda 레이어를 통해 Java, Node.js 및 Python 런타임을 사용하여 Lambda 함수 및 해당 다운스트림 요청을 자동으로 계측할 수 있습니다.

Java 및 Go용 ADOT SDK는 X-Ray 통합 샘플링 규칙을 지원합니다. 다른 언어의 X-Ray 샘플링 규칙에 대한 지원이 필요한 경우 AWS X-Ray SDK 사용을 고려해 보세요.

참고

이제 W3C 추적 ID를 X-Ray로 보낼 수 있습니다. 기본적으로 로 만든 트레이스는 W3C 트레이스 컨텍스트 사양을 기반으로 하는 트레이스 ID 형식을 OpenTelemetry 갖습니다. 이는 X-Ray SDK를 사용하거나 X-Ray와 통합된 AWS 서비스에 의해 생성되는 추적 ID의 형식과는 다릅니다. W3C 형식의 트레이스 ID가 X-Ray에서 허용되도록 하려면 ADOT AWS X-Ray 컬렉터 버전 0.34.0 이상에 포함된 익스포터 버전 0.86.0 이상을 사용해야 합니다. 이전 버전의 익스포터는 트레이스 ID 타임스탬프를 검증하므로 W3C 트레이스 ID가 거부될 수 있습니다.

AWS X-Ray SDK로 애플리케이션 계측하기

AWS X-Ray 애플리케이션이 트레이스를 X-Ray로 전송하도록 계측하기 위한 언어별 SDK 세트가 포함되어 있습니다. 각 X-Ray SDK는 다음을 제공합니다:

  • 코드에 인터셉터를 추가하여 수신 HTTP 요청을 추적할 수 있습니다.

  • 애플리케이션이 다른 클라이언트를 호출하는 데 사용하는 AWS SDK 클라이언트를 계측하기 위한 클라이언트 핸들러 AWS 서비스

  • 다른 내부 및 외부 HTTP 웹 서비스에 대한 호출을 계측하기 위한 HTTP 클라이언트

또한 X-Ray SDK는 SQL 데이터베이스에 대한 계측 호출, 자동 AWS SDK 클라이언트 계측 및 기타 기능을 지원합니다. 트레이스 데이터를 직접 X-Ray로 전송하는 대신, SDK는 UDP 트래픽을 수신 대기하는 대몬(daemon) 프로세스로 JSON 세그먼트 문서를 전송합니다. X-Ray 대몬(daemon)은 대기열에 세그먼트를 버퍼링하다가 일괄적으로 X-Ray로 업로드합니다.

다음과 같은 언어별 SDK가 제공됩니다.

현재 X-Ray에는 Java에 대한 자동 계측 지원이 포함되어 있습니다.

AWS 배포판용 OpenTelemetry SDK와 X-Ray SDK 중 선택

X-Ray에 포함된 SDK는 AWS에서 제공하는 긴밀하게 통합된 계측 솔루션의 일부입니다. AWS Distro for OpenTelemetry 는 X-Ray가 수많은 추적 솔루션 중 하나일 뿐인 광범위한 산업 솔루션의 일부입니다. 두 방법 중 하나를 사용하여 X-Ray에서 end-to-end 추적을 구현할 수 있지만 가장 유용한 접근 방식을 결정하려면 차이점을 이해하는 것이 중요합니다.

다음이 필요한 OpenTelemetry 경우 AWS 배포판을 사용하여 애플리케이션을 계측하는 것이 좋습니다.

  • 코드를 다시 작성할 필요 없이 여러 추적 백엔드로 트레이스를 전송할 수 있는 기능

  • 커뮤니티에서 유지 관리하는 각 언어에 대한 수많은 라이브러리 도구 지원 OpenTelemetry

  • Java, Python 또는 Node. js 사용 시 코드를 변경할 필요 없이 원격 분석 데이터를 수집하는 데 필요한 모든 것을 패키지로 제공하는 완전 관리형 Lambda 레이어

    참고

    AWS 배포판은 Lambda 함수 계측을 위한 더 간단한 시작 환경을 OpenTelemetry 제공합니다. 그러나 유연성 OpenTelemetry 제공으로 인해 Lambda 함수에 추가 메모리가 필요하고 호출 시 콜드 스타트 지연 시간이 증가하여 추가 요금이 발생할 수 있습니다. 지연 시간이 짧고 동적으로 구성 가능한 백엔드 대상과 같은 고급 기능이 필요하지 OpenTelemetry 않은 경우 AWS X-Ray SDK를 사용하여 애플리케이션을 계측하는 것이 좋습니다.

다음이 필요한 경우 애플리케이션 계측을 위해 X-Ray SDK를 선택하는 것을 권장합니다:

  • 견고하게 통합된 단일 공급업체 솔루션

  • X-Ray의 중앙 집중식 샘플링 규칙과의 통합 (Node.js, Python, Ruby 또는 .NET 사용 시 X-Ray 콘솔에서 샘플링 규칙을 구성하고 이를 여러 호스트에서 자동으로 사용하는 기능 포함)