X-Ray기반 추적
X-Ray 소개
AWS X-Ray는 개발자가 마이크로 서비스 아키텍처를 사용해 구축된 애플리케이션과 같은 프로덕션 분산 애플리케이션을 분석하고 디버그하는 데 도움이 됩니다. X-Ray를 사용해 자신이 개발한 애플리케이션과 기본 서비스가 성능 문제와 오류의 근본 원인 식별과 문제 해결을 올바로 수행하는지 파악할 수 있습니다. X-Ray는 요청이 애플리케이션을 통과함에 따라 요청에 대한 엔드 투 엔드 뷰를 제공하고 애플리케이션의 기본 구성 요소를 맵으로 보여줍니다. X-Ray를 사용하여 간단한 3-티어 애플리케이션에서부터 수천 개의 서비스로 구성된 복잡한 마이크로 서비스 애플리케이션에 이르기까지 개발 중인 애플리케이션과 프로덕션에 적용된 애플리케이션 모두 분석할 수 있습니다.
IAM 역할(Role) 구성
X-Ray 데몬셋이 서비스 되기 위해서는, Kubernetes 서비스 어카운트와 IAM 역할과 정책이 있어야 합니다.
1.서비스 어카운트 생성.
X-Ray를 위해 서비스 어카운트를 생성합니다.
eksctl create iamserviceaccount --name xray-daemon --namespace default --cluster ${ekscluster_name} --attach-policy-arn arn:aws:iam::aws:policy/AWSXRayDaemonWriteAccess --approve --override-existing-serviceaccounts
2. 서비스 어카운트에 Label생성.
서비스 어카운트에 Label 생성을 합니다.
kubectl label serviceaccount xray-daemon app=xray-daemon
X-Ray 데몬셋 배포
EKS Cluster에 X-Ray 데몬셋을 배포합니다. X-Ray 데몬셋은 EKS Cluster 의 각 Worker Node에 배포합니다.
AWS X-Ray SDK는 마이크로서비스 어플리케이션을 분석하는 데 사용되며, 데몬셋은 xray-service.default:2000을 가리키도록 구성될 것입니다. 다음은 Go를 위한 X-Ray SDK에 대한 구성방법의 예입니다. 이 랩에서는 필수 구성조건이 아닙니다.
X-Ray 데몬세트를 배포합니다.
설치시 에러가 발생한다면, https://github.com/whchoi98/myeks.git 에서 xray-k8s-daemonset.yaml 파일을 내려 받아서 배포합니다.
X-Ray 데몬셋의 상태를 확인합니다.
아래와 같은 결과를 확인 할 수 있습니다.
X-Ray에 대한 데몬 Pod의 로그는 아래와 같은 명령으로 확인 할 수 있습니다.
어플리케이션 배포
3.어플리케이션 배포.
Front-end & Back-end용 어플리케이션을 배포합니다. X-Ray 는 Go,Python,Node.js, Ruby. .NET, Java용 SDK를 지원합니다.
아래와 같이 어플리케이션을 배포합니다.
정상적으로 배포되었는지를 확인해 봅니다.
아래와 같은 결과가 출력된 것을 확인 할 수 있습니다.
4.Front-End 접속.
접속을 위해서 , ELB DNS 레코드를 확인합니다.
다음과 같은 결과를 얻을 수 있습니다.
브라우저에 정상적으로 접속되는 지 확인합니다.
ELB 배포 시간으로 3분 정도 시간이 소요 될 수 있습니다.
front-end App은 1초에 한번씩 백엔드로 요청하게 됩니다.

X-Ray 콘솔 확인
X-RAY 서비스 대시보드에서 "서비스 맵"을 선택합니다.
아래와 같이 Client-FrontEnd App- BackEnd App의 연결구성과 어플리케이션 간 응답시간, 분당 트랜잭션 수를 확인 할 수 있습니다.


Analyze trace를 선택하게 되면 , 상세 분석을 할 수 있습니다. 테이블 구성 옵션을 필터하면 HTTP Code 및 Client IP 등을 상세하게 분석할 수 있습니다.


트레이스를 선택하면, 각 트랜잭션 당 더욱 상세한 내용을 살펴 볼 수 있습니다. 트레이스 목록에서 1개를 선택해서 클릭합니다.

Time line 및 소스 데이터를 상세하게 분석 할 수 있습니다.

Last updated
Was this helpful?