REL06-BP07 시스템을 통한 요청의 엔드 투 엔드 추적 모니터링 - AWS Well-Architected Framework

REL06-BP07 시스템을 통한 요청의 엔드 투 엔드 추적 모니터링

제품 팀이 문제를 더 쉽게 분석 및 디버그하고 성능을 개선할 수 있도록 서비스 구성 요소를 통해 처리되는 요청을 추적합니다.

원하는 결과: 모든 구성 요소를 포괄적으로 추적할 수 있는 워크로드는 디버그하기 쉬우므로 근본 원인 찾기를 단순화하여 오류의 평균 해결 시간(MTTR) 및 지연 시간이 개선됩니다. 엔드 투 엔드 추적은 영향을 받는 구성 요소를 찾고 오류 또는 지연 시간의 근본 원인을 자세히 조사하는 데 걸리는 시간을 줄여줍니다.

일반적인 안티 패턴:

  • 추적이 모든 구성 요소가 아니라 일부 구성 요소에서만 사용됩니다. 예를 들어 AWS Lambda를 추적하지 않으면 팀이 급증하는 워크로드에서 콜드 스타트로 인한 지연 시간을 명확하게 이해하지 못할 수 있습니다.

  • Synthetic canary 또는 실제 사용자 모니터링(RUM)이 추적이 가능하도록 구성되지 않습니다. Canary 또는 RUM이 없으면 추적 분석에서 클라이언트 상호 작용 원격 측정이 생략되어 불완전한 성능 프로파일이 생성됩니다.

  • 하이브리드 워크로드에 클라우드 네이티브 및 타사 추적 도구가 모두 포함되지만 단일 추적 솔루션을 선택하고 완전히 통합하는 단계는 아직 수행하지 않았습니다. 선택한 추적 솔루션에 따라 클라우드 네이티브 추적 SDK를 사용하여 클라우드 네이티브가 아닌 구성 요소를 측정하거나 타사 도구를 클라우드 네이티브 추적 텔레메트리를 수집하도록 구성해야 합니다.

이 모범 사례 확립의 이점: 개발 팀은 문제에 대한 경고를 받으면 구성 요소별 로깅, 성능, 장애와의 상관 관계를 포함하여 시스템 구성 요소 상호 작용을 종합적으로 파악할 수 있습니다. 추적을 통해 근본 원인을 시각적으로 쉽게 식별할 수 있으므로 근본 원인을 조사하는 데 소요되는 시간이 줄어듭니다. 구성 요소 상호 작용을 자세히 이해하는 팀은 문제를 해결할 때 더 현명하고 빠른 의사 결정을 내릴 수 있습니다. 시스템 추적을 분석하면 재해 복구(DR) 장애 조치를 언제 실행할지, 자가 복구 전략을 가장 잘 구현할 수 있는 위치 등을 더 제대로 결정할 수 있어 궁극적으로 서비스에 대한 고객 만족도를 향상시킬 수 있습니다.

이 모범 사례가 확립되지 않았을 경우의 위험 수준: 보통

구현 가이드

분산된 애플리케이션을 운영하는 팀은 추적 도구를 사용하여 상관 관계 식별자를 설정하고 요청 추적을 수집하며 연결된 구성 요소의 서비스 맵을 구축할 수 있습니다. 서비스 클라이언트, 미들웨어 게이트웨이 및 이벤트 버스, 컴퓨팅 구성 요소, 키 값 저장소 및 데이터베이스가 포함된 스토리지 등 모든 애플리케이션 구성 요소가 요청 추적에 포함되어야 합니다. 서비스 수준 계약과 목표에 대해 시스템 성능을 정확하게 평가할 수 있도록 엔드 투 엔드 추적 구성에 Synthetic canary와 실제 사용자 모니터링을 포함하여 원격 클라이언트 상호 작용과 지연 시간을 측정합니다.

이때 AWS X-RayAmazon CloudWatch 애플리케이션 모니터링 계측 서비스를 사용하여 요청이 애플리케이션을 통과하는 동안 요청에 대한 전체 보기를 제공할 수 있습니다. X-Ray를 통해 애플리케이션 텔레메트리를 수집하여 페이로드, 함수, 추적, 서비스, API에서 이를 시각화하고 필터링할 수 있으며 노코드 또는 로우 코드 시스템 구성 요소에 대해 활성화할 수 있습니다. CloudWatch 애플리케이션 모니터링에는 추적을 지표, 로그, 경보와 통합하는 ServiceLens가 포함됩니다. 또한 CloudWatch 애플리케이션 모니터링에는 엔드포인트와 API를 모니터링하기 위한 Synthetics와 웹 애플리케이션 클라이언트를 측정하기 위한 실제 사용자 모니터링도 포함됩니다.

구현 단계

  • AWS X-Ray를 모든 지원되는 네이티브 서비스(예: Amazon S3, AWS Lambda, Amazon API Gateway)에서 사용합니다. 이러한 AWS 서비스에서는 코드형 인프라, AWS SDK 또는 AWS Management Console을 사용하여 구성 토글을 통해 X-Ray가 활성화됩니다.

  • 애플리케이션 계측 AWS Distro for Open Telemetry 및 X-Ray 또는 타사 수집 에이전트.

  • 프로그래밍 언어별 구현은 AWS X-Ray 개발자 가이드를 참조하십시오. 이러한 설명서 섹션에서는 애플리케이션 프로그래밍 언어와 관련된 HTTP 요청, SQL 쿼리 및 기타 프로세스의 계측 방법을 자세히 설명합니다.

  • X-Ray 추적을 Amazon CloudWatch Synthetic CanaryAmazon CloudWatch RUM 에 사용하여 최종 사용자 클라이언트에서 다운스트림 AWS 인프라를 통한 요청 경로를 분석합니다.

  • 팀이 문제에 대해 빠르게 경고를 받은 후 ServiceLens를 사용하여 추적 및 서비스 맵을 심층적으로 분석할 수 있도록 리소스 상태와 canary 텔레메트리를 기반으로 CloudWatch 추적 및 경보를 구성합니다.

  • 기본 추적 솔루션에 타사 도구를 사용하는 경우 Datadog, New Relic또는 Dynatrace 와 같은 타사 추적 도구에 대한 X-Ray 통합을 활성화합니다.

리소스

관련 모범 사례:

관련 문서:

관련 예시:

관련 동영상:

관련 도구: