기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
추적
추적에는 프로그램 프로세스에 대한 로깅 정보를 전문적으로 사용하는 것이 포함됩니다. 엔지니어는 로그를 통해 개별 트랜잭션을 디버깅하고 병목 현상을 식별할 수 있습니다. 추적은 자동으로 활성화하거나 수동 계측을 사용하여 활성화할 수 있습니다.
애플리케이션은 다양한 서비스와 통합되므로 애플리케이션과 기본 서비스가 어떻게 작동하는지 식별하는 것이 중요합니다. 트레이스는 트레이스 및 스팬과 함께 작동합니다. 추적은 전체 요청 프로세스이며 각 추적은 범위로 구성됩니다. 범위는 태그가 지정된 시간 간격이며 시스템의 개별 구성 요소 또는 서비스 내에서의 활동입니다. 추적은 애플리케이션에 요청이 들어왔을 때 어떤 일이 발생하는지에 대한 큰 그림을 제공합니다.
애플리케이션 팀
애플리케이션 개발자는 인바운드 및 아웃바운드 요청과 애플리케이션 내 기타 이벤트에 대한 추적 데이터를 각 요청에 대한 메타데이터와 함께 전송하여 애플리케이션을 계측합니다. 트레이스를 생성하려면 애플리케이션이 트레이스를 생성하도록 인스트루먼트되어야 합니다. 계측은 자동 또는 수동일 수 있습니다.
자동 계측
소스 코드를 수정할 필요 없이 자동 계측을
라이브러리 계측에는 사전 빌드된 계측을 추가하기 위해 애플리케이션 코드를 최소한으로 변경하는 작업이 포함됩니다. 계측은 AWS SDK, Apache HTTP 클라이언트 또는 SQL 클라이언트와 같은 특정 라이브러리 또는 프레임워크를 대상으로 합니다.
수동 구성
이 접근 방식에서 애플리케이션 개발자는 추적 정보를 수집하려는 각 위치의 애플리케이션에 계측 코드를 추가합니다. 예를 들어, AOP (종횡지향 프로그래밍) 를 사용하여 추적 데이터를 수집할 수 있습니다. AWS X-Ray 개발자는 SDK를 사용하여 애플리케이션을 계측할 수 있습니다.
샘플링
트레이스 데이터는 대량으로 생성되는 경우가 많습니다. 트레이스 데이터를 내보낼지 여부를 결정하는 메커니즘을 갖추는 것이 중요합니다. 샘플링은 어떤 데이터를 내보낼지 결정하는 프로세스입니다. 이는 일반적으로 비용을 절감하기 위한 것입니다. 샘플링 규칙을 사용자 지정하여 기록하는 데이터의 양을 제어할 수 있습니다. 코드를 변경하거나 재배포하지 않고도 샘플링 동작을 변경할 수도 있습니다. 적절한 양의 트레이스를 생성하려면 샘플링 속도를 제어하는 것이 중요합니다.
애플리케이션 개발자는 메타데이터를 키-값 쌍으로 추가하여 트레이스에 주석을 달 수 있습니다. 주석은 트레이스를 강화하고 백엔드의 필터링을 구체화하는 데 도움이 됩니다.
DevOps 팀
DevOps 엔지니어는 애플리케이션 개발자가 인프라 및 애플리케이션의 트레이스를 시각화할 수 있는 추적 환경을 설정해 달라는 요청을 받는 경우가 많습니다. 추적 환경 설정에는 다양한 소스에서 추적 데이터를 수집하여 시각화를 위해 중앙 저장소로 보내는 작업이 포함됩니다.
추적 백엔드
추적 백엔드는 애플리케이션이 처리하는 요청에 대한 데이터를 AWS X-Ray 수집하는 서비스입니다. 데이터를 보고, 필터링하고, 통찰력을 확보하여 최적화를 위한 문제와 기회를 식별하는 데 사용할 수 있는 도구를 제공합니다. 애플리케이션에 대한 추적된 요청의 경우 요청 및 응답에 대한 자세한 정보와 애플리케이션이 다운스트림 AWS 리소스, 마이크로서비스, 데이터베이스 및 웹 API에 대해 수행하는 기타 호출에 대한 세부 정보를 볼 수 있습니다.
추적 자동화
애플리케이션마다 추적 요구 사항이 다르기 때문에 추적 인프라의 구성 및 운영을 자동화하는 것이 중요합니다. IaC 도구를 사용하여 추적 인프라의 백엔드를 프로비저닝하세요.
CD 파이프라인을 사용하여 다음을 자동화하십시오.
-
필요에 따라 추적 인프라를 배포하고 필요하지 않을 때는 해체하세요.
-
추적 구성을 애플리케이션 전체에 배포하세요.
추적 도구
AWS 추적 및 관련 시각화를 위해 다음과 같은 서비스를 제공합니다.
-
AWS X-Ray 애플리케이션이 사용하는 서비스 중 X-Ray와 이미 통합된 AWS 서비스의 트레이스 외에도 애플리케이션으로부터 트레이스를 수신합니다. 애플리케이션의 X-Ray 트레이싱을 위한 계측에 사용할 수 있는 여러 가지 SDK, 에이전트 및 도구가 있습니다. 자세한 내용은 AWS X-Ray 설명서를 참조하십시오.
개발자는 AWS X-Ray SDK를 사용하여 트레이스를 X-Ray로 전송할 수도 있습니다. AWS X-Ray , Node.js Go JavaPython, .NET 및 에 대한 SDK를 제공합니다. Ruby 각 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로 업로드합니다. X-Ray SDK를 사용하여 애플리케이션을 계측하는 방법에 대한 자세한 내용은 X-Ray 설명서를 참조하십시오.
-
-
Amazon OpenSearch Service는 OpenSearch 클러스터를 실행하고 확장할 수 있는 AWS 관리형 서비스로, 로그, 지표 및 추적을 중앙에서 저장하는 데 사용할 수 있습니다. Observability 플러그인은 공통 데이터 원본에서 지표, 로그 및 트레이스를 수집하고 모니터링할 수 있는 통합 환경을 제공합니다. 한 곳에서 데이터를 수집하고 모니터링하면 전체 인프라의 풀 스택 end-to-end 관찰 기능을 제공합니다. 구현 정보는 OpenSearch 서비스 설명서를 참조하십시오.
-
AWS 디스트로 포 OpenTelemetry (ADOT) 는 클라우드 네이티브 컴퓨팅 재단 (CNCF) 프로젝트를 기반으로 하는 AWS 배포판입니다. OpenTelemetry ADOT에는 현재 Java 및 Python에 대한 자동 계측 지원이 포함되어 있습니다.
또한 ADOT는 ADOT 관리형 Lambda 계층을 통해Java, Node.js 및 Python 런타임을 사용하여 AWS Lambda 함수 및 해당 다운스트림 요청의 자동 계측을 지원합니다. 개발자는 ADOT 컬렉터를 사용하여 AWS X-Ray Amazon OpenSearch Service를 비롯한 다양한 백엔드로 트레이스를 보낼 수 있습니다. ADOT SDK를 사용하여 애플리케이션을 계측하는 방법에 대한 참조 예제는 설명서를 참조하십시오.
ADOT SDK를 사용하여 Amazon OpenSearch Service로 데이터를 보내는 방법에 대한 참조 예제는 서비스 설명서를 참조하십시오. OpenSearch Amazon EKS에서 실행되는 애플리케이션을 계측하는 방법에 대한 참조 예제는 Distro용 AWS Amazon EKS 애드온을 사용한 지표 및 추적 수집
블로그 게시물을 참조하십시오. OpenTelemetry