ysuekkom의 IT study note

[AWS Cloud] 분산 어플리케이션 분석 및 디버깅 X-Ray -1 본문

Cloud Service/AWS

[AWS Cloud] 분산 어플리케이션 분석 및 디버깅 X-Ray -1

ysuekkom 2023. 5. 18. 12:26

 

 

 

X-Ray?

애플리케이션이 처리하는 요청(Request)에 대한 데이터를 수집하는 서비스이다. 애플리케이션의 페이로드, 함수, 추적, 서비스, API 등 분산 애플리케이션 분석 및 디버깅 용도로 사용된다.

 

  • 애플리케이션 상태 파악 및 성능 개선: 장애 및 Delay 지점을 쉽게 파악하여 인사이트를 얻을 수 있음
  • 데이터 사일로 제거: 사용자 환경 개선 및 가동 중단 시간을 줄이는데 필요한 정보를 파악할 수 있음
  • 실시간 디버깅: 상세 서비스 맵 생성으로 아키텍처의 병목현상을 파악, 트러블 슈팅 수행
  • 클라우드 비용 절감 및 성능 지표 모니터링: 근본 원인 분석을 위한 다른 조건의 추적 세트 분석 가능
  • 보안 및 규정 준수: 안전한 데이터 감사 가능

 

aws document x-ray

 

 AWS 서비스 이외의 애플리케이션의 데이터도 계측 가능하다. X-Ray 추적을 위한 애플리케이션 계측에는 여러 SDK, 에이전트 및 도구가 있어 활용 가능하다. X-Ray와 통합된 서비스는 요청에 대한 추적 헤더를 추가하거나, X-Ray 데몬을 실행할 수 있다. 예를 들어 요청에 대한 추적 데이터를 람다 함수로 전송하고, 워커에서 X-Ray 데몬을 실행하여 X-Ray SDK를 더 간단하게 사용할 수 있다(API Calls). 또한 AWS 리소스의 추적 데이터를 사용하여 상세한 X-Ray Service Map이라는 시각화 기능을 제공한다. 이를 통해 애플리케이션의 흐름을 쉽게 이해할 수 있으며, 트러블슈팅에 용이하다.

 

aws document x-ray

 

 Step Function처럼 시각화를 제공하여 문제를 한 눈에 확인 할 수 있다. 클라이언트 접속 시도 시, 어떤 API가 호출되어 어떠한 리소스를 언제, 어떻게 Request 하며 실행되어지는 지 한 눈에 이해 가능하다.

  • 최대 10,000개의 노드 표시 가능
  • 오류가 발생한 서비스, 지연시간이 긴 연결 또는 실패한 요청 추적 서비스 식별 가능
  • 애플리케이션에서 생성되는 트레이스 데이터를 시간적으로 표현(SQS, Lambda를 사용하는 이벤트 기반 애플리케이션 트레이스 뷰)
  • 서비스 노드(요청 처리), 업스트림 클라이언트 노드(요청의 출처), 다운스트림 서비스 노드(요청 처리중 애플리케이션이 사용하는 웹 서비스 및 리소스) 표시
  • 자세한 X-Ray Sevice Map 확인하기(이곳)

 

 

 

 

1. X-Ray와의 통합

X-Ray를 사용할 수 있는 리소스는 다른 AWS 서비스와 통합이 가능하다. 서버리스 애플리케이션 구현 시 사용하는 대부분의 리소스가 통합 가능하다.

  • EC2, Lambda, DynamoDB, ELB, API Gateway, SNS, SQS, Elastic BeanStalk 등

또한 자체 App과도 통합 가능하다.(AWS X-Ray API 확인하기)

  • Java, Node.js, Go, Ruby, Python으로 구현된 App
  • API Calls: AWS SDK로 구현된 App에서 특정 API Call 하면, X-Ray SDK는 API Call에 해당하는 메타데이터를 감지하여  X-Ray Service Map 작성함 

 

 

2. X-Ray 사용하기

X-Ray Agent를 설치 한 후, X-Ray SDK를 이용하여 X-Ray로 Request, Status Code, Latency 등등의 정보를 파악한다.

  • X-Ray Agent 설치
  • X-Ray SDK(다양한 라이브러리와 함수 집합)를 사용하여 애플리케이션 설정하기: 데이터의 흐름과 API Call 트레이스(추적데이터 생성) -> X-Ray로 전송하는 역할

 

 

 

다음 포스팅에서는 Elastic BeanStalk을 이용하여 샘플어플리케이션을 배포한 뒤, 데이터를 X-Ray로 분석해 보는 실습을 진행해보겠다. 

 

 

 

 

https://docs.aws.amazon.com/ko_kr/xray/latest/devguide/xray-services.html

https://docs.aws.amazon.com/ko_kr/xray/latest/devguide/xray-api.html

https://wwlee94.github.io/category/blog/aws-eb-deploy/